From 2b739828ca86a8e2e9fcebd32f33a0fb2c1e5d26 Mon Sep 17 00:00:00 2001
From: Rohit Aggarwal
Date: Sun, 17 Nov 2024 09:37:28 +0530
Subject: [PATCH] Bumping controller runtime
Signed-off-by: Rohit Aggarwal
---
.github/workflows/benchmark-action.yaml | 2 +-
.github/workflows/dependency-updater.yml | 2 +-
.github/workflows/golangci-lint.yml | 4 +-
.github/workflows/kind-action.yml | 2 +-
.github/workflows/release-process.yml | 2 +-
.github/workflows/test-gh.yml | 2 +-
.github/workflows/test-kctrl-gh.yml | 2 +-
.github/workflows/trivy-scan.yml | 2 +-
.github/workflows/upgrade-testing.yml | 2 +-
Dockerfile | 2 +-
cmd/controller/run.go | 15 +-
config-dev/values-schema.yml | 2 +-
config/config/rbac.yml | 5 +-
go.mod | 128 +-
go.sum | 306 +-
hack/deploy.sh | 3 +-
kc.yml | 2346 +++++
output.yml | 2709 ++++++
pkg/apiserver/apiserver.go | 36 +-
pkg/app/reconciler.go | 6 +-
pkg/config/reconciler.go | 21 +-
.../packageinstall_version_handler.go | 10 +-
.../packageinstall_version_handler_test.go | 2 +-
pkg/packageinstall/reconciler.go | 8 +-
pkg/pkgrepository/reconciler.go | 4 +-
pkg/reconciler/configmap_handler.go | 11 +-
pkg/reconciler/secret_handler.go | 11 +-
.../antlr4/runtime/Go/antlr/{ => v4}/LICENSE | 0
.../antlr4/runtime/Go/antlr/v4/antlrdoc.go | 68 +
.../antlr4/runtime/Go/antlr/{ => v4}/atn.go | 27 +-
.../runtime/Go/antlr/{ => v4}/atn_config.go | 54 +-
.../Go/antlr/{ => v4}/atn_config_set.go | 80 +-
.../{ => v4}/atn_deserialization_options.go | 2 +-
.../Go/antlr/{ => v4}/atn_deserializer.go | 2 +-
.../Go/antlr/{ => v4}/atn_simulator.go | 2 +-
.../runtime/Go/antlr/{ => v4}/atn_state.go | 9 +-
.../runtime/Go/antlr/{ => v4}/atn_type.go | 2 +-
.../runtime/Go/antlr/{ => v4}/char_stream.go | 2 +-
.../Go/antlr/{ => v4}/common_token_factory.go | 2 +-
.../Go/antlr/{ => v4}/common_token_stream.go | 6 +-
.../antlr4/runtime/Go/antlr/v4/comparators.go | 147 +
.../antlr4/runtime/Go/antlr/{ => v4}/dfa.go | 54 +-
.../Go/antlr/{ => v4}/dfa_serializer.go | 2 +-
.../runtime/Go/antlr/{ => v4}/dfa_state.go | 54 +-
.../{ => v4}/diagnostic_error_listener.go | 4 +-
.../Go/antlr/{ => v4}/error_listener.go | 6 +-
.../Go/antlr/{ => v4}/error_strategy.go | 38 +-
.../runtime/Go/antlr/{ => v4}/errors.go | 5 +-
.../runtime/Go/antlr/{ => v4}/file_stream.go | 2 +-
.../runtime/Go/antlr/{ => v4}/input_stream.go | 2 +-
.../runtime/Go/antlr/{ => v4}/int_stream.go | 2 +-
.../runtime/Go/antlr/{ => v4}/interval_set.go | 6 +-
.../antlr4/runtime/Go/antlr/v4/jcollect.go | 198 +
.../antlr4/runtime/Go/antlr/{ => v4}/lexer.go | 6 +-
.../runtime/Go/antlr/{ => v4}/lexer_action.go | 44 +-
.../antlr/{ => v4}/lexer_action_executor.go | 27 +-
.../Go/antlr/{ => v4}/lexer_atn_simulator.go | 17 +-
.../runtime/Go/antlr/{ => v4}/ll1_analyzer.go | 30 +-
.../runtime/Go/antlr/{ => v4}/parser.go | 14 +-
.../Go/antlr/{ => v4}/parser_atn_simulator.go | 153 +-
.../Go/antlr/{ => v4}/parser_rule_context.go | 4 +-
.../Go/antlr/{ => v4}/prediction_context.go | 161 +-
.../Go/antlr/{ => v4}/prediction_mode.go | 48 +-
.../runtime/Go/antlr/{ => v4}/recognizer.go | 19 +-
.../runtime/Go/antlr/{ => v4}/rule_context.go | 2 +-
.../Go/antlr/{ => v4}/semantic_context.go | 81 +-
.../antlr4/runtime/Go/antlr/{ => v4}/token.go | 3 +-
.../runtime/Go/antlr/{ => v4}/token_source.go | 2 +-
.../runtime/Go/antlr/{ => v4}/token_stream.go | 2 +-
.../Go/antlr/{ => v4}/tokenstream_rewriter.go | 420 +-
.../Go/antlr/{ => v4}/trace_listener.go | 2 +-
.../runtime/Go/antlr/{ => v4}/transition.go | 2 +-
.../antlr4/runtime/Go/antlr/{ => v4}/tree.go | 5 +-
.../antlr4/runtime/Go/antlr/{ => v4}/trees.go | 9 +-
.../antlr4/runtime/Go/antlr/{ => v4}/utils.go | 21 +-
.../runtime/Go/antlr/{ => v4}/utils_set.go | 34 +-
.../cenkalti/backoff/v4/.travis.yml | 10 -
.../github.com/cenkalti/backoff/v4/retry.go | 50 +-
.../coreos/go-semver/semver/semver.go | 2 +-
.../go-systemd/v22/journal/journal_unix.go | 52 +
.../go-systemd/v22/journal/journal_windows.go | 8 +
.../emicklei/go-restful/v3/CHANGES.md | 11 +-
.../emicklei/go-restful/v3/README.md | 5 +-
.../emicklei/go-restful/v3/route.go | 17 +-
.../emicklei/go-restful/v3/route_builder.go | 45 +-
vendor/github.com/evanphx/json-patch/patch.go | 42 -
.../json-patch/v5/internal/json/decode.go | 1385 +++
.../json-patch/v5/internal/json/encode.go | 1486 +++
.../json-patch/v5/internal/json/fold.go | 141 +
.../json-patch/v5/internal/json/fuzz.go | 42 +
.../json-patch/v5/internal/json/indent.go | 143 +
.../json-patch/v5/internal/json/scanner.go | 610 ++
.../json-patch/v5/internal/json/stream.go | 495 +
.../json-patch/v5/internal/json/tables.go | 218 +
.../json-patch/v5/internal/json/tags.go | 38 +
.../github.com/evanphx/json-patch/v5/merge.go | 110 +-
.../github.com/evanphx/json-patch/v5/patch.go | 436 +-
.../github.com/fsnotify/fsnotify/.cirrus.yml | 13 +
.../github.com/fsnotify/fsnotify/.gitignore | 1 +
.../github.com/fsnotify/fsnotify/CHANGELOG.md | 83 +-
vendor/github.com/fsnotify/fsnotify/README.md | 81 +-
.../fsnotify/fsnotify/backend_fen.go | 552 +-
.../fsnotify/fsnotify/backend_inotify.go | 377 +-
.../fsnotify/fsnotify/backend_kqueue.go | 295 +-
.../fsnotify/fsnotify/backend_other.go | 205 +-
.../fsnotify/fsnotify/backend_windows.go | 247 +-
.../github.com/fsnotify/fsnotify/fsnotify.go | 91 +-
vendor/github.com/fsnotify/fsnotify/mkdoc.zsh | 125 +-
vendor/github.com/go-logr/logr/README.md | 126 +-
vendor/github.com/go-logr/logr/SECURITY.md | 18 +
vendor/github.com/go-logr/logr/context.go | 33 +
.../github.com/go-logr/logr/context_noslog.go | 49 +
.../github.com/go-logr/logr/context_slog.go | 83 +
vendor/github.com/go-logr/logr/funcr/funcr.go | 231 +-
.../github.com/go-logr/logr/funcr/slogsink.go | 105 +
vendor/github.com/go-logr/logr/logr.go | 78 +-
vendor/github.com/go-logr/logr/sloghandler.go | 192 +
vendor/github.com/go-logr/logr/slogr.go | 100 +
vendor/github.com/go-logr/logr/slogr/slogr.go | 61 +
vendor/github.com/go-logr/logr/slogsink.go | 120 +
vendor/github.com/go-logr/logr/testr/testr.go | 12 +-
vendor/github.com/go-logr/zapr/.golangci.yaml | 20 +
vendor/github.com/go-logr/zapr/README.md | 39 +-
vendor/github.com/go-logr/zapr/slogzapr.go | 183 +
vendor/github.com/go-logr/zapr/zapr.go | 15 +-
vendor/github.com/go-logr/zapr/zapr_noslog.go | 34 +
vendor/github.com/go-logr/zapr/zapr_slog.go | 48 +
.../jsonreference/internal/normalize_url.go | 5 +
.../golang/protobuf/jsonpb/decode.go | 1 +
.../golang/protobuf/jsonpb/encode.go | 1 +
.../github.com/golang/protobuf/ptypes/any.go | 7 +-
.../github.com/google/cel-go/cel/BUILD.bazel | 13 +-
vendor/github.com/google/cel-go/cel/decls.go | 1102 +--
vendor/github.com/google/cel-go/cel/env.go | 490 +-
vendor/github.com/google/cel-go/cel/io.go | 50 +-
.../github.com/google/cel-go/cel/library.go | 484 +-
vendor/github.com/google/cel-go/cel/macro.go | 25 +-
.../github.com/google/cel-go/cel/options.go | 220 +-
.../github.com/google/cel-go/cel/program.go | 161 +-
.../github.com/google/cel-go/cel/validator.go | 388 +
.../google/cel-go/checker/BUILD.bazel | 10 +-
.../google/cel-go/checker/checker.go | 507 +-
.../github.com/google/cel-go/checker/cost.go | 158 +-
.../google/cel-go/checker/decls/BUILD.bazel | 3 +-
.../google/cel-go/checker/decls/decls.go | 8 +-
.../github.com/google/cel-go/checker/env.go | 239 +-
.../google/cel-go/checker/errors.go | 94 +-
.../google/cel-go/checker/format.go | 216 +
.../google/cel-go/checker/mapping.go | 14 +-
.../google/cel-go/checker/options.go | 13 +-
.../google/cel-go/checker/printer.go | 5 +-
.../cel-go/checker/{decls => }/scopes.go | 38 +-
.../google/cel-go/checker/standard.go | 479 +-
.../github.com/google/cel-go/checker/types.go | 391 +-
.../google/cel-go/common/BUILD.bazel | 2 +-
.../google/cel-go/common/ast/BUILD.bazel | 52 +
.../google/cel-go/common/ast/ast.go | 226 +
.../google/cel-go/common/ast/expr.go | 709 ++
.../cel-go/common/containers/BUILD.bazel | 4 +-
.../google/cel-go/common/debug/BUILD.bazel | 2 +-
.../google/cel-go/common/debug/debug.go | 14 +-
.../google/cel-go/common/decls/BUILD.bazel | 39 +
.../google/cel-go/common/decls/decls.go | 844 ++
.../github.com/google/cel-go/common/error.go | 8 +-
.../github.com/google/cel-go/common/errors.go | 18 +-
.../cel-go/common/functions/BUILD.bazel | 17 +
.../cel-go/common/functions/functions.go | 61 +
.../cel-go/common/operators/operators.go | 4 +
.../cel-go/common/overloads/overloads.go | 10 +
.../github.com/google/cel-go/common/source.go | 3 -
.../google/cel-go/common/stdlib/BUILD.bazel | 25 +
.../google/cel-go/common/stdlib/standard.go | 661 ++
.../google/cel-go/common/types/BUILD.bazel | 15 +-
.../google/cel-go/common/types/bool.go | 15 +-
.../google/cel-go/common/types/bytes.go | 16 +-
.../google/cel-go/common/types/double.go | 23 +-
.../google/cel-go/common/types/duration.go | 85 +-
.../google/cel-go/common/types/err.go | 32 +-
.../google/cel-go/common/types/int.go | 34 +-
.../google/cel-go/common/types/iterator.go | 6 +-
.../google/cel-go/common/types/json_value.go | 1 +
.../google/cel-go/common/types/list.go | 166 +-
.../google/cel-go/common/types/map.go | 140 +-
.../google/cel-go/common/types/null.go | 28 +-
.../google/cel-go/common/types/object.go | 32 +-
.../google/cel-go/common/types/optional.go | 108 +
.../google/cel-go/common/types/pb/BUILD.bazel | 2 +-
.../google/cel-go/common/types/pb/enum.go | 4 +-
.../google/cel-go/common/types/pb/file.go | 83 +-
.../google/cel-go/common/types/pb/pb.go | 53 +-
.../google/cel-go/common/types/pb/type.go | 89 +-
.../google/cel-go/common/types/provider.go | 270 +-
.../cel-go/common/types/ref/BUILD.bazel | 2 +-
.../cel-go/common/types/ref/provider.go | 45 +-
.../cel-go/common/types/ref/reference.go | 15 +-
.../google/cel-go/common/types/string.go | 53 +-
.../google/cel-go/common/types/timestamp.go | 29 +-
.../cel-go/common/types/traits/BUILD.bazel | 1 +
.../cel-go/common/types/traits/zeroer.go} | 16 +-
.../google/cel-go/common/types/type.go | 102 -
.../google/cel-go/common/types/types.go | 806 ++
.../google/cel-go/common/types/uint.go | 31 +-
.../google/cel-go/common/types/unknown.go | 290 +-
.../google/cel-go/common/types/util.go | 2 +-
.../github.com/google/cel-go/ext/BUILD.bazel | 33 +
vendor/github.com/google/cel-go/ext/README.md | 222 +
.../github.com/google/cel-go/ext/bindings.go | 96 +
.../github.com/google/cel-go/ext/encoders.go | 23 +-
vendor/github.com/google/cel-go/ext/guards.go | 14 +
vendor/github.com/google/cel-go/ext/lists.go | 94 +
vendor/github.com/google/cel-go/ext/math.go | 373 +
vendor/github.com/google/cel-go/ext/native.go | 574 ++
vendor/github.com/google/cel-go/ext/protos.go | 141 +
vendor/github.com/google/cel-go/ext/sets.go | 197 +
.../github.com/google/cel-go/ext/strings.go | 778 +-
.../google/cel-go/interpreter/BUILD.bazel | 15 +-
.../google/cel-go/interpreter/activation.go | 32 +-
.../cel-go/interpreter/attribute_patterns.go | 115 +-
.../google/cel-go/interpreter/attributes.go | 1100 ++-
.../google/cel-go/interpreter/coster.go | 35 -
.../google/cel-go/interpreter/decorators.go | 21 +-
.../google/cel-go/interpreter/dispatcher.go | 2 +-
.../google/cel-go/interpreter/evalstate.go | 6 +-
.../google/cel-go/interpreter/formatting.go | 383 +
.../cel-go/interpreter/functions/BUILD.bazel | 9 +-
.../cel-go/interpreter/functions/functions.go | 35 +-
.../cel-go/interpreter/functions/standard.go | 270 -
.../cel-go/interpreter/interpretable.go | 768 +-
.../google/cel-go/interpreter/interpreter.go | 38 +-
.../google/cel-go/interpreter/planner.go | 241 +-
.../google/cel-go/interpreter/prune.go | 374 +-
.../google/cel-go/interpreter/runtimecost.go | 119 +-
.../google/cel-go/parser/BUILD.bazel | 8 +-
.../github.com/google/cel-go/parser/errors.go | 17 +-
.../google/cel-go/parser/gen/BUILD.bazel | 2 +-
.../google/cel-go/parser/gen/CEL.g4 | 38 +-
.../google/cel-go/parser/gen/CEL.interp | 5 +-
.../cel-go/parser/gen/cel_base_listener.go | 48 +-
.../cel-go/parser/gen/cel_base_visitor.go | 28 +-
.../google/cel-go/parser/gen/cel_lexer.go | 4 +-
.../google/cel-go/parser/gen/cel_listener.go | 48 +-
.../google/cel-go/parser/gen/cel_parser.go | 2108 +++--
.../google/cel-go/parser/gen/cel_visitor.go | 26 +-
.../google/cel-go/parser/gen/generate.sh | 2 +-
.../github.com/google/cel-go/parser/helper.go | 290 +-
.../github.com/google/cel-go/parser/input.go | 3 +-
.../github.com/google/cel-go/parser/macro.go | 37 +-
.../google/cel-go/parser/options.go | 38 +-
.../github.com/google/cel-go/parser/parser.go | 520 +-
.../google/cel-go/parser/unparser.go | 63 +-
.../{gnostic => gnostic-models}/LICENSE | 0
.../compiler/README.md | 0
.../compiler/context.go | 0
.../compiler/error.go | 0
.../compiler/extensions.go | 2 +-
.../compiler/helpers.go | 2 +-
.../compiler/main.go | 0
.../compiler/reader.go | 0
.../extensions/README.md | 0
.../extensions/extension.pb.go | 4 +-
.../extensions/extension.proto | 0
.../extensions/extensions.go | 0
.../jsonschema/README.md | 0
.../jsonschema/base.go | 15 +-
.../jsonschema/display.go | 0
.../jsonschema/models.go | 0
.../jsonschema/operations.go | 0
.../jsonschema/reader.go | 0
.../jsonschema/schema.json | 0
.../jsonschema/writer.go | 0
.../openapiv2/OpenAPIv2.go | 2 +-
.../openapiv2/OpenAPIv2.pb.go | 4 +-
.../openapiv2/OpenAPIv2.proto | 0
.../openapiv2/README.md | 0
.../openapiv2/document.go | 2 +-
.../openapiv2/openapi-2.0.json | 0
.../openapiv3/OpenAPIv3.go | 2 +-
.../openapiv3/OpenAPIv3.pb.go | 4 +-
.../openapiv3/OpenAPIv3.proto | 0
.../openapiv3/README.md | 0
.../openapiv3/document.go | 2 +-
.../google/gnostic/openapiv3/openapi-3.0.json | 1251 ---
.../google/gnostic/openapiv3/openapi-3.1.json | 1250 ---
.../github.com/google/go-cmp/cmp/compare.go | 38 +-
.../cmp/{export_unsafe.go => export.go} | 5 -
.../google/go-cmp/cmp/export_panic.go | 16 -
.../value/{pointer_unsafe.go => pointer.go} | 3 -
.../cmp/internal/value/pointer_purego.go | 34 -
.../github.com/google/go-cmp/cmp/options.go | 84 +-
vendor/github.com/google/go-cmp/cmp/path.go | 46 +-
.../google/go-cmp/cmp/report_reflect.go | 2 +-
vendor/github.com/google/gofuzz/.travis.yml | 11 +-
.../github.com/google/gofuzz/CONTRIBUTING.md | 2 +-
vendor/github.com/google/gofuzz/README.md | 18 +
.../google/gofuzz/bytesource/bytesource.go | 81 +
vendor/github.com/google/gofuzz/fuzz.go | 137 +-
.../grpc-gateway/v2/internal/httprule/fuzz.go | 4 +-
.../v2/internal/httprule/parse.go | 30 +-
.../grpc-gateway/v2/runtime/BUILD.bazel | 10 +-
.../grpc-gateway/v2/runtime/context.go | 72 +-
.../grpc-gateway/v2/runtime/convert.go | 46 +-
.../grpc-gateway/v2/runtime/errors.go | 17 +-
.../grpc-gateway/v2/runtime/fieldmask.go | 9 +-
.../grpc-gateway/v2/runtime/handler.go | 26 +-
.../grpc-gateway/v2/runtime/marshal_jsonpb.go | 38 +-
.../grpc-gateway/v2/runtime/marshal_proto.go | 9 +-
.../grpc-gateway/v2/runtime/mux.go | 162 +-
.../grpc-gateway/v2/runtime/pattern.go | 2 -
.../grpc-gateway/v2/runtime/query.go | 69 +-
.../grpc-gateway/v2/utilities/BUILD.bazel | 6 +-
.../v2/utilities/readerfactory.go | 3 +-
.../v2/utilities/string_array_flag.go | 33 +
.../grpc-gateway/v2/utilities/trie.go | 2 +-
.../{ => v2}/LICENSE | 0
.../{ => v2}/NOTICE | 0
.../{ => v2}/pbutil/.gitignore | 0
.../{ => v2}/pbutil/Makefile | 0
.../{ => v2}/pbutil/decode.go | 16 +-
.../{ => v2}/pbutil/doc.go | 0
.../{ => v2}/pbutil/encode.go | 5 +-
.../mitchellh/mapstructure/CHANGELOG.md | 73 -
.../github.com/mitchellh/mapstructure/LICENSE | 21 -
.../mitchellh/mapstructure/README.md | 46 -
.../mitchellh/mapstructure/decode_hooks.go | 256 -
.../mitchellh/mapstructure/error.go | 50 -
.../mitchellh/mapstructure/mapstructure.go | 1462 ---
.../prometheus/collectors/expvar_collector.go | 2 +-
.../collectors/go_collector_latest.go | 9 +-
.../client_golang/prometheus/counter.go | 26 +-
.../client_golang/prometheus/desc.go | 32 +-
.../prometheus/expvar_collector.go | 2 +-
.../client_golang/prometheus/gauge.go | 8 +-
.../client_golang/prometheus/histogram.go | 178 +-
.../prometheus/internal/difflib.go | 2 +-
.../client_golang/prometheus/labels.go | 60 +-
.../client_golang/prometheus/metric.go | 3 +
.../prometheus/process_collector_other.go | 4 +-
.../prometheus/process_collector_wasip1.go | 26 +
.../client_golang/prometheus/promhttp/http.go | 19 +-
.../prometheus/promhttp/instrument_server.go | 9 +-
.../client_golang/prometheus/registry.go | 6 +-
.../client_golang/prometheus/summary.go | 41 +-
.../prometheus/testutil/promlint/problem.go | 33 +
.../prometheus/testutil/promlint/promlint.go | 310 +-
.../testutil/promlint/validation.go | 33 +
.../validations/counter_validations.go | 40 +
.../validations/generic_name_validations.go | 101 +
.../promlint/validations/help_validations.go | 32 +
.../validations/histogram_validations.go | 63 +
.../testutil/promlint/validations/units.go | 118 +
.../prometheus/testutil/testutil.go | 15 +
.../client_golang/prometheus/value.go | 55 +-
.../client_golang/prometheus/vec.go | 87 +-
.../prometheus/client_model/go/metrics.pb.go | 350 +-
.../prometheus/common/expfmt/decode.go | 7 +-
.../prometheus/common/expfmt/encode.go | 15 +-
.../prometheus/common/expfmt/expfmt.go | 26 +-
.../prometheus/common/expfmt/text_parse.go | 2 +-
.../prometheus/procfs/.golangci.yml | 3 +
.../prometheus/procfs/Makefile.common | 22 +-
vendor/github.com/prometheus/procfs/README.md | 4 +-
vendor/github.com/prometheus/procfs/arp.go | 6 +-
.../github.com/prometheus/procfs/buddyinfo.go | 6 +-
.../github.com/prometheus/procfs/cpuinfo.go | 17 +-
vendor/github.com/prometheus/procfs/crypto.go | 7 +-
vendor/github.com/prometheus/procfs/fs.go | 11 +-
.../prometheus/procfs/fs_statfs_notype.go | 23 +
.../prometheus/procfs/fs_statfs_type.go | 33 +
.../github.com/prometheus/procfs/fscache.go | 6 +-
.../prometheus/procfs/internal/util/parse.go | 15 +
vendor/github.com/prometheus/procfs/ipvs.go | 7 +-
.../github.com/prometheus/procfs/loadavg.go | 4 +-
vendor/github.com/prometheus/procfs/mdstat.go | 36 +-
.../github.com/prometheus/procfs/meminfo.go | 4 +-
.../github.com/prometheus/procfs/mountinfo.go | 10 +-
.../prometheus/procfs/mountstats.go | 117 +-
.../prometheus/procfs/net_conntrackstat.go | 91 +-
.../prometheus/procfs/net_ip_socket.go | 32 +-
.../prometheus/procfs/net_protocols.go | 4 +-
.../github.com/prometheus/procfs/net_route.go | 143 +
.../prometheus/procfs/net_sockstat.go | 9 +-
.../prometheus/procfs/net_softnet.go | 9 +-
.../github.com/prometheus/procfs/net_unix.go | 16 +-
.../prometheus/procfs/net_wireless.go | 182 +
.../github.com/prometheus/procfs/net_xfrm.go | 2 +-
.../github.com/prometheus/procfs/netstat.go | 25 +-
vendor/github.com/prometheus/procfs/proc.go | 37 +-
.../prometheus/procfs/proc_cgroup.go | 4 +-
.../prometheus/procfs/proc_cgroups.go | 8 +-
.../prometheus/procfs/proc_fdinfo.go | 10 +-
.../prometheus/procfs/proc_interrupts.go | 2 +-
.../prometheus/procfs/proc_limits.go | 4 +-
.../github.com/prometheus/procfs/proc_maps.go | 24 +-
.../prometheus/procfs/proc_netstat.go | 4 +-
.../github.com/prometheus/procfs/proc_ns.go | 6 +-
.../github.com/prometheus/procfs/proc_psi.go | 6 +-
.../prometheus/procfs/proc_smaps.go | 4 +-
.../github.com/prometheus/procfs/proc_snmp.go | 4 +-
.../github.com/prometheus/procfs/proc_stat.go | 8 +-
.../prometheus/procfs/proc_status.go | 53 +-
.../github.com/prometheus/procfs/proc_sys.go | 2 +-
vendor/github.com/prometheus/procfs/slab.go | 2 +-
.../github.com/prometheus/procfs/softirqs.go | 24 +-
vendor/github.com/prometheus/procfs/stat.go | 28 +-
vendor/github.com/prometheus/procfs/swaps.go | 8 +-
vendor/github.com/prometheus/procfs/thread.go | 11 +-
vendor/github.com/prometheus/procfs/vm.go | 2 +-
.../github.com/prometheus/procfs/zoneinfo.go | 4 +-
.../etcd/api/v3/etcdserverpb/rpc.pb.go | 516 +-
.../etcd/api/v3/etcdserverpb/rpc.proto | 2 +-
.../etcd/api/v3/v3rpc/rpctypes/error.go | 3 +
.../go.etcd.io/etcd/api/v3/version/version.go | 2 +-
.../etcd/client/pkg/v3/transport/sockopt.go | 4 +-
.../etcd/client/pkg/v3/transport/tls.go | 5 +-
vendor/go.etcd.io/etcd/client/v3/client.go | 5 +-
.../client/v3/internal/endpoint/endpoint.go | 18 +-
vendor/go.etcd.io/etcd/client/v3/lease.go | 4 +-
.../grpc/otelgrpc/{grpctrace.go => config.go} | 82 +-
.../grpc/otelgrpc/interceptor.go | 159 +-
.../grpc/otelgrpc/internal/parse.go | 16 +-
.../grpc/otelgrpc/metadata_supplier.go | 98 +
.../grpc/otelgrpc/semconv.go | 4 +-
.../grpc/otelgrpc/version.go | 6 +-
.../net/http/otelhttp/common.go | 2 +-
.../net/http/otelhttp/config.go | 14 +-
.../net/http/otelhttp/handler.go | 116 +-
.../http/otelhttp/internal/semconvutil/gen.go | 21 +
.../otelhttp/internal/semconvutil/httpconv.go | 552 ++
.../otelhttp/internal/semconvutil/netconv.go | 368 +
.../net/http/otelhttp/transport.go | 10 +-
.../net/http/otelhttp/version.go | 6 +-
.../instrumentation/net/http/otelhttp/wrap.go | 14 +-
.../go.opentelemetry.io/otel/.codespellignore | 5 +
vendor/go.opentelemetry.io/otel/.codespellrc | 10 +
vendor/go.opentelemetry.io/otel/.gitignore | 4 +
vendor/go.opentelemetry.io/otel/.golangci.yml | 87 +-
vendor/go.opentelemetry.io/otel/.lycheeignore | 3 +
vendor/go.opentelemetry.io/otel/CHANGELOG.md | 786 +-
vendor/go.opentelemetry.io/otel/CODEOWNERS | 4 +-
.../go.opentelemetry.io/otel/CONTRIBUTING.md | 198 +-
vendor/go.opentelemetry.io/otel/Makefile | 113 +-
vendor/go.opentelemetry.io/otel/README.md | 57 +-
vendor/go.opentelemetry.io/otel/RELEASING.md | 35 +-
.../otel/attribute/filter.go | 60 +
.../go.opentelemetry.io/otel/attribute/set.go | 27 +-
.../otel/attribute/value.go | 95 +-
.../otel/baggage/baggage.go | 88 +-
.../go.opentelemetry.io/otel/codes/codes.go | 10 +
vendor/go.opentelemetry.io/otel/codes/doc.go | 2 +-
.../otel/exporters/otlp/internal/config.go | 34 -
.../exporters/otlp/internal/retry/LICENSE | 201 -
.../otel/exporters/otlp/otlptrace/README.md | 8 +-
.../otel/exporters/otlp/otlptrace/exporter.go | 7 +-
.../otlp/otlptrace/otlptracegrpc/client.go | 23 +-
.../internal/envconfig/envconfig.go | 94 +-
.../otlptrace/otlptracegrpc/internal/gen.go | 35 +
.../internal/otlpconfig/envconfig.go | 34 +-
.../internal/otlpconfig/options.go | 29 +-
.../internal/otlpconfig/optiontypes.go | 5 +-
.../internal/otlpconfig/tls.go | 5 +-
.../otlptracegrpc}/internal/partialsuccess.go | 39 +-
.../otlptracegrpc}/internal/retry/retry.go | 40 +-
.../otlp/otlptrace/otlptracegrpc/options.go | 4 +-
.../otlp/otlptrace/version.go} | 12 +-
vendor/go.opentelemetry.io/otel/handler.go | 65 +-
.../otel/internal/attribute/attribute.go | 111 +
.../go.opentelemetry.io/otel/internal/gen.go | 29 +
.../otel/internal/global/handler.go | 102 +
.../otel/internal/global/instruments.go | 359 +
.../otel/internal/global/internal_logging.go | 44 +-
.../otel/internal/global/meter.go | 354 +
.../otel/internal/global/state.go | 45 +-
vendor/go.opentelemetry.io/otel/metric.go | 53 +
.../otel/metric/asyncfloat64.go | 271 +
.../otel/metric/asyncint64.go | 269 +
.../go.opentelemetry.io/otel/metric/config.go | 25 +-
vendor/go.opentelemetry.io/otel/metric/doc.go | 157 +-
.../otel/metric/embedded/embedded.go | 234 +
.../otel/metric/global/global.go | 42 -
.../otel/metric/instrument.go | 334 +
.../instrument/asyncfloat64/asyncfloat64.go | 70 -
.../instrument/asyncint64/asyncint64.go | 70 -
.../otel/metric/instrument/config.go | 69 -
.../instrument/syncfloat64/syncfloat64.go | 56 -
.../metric/instrument/syncint64/syncint64.go | 56 -
.../metric/internal/global/instruments.go | 360 -
.../otel/metric/internal/global/meter.go | 347 -
.../otel/metric/internal/global/state.go | 68 -
.../go.opentelemetry.io/otel/metric/meter.go | 204 +-
.../go.opentelemetry.io/otel/metric/noop.go | 181 -
.../otel/metric/syncfloat64.go | 179 +
.../otel/metric/syncint64.go | 179 +
.../go.opentelemetry.io/otel/requirements.txt | 1 +
.../otel/sdk/internal/env/env.go | 10 +-
.../otel/sdk/internal/gen.go | 29 +
.../otel/sdk/internal/internal.go | 11 +-
.../otel/sdk/resource/auto.go | 58 +-
.../otel/sdk/resource/builtin.go | 10 +-
.../otel/sdk/resource/config.go | 7 +
.../otel/sdk/resource/container.go | 4 +-
.../otel/sdk/resource/doc.go | 3 +
.../otel/sdk/resource/env.go | 23 +-
.../otel/sdk/resource/host_id.go | 120 +
.../resource/host_id_bsd.go} | 19 +-
.../otel/sdk/resource/host_id_darwin.go | 19 +
.../otel/sdk/resource/host_id_exec.go | 29 +
.../otel/sdk/resource/host_id_linux.go | 22 +
.../otel/sdk/resource/host_id_readfile.go | 28 +
.../otel/sdk/resource/host_id_unsupported.go | 36 +
.../otel/sdk/resource/host_id_windows.go | 48 +
.../otel/sdk/resource/os.go | 6 +-
.../otel/sdk/resource/os_release_unix.go | 8 +-
.../otel/sdk/resource/process.go | 18 +-
.../otel/sdk/resource/resource.go | 27 +-
.../otel/sdk/trace/batch_span_processor.go | 70 +-
.../otel/sdk/trace/provider.go | 125 +-
.../otel/sdk/trace/sampling.go | 10 +-
.../otel/sdk/trace/simple_span_processor.go | 9 +-
.../otel/sdk/trace/span.go | 55 +-
.../otel/sdk/trace/span_exporter.go | 2 +-
.../otel/sdk/trace/span_processor.go | 7 +-
.../otel/sdk/trace/tracer.go | 2 +-
.../otel/sdk/trace/version.go | 20 +
.../go.opentelemetry.io/otel/sdk/version.go | 20 +
.../otel/semconv/internal/http.go | 8 +-
.../otel/semconv/v1.17.0/doc.go | 20 +
.../otel/semconv/v1.17.0/event.go | 199 +
.../unit.go => semconv/v1.17.0/exception.go} | 11 +-
.../otel/semconv/v1.17.0/http.go | 21 +
.../otel/semconv/v1.17.0/resource.go | 2010 ++++
.../otel/semconv/v1.17.0/schema.go | 20 +
.../otel/semconv/v1.17.0/trace.go | 3375 +++++++
.../otel/semconv/v1.21.0/attribute_group.go | 1877 ++++
.../otel/semconv/v1.21.0/doc.go | 20 +
.../otel/semconv/v1.21.0/event.go | 199 +
.../otel/semconv/v1.21.0/exception.go | 20 +
.../otel/semconv/v1.21.0/resource.go | 2310 +++++
.../otel/semconv/v1.21.0/schema.go | 20 +
.../otel/semconv/v1.21.0/trace.go | 2495 +++++
.../go.opentelemetry.io/otel/trace/config.go | 17 +
vendor/go.opentelemetry.io/otel/trace/doc.go | 2 +-
vendor/go.opentelemetry.io/otel/trace/noop.go | 4 +-
.../go.opentelemetry.io/otel/trace/trace.go | 5 +-
vendor/go.opentelemetry.io/otel/version.go | 2 +-
vendor/go.opentelemetry.io/otel/versions.yaml | 29 +-
.../collector/trace/v1/trace_service.pb.go | 2 +-
.../collector/trace/v1/trace_service.pb.gw.go | 26 +-
.../trace/v1/trace_service_grpc.pb.go | 2 +-
.../proto/otlp/common/v1/common.pb.go | 9 +-
.../proto/otlp/resource/v1/resource.pb.go | 2 +-
.../proto/otlp/trace/v1/trace.pb.go | 26 +-
vendor/go.uber.org/atomic/.codecov.yml | 19 -
vendor/go.uber.org/atomic/.gitignore | 12 -
vendor/go.uber.org/atomic/.travis.yml | 27 -
vendor/go.uber.org/atomic/CHANGELOG.md | 76 -
vendor/go.uber.org/atomic/LICENSE.txt | 19 -
vendor/go.uber.org/atomic/Makefile | 78 -
vendor/go.uber.org/atomic/README.md | 63 -
vendor/go.uber.org/atomic/bool.go | 81 -
vendor/go.uber.org/atomic/doc.go | 23 -
vendor/go.uber.org/atomic/duration.go | 82 -
vendor/go.uber.org/atomic/duration_ext.go | 40 -
vendor/go.uber.org/atomic/error.go | 51 -
vendor/go.uber.org/atomic/float64.go | 76 -
vendor/go.uber.org/atomic/float64_ext.go | 47 -
vendor/go.uber.org/atomic/gen.go | 26 -
vendor/go.uber.org/atomic/int32.go | 102 -
vendor/go.uber.org/atomic/int64.go | 102 -
vendor/go.uber.org/atomic/nocmp.go | 35 -
vendor/go.uber.org/atomic/string_ext.go | 43 -
vendor/go.uber.org/atomic/uint32.go | 102 -
vendor/go.uber.org/atomic/uint64.go | 102 -
vendor/go.uber.org/atomic/value.go | 31 -
vendor/go.uber.org/multierr/.travis.yml | 23 -
vendor/go.uber.org/multierr/CHANGELOG.md | 35 +
vendor/go.uber.org/multierr/LICENSE.txt | 2 +-
vendor/go.uber.org/multierr/Makefile | 6 +-
vendor/go.uber.org/multierr/README.md | 30 +-
vendor/go.uber.org/multierr/error.go | 415 +-
.../error_post_go120.go} | 35 +-
.../multierr/{go113.go => error_pre_go120.go} | 31 +-
vendor/go.uber.org/multierr/glide.yaml | 8 -
vendor/go.uber.org/zap/.golangci.yml | 77 +
vendor/go.uber.org/zap/CHANGELOG.md | 242 +-
vendor/go.uber.org/zap/Makefile | 87 +-
vendor/go.uber.org/zap/README.md | 62 +-
vendor/go.uber.org/zap/array.go | 127 +
vendor/go.uber.org/zap/array_go118.go | 156 -
vendor/go.uber.org/zap/buffer/buffer.go | 5 +
vendor/go.uber.org/zap/buffer/pool.go | 20 +-
vendor/go.uber.org/zap/config.go | 84 +-
vendor/go.uber.org/zap/error.go | 14 +-
vendor/go.uber.org/zap/field.go | 194 +-
vendor/go.uber.org/zap/http_handler.go | 19 +-
.../go.uber.org/zap/internal/level_enabler.go | 2 +
.../string.go => zap/internal/pool/pool.go} | 54 +-
.../stacktrace/stack.go} | 81 +-
vendor/go.uber.org/zap/level.go | 9 +-
vendor/go.uber.org/zap/logger.go | 48 +-
vendor/go.uber.org/zap/sink.go | 5 +-
vendor/go.uber.org/zap/sugar.go | 69 +-
vendor/go.uber.org/zap/writer.go | 12 +-
.../zap/zapcore/console_encoder.go | 14 +-
vendor/go.uber.org/zap/zapcore/core.go | 6 +-
vendor/go.uber.org/zap/zapcore/entry.go | 22 +-
vendor/go.uber.org/zap/zapcore/error.go | 14 +-
.../go.uber.org/zap/zapcore/json_encoder.go | 155 +-
.../bool_ext.go => zap/zapcore/lazy_with.go} | 49 +-
vendor/go.uber.org/zap/zapcore/sampler.go | 9 +-
vendor/go.uber.org/zap/zapgrpc/zapgrpc.go | 8 +-
vendor/golang.org/x/crypto/hkdf/hkdf.go | 95 +
vendor/golang.org/x/exp/LICENSE | 27 +
vendor/golang.org/x/exp/PATENTS | 22 +
.../x/exp/constraints/constraints.go | 50 +
vendor/golang.org/x/exp/maps/maps.go | 94 +
vendor/golang.org/x/exp/slices/slices.go | 218 +
vendor/golang.org/x/exp/slices/sort.go | 127 +
vendor/golang.org/x/exp/slices/zsortfunc.go | 479 +
.../golang.org/x/exp/slices/zsortordered.go | 481 +
.../x/oauth2/internal/client_appengine.go | 1 -
vendor/golang.org/x/oauth2/internal/token.go | 70 +-
vendor/golang.org/x/oauth2/oauth2.go | 4 +
vendor/golang.org/x/oauth2/token.go | 2 +-
vendor/golang.org/x/sync/errgroup/errgroup.go | 3 +
vendor/golang.org/x/sync/errgroup/go120.go | 1 -
.../golang.org/x/sync/errgroup/pre_go120.go | 1 -
.../x/sync/singleflight/singleflight.go | 9 +
vendor/golang.org/x/sys/execabs/execabs.go | 102 -
.../golang.org/x/sys/execabs/execabs_go118.go | 17 -
.../golang.org/x/sys/execabs/execabs_go119.go | 20 -
.../x/text/feature/plural/common.go | 70 +
.../x/text/feature/plural/message.go | 244 +
.../x/text/feature/plural/plural.go | 262 +
.../x/text/feature/plural/tables.go | 552 ++
.../x/text/internal/catmsg/catmsg.go | 417 +
.../x/text/internal/catmsg/codec.go | 407 +
.../x/text/internal/catmsg/varint.go | 62 +
.../x/text/internal/format/format.go | 41 +
.../x/text/internal/format/parser.go | 358 +
vendor/golang.org/x/text/internal/internal.go | 49 +
.../x/text/internal/language/common.go | 16 +
.../x/text/internal/language/compact.go | 29 +
.../text/internal/language/compact/compact.go | 61 +
.../internal/language/compact/language.go | 260 +
.../text/internal/language/compact/parents.go | 120 +
.../text/internal/language/compact/tables.go | 1015 ++
.../x/text/internal/language/compact/tags.go | 91 +
.../x/text/internal/language/compose.go | 167 +
.../x/text/internal/language/coverage.go | 28 +
.../x/text/internal/language/language.go | 627 ++
.../x/text/internal/language/lookup.go | 412 +
.../x/text/internal/language/match.go | 226 +
.../x/text/internal/language/parse.go | 608 ++
.../x/text/internal/language/tables.go | 3494 +++++++
.../x/text/internal/language/tags.go | 48 +
vendor/golang.org/x/text/internal/match.go | 67 +
.../x/text/internal/number/common.go | 55 +
.../x/text/internal/number/decimal.go | 500 +
.../x/text/internal/number/format.go | 535 ++
.../x/text/internal/number/number.go | 152 +
.../x/text/internal/number/pattern.go | 485 +
.../internal/number/roundingmode_string.go | 30 +
.../x/text/internal/number/tables.go | 1219 +++
.../x/text/internal/stringset/set.go | 86 +
vendor/golang.org/x/text/internal/tag/tag.go | 100 +
vendor/golang.org/x/text/language/coverage.go | 187 +
vendor/golang.org/x/text/language/doc.go | 98 +
vendor/golang.org/x/text/language/language.go | 605 ++
vendor/golang.org/x/text/language/match.go | 735 ++
vendor/golang.org/x/text/language/parse.go | 256 +
vendor/golang.org/x/text/language/tables.go | 298 +
vendor/golang.org/x/text/language/tags.go | 145 +
vendor/golang.org/x/text/message/catalog.go | 36 +
.../x/text/message/catalog/catalog.go | 365 +
.../golang.org/x/text/message/catalog/dict.go | 129 +
.../golang.org/x/text/message/catalog/go19.go | 15 +
.../x/text/message/catalog/gopre19.go | 23 +
vendor/golang.org/x/text/message/doc.go | 99 +
vendor/golang.org/x/text/message/format.go | 510 +
vendor/golang.org/x/text/message/message.go | 193 +
vendor/golang.org/x/text/message/print.go | 984 ++
.../x/tools/cmd/goimports/goimports.go | 9 +-
.../x/tools/cmd/goimports/goimports_gc.go | 2 +-
.../x/tools/go/ast/astutil/enclosing.go | 8 +-
.../x/tools/go/ast/astutil/rewrite.go | 8 +-
.../tools/go/internal/packagesdriver/sizes.go | 24 +-
vendor/golang.org/x/tools/go/packages/doc.go | 46 +-
.../x/tools/go/packages/external.go | 79 +-
.../golang.org/x/tools/go/packages/golist.go | 125 +-
.../x/tools/go/packages/golist_overlay.go | 492 -
.../x/tools/go/packages/packages.go | 219 +-
.../x/tools/go/types/objectpath/objectpath.go | 130 +-
vendor/golang.org/x/tools/imports/forward.go | 4 +-
.../x/tools/internal/event/keys/util.go | 21 +
.../x/tools/internal/fastwalk/fastwalk.go | 196 -
.../internal/fastwalk/fastwalk_darwin.go | 119 -
.../fastwalk/fastwalk_dirent_fileno.go | 14 -
.../internal/fastwalk/fastwalk_dirent_ino.go | 15 -
.../fastwalk/fastwalk_dirent_namlen_bsd.go | 14 -
.../fastwalk/fastwalk_dirent_namlen_linux.go | 29 -
.../internal/fastwalk/fastwalk_portable.go | 38 -
.../tools/internal/fastwalk/fastwalk_unix.go | 153 -
.../x/tools/internal/gcimporter/gcimporter.go | 3 +-
.../x/tools/internal/gcimporter/iexport.go | 31 +-
.../x/tools/internal/gcimporter/iimport.go | 46 +-
.../x/tools/internal/gocommand/invoke.go | 27 +-
.../x/tools/internal/gopathwalk/walk.go | 289 +-
.../x/tools/internal/imports/fix.go | 197 +-
.../x/tools/internal/imports/imports.go | 2 +-
.../x/tools/internal/imports/mod.go | 290 +-
.../x/tools/internal/imports/mod_cache.go | 116 +-
.../x/tools/internal/imports/zstdlib.go | 291 +
.../internal/packagesinternal/packages.go | 8 -
.../x/tools/internal/typeparams/common.go | 24 +-
.../x/tools/internal/typeparams/coretype.go | 16 +-
.../internal/typeparams/enabled_go117.go | 12 -
.../internal/typeparams/enabled_go118.go | 15 -
.../x/tools/internal/typeparams/normalize.go | 20 +-
.../x/tools/internal/typeparams/termlist.go | 2 +-
.../internal/typeparams/typeparams_go117.go | 197 -
.../internal/typeparams/typeparams_go118.go | 151 -
.../x/tools/internal/typeparams/typeterm.go | 9 +-
.../x/tools/internal/typesinternal/types.go | 16 -
.../x/tools/internal/versions/gover.go | 172 +
.../x/tools/internal/versions/types.go | 19 +
.../x/tools/internal/versions/types_go121.go | 20 +
.../x/tools/internal/versions/types_go122.go | 24 +
.../x/tools/internal/versions/versions.go | 52 +
.../gomodules.xyz/jsonpatch/v2/jsonpatch.go | 4 +
.../grpc/health/grpc_health_v1/health.pb.go | 308 +
.../health/grpc_health_v1/health_grpc.pb.go | 223 +
.../natefinch/lumberjack.v2/.travis.yml | 11 +-
.../natefinch/lumberjack.v2/chown_linux.go | 6 +-
.../natefinch/lumberjack.v2/lumberjack.go | 16 +-
.../k8s.io/api/admission/v1/generated.pb.go | 127 +-
.../api/admission/v1beta1/generated.pb.go | 129 +-
.../admissionregistration/v1/generated.pb.go | 6011 ++++++++++--
.../admissionregistration/v1/generated.proto | 574 +-
.../api/admissionregistration/v1/register.go | 4 +
.../api/admissionregistration/v1/types.go | 604 +-
.../v1/types_swagger_doc_generated.go | 178 +-
.../v1/zz_generated.deepcopy.go | 432 +
.../v1alpha1/generated.pb.go | 584 +-
.../v1alpha1/generated.proto | 92 +-
.../admissionregistration/v1alpha1/types.go | 105 +-
.../v1alpha1/types_swagger_doc_generated.go | 25 +-
.../v1alpha1/zz_generated.deepcopy.go | 33 +-
.../v1beta1/generated.pb.go | 5664 +++++++++--
.../v1beta1/generated.proto | 575 +-
.../admissionregistration/v1beta1/register.go | 4 +
.../admissionregistration/v1beta1/types.go | 605 +-
.../v1beta1/types_swagger_doc_generated.go | 178 +-
.../v1beta1/zz_generated.deepcopy.go | 448 +-
.../zz_generated.prerelease-lifecycle.go | 72 +
.../v1alpha1 => api/apidiscovery/v2}/doc.go | 9 +-
.../api/apidiscovery/v2/generated.pb.go | 1742 ++++
.../api/apidiscovery/v2/generated.proto | 156 +
.../apidiscovery/v2}/register.go | 37 +-
vendor/k8s.io/api/apidiscovery/v2/types.go | 155 +
.../apidiscovery/v2/zz_generated.deepcopy.go | 190 +
.../api/apidiscovery/v2beta1/generated.pb.go | 113 +-
.../v1alpha1/generated.pb.go | 165 +-
.../v1alpha1/generated.proto | 6 +-
.../api/apiserverinternal/v1alpha1/types.go | 6 +-
.../v1alpha1/types_swagger_doc_generated.go | 1 +
.../v1alpha1/zz_generated.deepcopy.go | 5 +
vendor/k8s.io/api/apps/v1/generated.pb.go | 341 +-
vendor/k8s.io/api/apps/v1/generated.proto | 9 +
vendor/k8s.io/api/apps/v1/types.go | 12 +-
.../k8s.io/api/apps/v1beta1/generated.pb.go | 299 +-
.../k8s.io/api/apps/v1beta1/generated.proto | 5 +
vendor/k8s.io/api/apps/v1beta1/types.go | 5 +
.../k8s.io/api/apps/v1beta2/generated.pb.go | 365 +-
.../k8s.io/api/apps/v1beta2/generated.proto | 9 +
vendor/k8s.io/api/apps/v1beta2/types.go | 9 +
.../api/authentication/v1/generated.pb.go | 525 +-
.../api/authentication/v1/generated.proto | 24 +
.../k8s.io/api/authentication/v1/register.go | 1 +
vendor/k8s.io/api/authentication/v1/types.go | 29 +
.../v1/types_swagger_doc_generated.go | 19 +
.../v1/zz_generated.deepcopy.go | 44 +
.../authentication/v1alpha1/generated.pb.go | 59 +-
.../authentication/v1beta1/generated.pb.go | 117 +-
.../authentication/v1beta1/generated.proto | 3 +
.../api/authentication/v1beta1/types.go | 3 +
.../api/authorization/v1/generated.pb.go | 177 +-
.../api/authorization/v1/generated.proto | 9 +
vendor/k8s.io/api/authorization/v1/types.go | 9 +
.../api/authorization/v1beta1/generated.pb.go | 183 +-
.../api/authorization/v1beta1/generated.proto | 9 +
.../k8s.io/api/authorization/v1beta1/types.go | 9 +
.../k8s.io/api/autoscaling/v1/generated.pb.go | 255 +-
.../k8s.io/api/autoscaling/v2/generated.pb.go | 243 +-
.../api/autoscaling/v2beta1/generated.pb.go | 243 +-
.../api/autoscaling/v2beta1/generated.proto | 3 +
.../k8s.io/api/autoscaling/v2beta1/types.go | 3 +
.../api/autoscaling/v2beta2/generated.pb.go | 255 +-
.../api/autoscaling/v2beta2/generated.proto | 4 +
.../k8s.io/api/autoscaling/v2beta2/types.go | 4 +
vendor/k8s.io/api/batch/v1/generated.pb.go | 1077 ++-
vendor/k8s.io/api/batch/v1/generated.proto | 160 +-
vendor/k8s.io/api/batch/v1/types.go | 220 +-
.../batch/v1/types_swagger_doc_generated.go | 44 +-
.../api/batch/v1/zz_generated.deepcopy.go | 84 +
.../k8s.io/api/batch/v1beta1/generated.pb.go | 115 +-
.../api/certificates/v1/generated.pb.go | 133 +-
.../api/certificates/v1alpha1/generated.pb.go | 74 +-
.../api/certificates/v1beta1/generated.pb.go | 135 +-
.../api/coordination/v1/generated.pb.go | 85 +-
.../api/coordination/v1beta1/generated.pb.go | 85 +-
.../api/core/v1/annotation_key_constants.go | 23 +-
vendor/k8s.io/api/core/v1/generated.pb.go | 7504 ++++++++++-----
vendor/k8s.io/api/core/v1/generated.proto | 636 +-
vendor/k8s.io/api/core/v1/types.go | 752 +-
.../core/v1/types_swagger_doc_generated.go | 215 +-
.../k8s.io/api/core/v1/well_known_labels.go | 4 +
.../api/core/v1/zz_generated.deepcopy.go | 331 +-
.../k8s.io/api/discovery/v1/generated.pb.go | 137 +-
.../k8s.io/api/discovery/v1/generated.proto | 6 +-
vendor/k8s.io/api/discovery/v1/types.go | 6 +-
.../v1/types_swagger_doc_generated.go | 4 +-
.../api/discovery/v1beta1/generated.pb.go | 135 +-
.../api/discovery/v1beta1/generated.proto | 2 +-
vendor/k8s.io/api/discovery/v1beta1/types.go | 2 +-
.../v1beta1/types_swagger_doc_generated.go | 2 +-
vendor/k8s.io/api/events/v1/generated.pb.go | 111 +-
.../k8s.io/api/events/v1beta1/generated.pb.go | 111 +-
.../api/extensions/v1beta1/generated.pb.go | 687 +-
.../api/extensions/v1beta1/generated.proto | 36 +-
vendor/k8s.io/api/extensions/v1beta1/types.go | 69 +-
.../v1beta1/types_swagger_doc_generated.go | 10 -
.../v1beta1/zz_generated.deepcopy.go | 24 -
.../api/flowcontrol/{v1alpha1 => v1}/doc.go | 7 +-
.../{v1alpha1 => v1}/generated.pb.go | 551 +-
.../{v1alpha1 => v1}/generated.proto | 83 +-
.../flowcontrol/{v1alpha1 => v1}/register.go | 6 +-
.../api/flowcontrol/{v1alpha1 => v1}/types.go | 152 +-
.../types_swagger_doc_generated.go | 15 +-
.../{v1alpha1 => v1}/zz_generated.deepcopy.go | 38 +-
.../zz_generated.prerelease-lifecycle.go | 122 -
.../api/flowcontrol/v1beta1/generated.pb.go | 485 +-
.../api/flowcontrol/v1beta1/generated.proto | 44 +-
.../k8s.io/api/flowcontrol/v1beta1/types.go | 51 +-
.../v1beta1/types_swagger_doc_generated.go | 13 +-
.../v1beta1/zz_generated.deepcopy.go | 31 +
.../api/flowcontrol/v1beta2/generated.pb.go | 484 +-
.../api/flowcontrol/v1beta2/generated.proto | 44 +-
.../k8s.io/api/flowcontrol/v1beta2/types.go | 51 +-
.../v1beta2/types_swagger_doc_generated.go | 13 +-
.../v1beta2/zz_generated.deepcopy.go | 31 +
.../api/flowcontrol/v1beta3/generated.pb.go | 484 +-
.../api/flowcontrol/v1beta3/generated.proto | 46 +-
.../k8s.io/api/flowcontrol/v1beta3/types.go | 71 +-
.../v1beta3/types_swagger_doc_generated.go | 13 +-
.../v1beta3/zz_generated.deepcopy.go | 31 +
.../zz_generated.prerelease-lifecycle.go | 28 +
.../k8s.io/api/networking/v1/generated.pb.go | 504 +-
.../k8s.io/api/networking/v1/generated.proto | 26 +-
vendor/k8s.io/api/networking/v1/types.go | 59 +-
.../v1/types_swagger_doc_generated.go | 10 -
.../networking/v1/zz_generated.deepcopy.go | 24 -
.../api/networking/v1alpha1/generated.pb.go | 989 +-
.../api/networking/v1alpha1/generated.proto | 116 +-
.../api/networking/v1alpha1/register.go | 4 +-
.../k8s.io/api/networking/v1alpha1/types.go | 148 +-
.../v1alpha1/types_swagger_doc_generated.go | 72 +-
.../v1alpha1/zz_generated.deepcopy.go | 110 +-
.../zz_generated.prerelease-lifecycle.go | 36 +-
.../api/networking/v1beta1/generated.pb.go | 202 +-
.../api/networking/v1beta1/generated.proto | 5 +
vendor/k8s.io/api/networking/v1beta1/types.go | 5 +
vendor/k8s.io/api/node/v1/generated.pb.go | 99 +-
.../k8s.io/api/node/v1alpha1/generated.pb.go | 103 +-
.../k8s.io/api/node/v1beta1/generated.pb.go | 99 +-
vendor/k8s.io/api/policy/v1/doc.go | 2 +-
vendor/k8s.io/api/policy/v1/generated.pb.go | 125 +-
vendor/k8s.io/api/policy/v1beta1/doc.go | 2 +-
.../k8s.io/api/policy/v1beta1/generated.pb.go | 5003 ++--------
.../k8s.io/api/policy/v1beta1/generated.proto | 277 -
vendor/k8s.io/api/policy/v1beta1/register.go | 2 -
vendor/k8s.io/api/policy/v1beta1/types.go | 371 -
.../v1beta1/types_swagger_doc_generated.go | 160 -
.../policy/v1beta1/zz_generated.deepcopy.go | 367 -
.../zz_generated.prerelease-lifecycle.go | 36 -
vendor/k8s.io/api/rbac/v1/generated.pb.go | 137 +-
vendor/k8s.io/api/rbac/v1/generated.proto | 12 +
vendor/k8s.io/api/rbac/v1/types.go | 12 +
.../rbac/v1/types_swagger_doc_generated.go | 4 +-
.../k8s.io/api/rbac/v1alpha1/generated.pb.go | 141 +-
.../k8s.io/api/rbac/v1alpha1/generated.proto | 10 +
vendor/k8s.io/api/rbac/v1alpha1/types.go | 10 +
.../k8s.io/api/rbac/v1beta1/generated.pb.go | 137 +-
.../k8s.io/api/rbac/v1beta1/generated.proto | 10 +
vendor/k8s.io/api/rbac/v1beta1/types.go | 10 +
.../api/resource/v1alpha2/generated.pb.go | 8396 ++++++++++++++---
.../api/resource/v1alpha2/generated.proto | 353 +-
.../api/resource/v1alpha2/namedresources.go | 127 +
.../k8s.io/api/resource/v1alpha2/register.go | 6 +
vendor/k8s.io/api/resource/v1alpha2/types.go | 281 +-
.../v1alpha2/types_swagger_doc_generated.go | 179 +-
.../v1alpha2/zz_generated.deepcopy.go | 630 +-
.../k8s.io/api/scheduling/v1/generated.pb.go | 73 +-
.../api/scheduling/v1alpha1/generated.pb.go | 71 +-
.../api/scheduling/v1beta1/generated.pb.go | 73 +-
vendor/k8s.io/api/storage/v1/generated.pb.go | 259 +-
vendor/k8s.io/api/storage/v1/generated.proto | 12 +-
vendor/k8s.io/api/storage/v1/types.go | 12 +-
.../storage/v1/types_swagger_doc_generated.go | 4 +-
.../api/storage/v1alpha1/generated.pb.go | 753 +-
.../api/storage/v1alpha1/generated.proto | 42 +-
.../k8s.io/api/storage/v1alpha1/register.go | 2 +
vendor/k8s.io/api/storage/v1alpha1/types.go | 54 +-
.../v1alpha1/types_swagger_doc_generated.go | 21 +
.../storage/v1alpha1/zz_generated.deepcopy.go | 66 +
.../zz_generated.prerelease-lifecycle.go | 36 +
.../api/storage/v1beta1/generated.pb.go | 259 +-
.../api/storage/v1beta1/generated.proto | 9 +-
vendor/k8s.io/api/storage/v1beta1/types.go | 9 +-
.../v1beta1/types_swagger_doc_generated.go | 2 +-
.../storagemigration/v1alpha1}/doc.go | 12 +-
.../storagemigration/v1alpha1/generated.pb.go | 1688 ++++
.../storagemigration/v1alpha1/generated.proto | 127 +
.../api/storagemigration/v1alpha1/register.go | 58 +
.../api/storagemigration/v1alpha1/types.go | 131 +
.../v1alpha1/types_swagger_doc_generated.go | 95 +
.../v1alpha1/zz_generated.deepcopy.go | 160 +
.../zz_generated.prerelease-lifecycle.go | 58 +
.../pkg/apis/apiextensions/deepcopy.go | 8 +-
.../pkg/apis/apiextensions/types.go | 25 +
.../apis/apiextensions/types_jsonschema.go | 69 +
.../pkg/apis/apiextensions/v1/conversion.go | 26 +-
.../pkg/apis/apiextensions/v1/deepcopy.go | 8 +-
.../pkg/apis/apiextensions/v1/generated.pb.go | 794 +-
.../pkg/apis/apiextensions/v1/generated.proto | 88 +
.../pkg/apis/apiextensions/v1/types.go | 30 +
.../apis/apiextensions/v1/types_jsonschema.go | 121 +-
.../v1/zz_generated.conversion.go | 39 +
.../apiextensions/v1/zz_generated.deepcopy.go | 35 +-
.../apis/apiextensions/v1beta1/deepcopy.go | 8 +-
.../apiextensions/v1beta1/generated.pb.go | 858 +-
.../apiextensions/v1beta1/generated.proto | 96 +
.../pkg/apis/apiextensions/v1beta1/types.go | 38 +
.../apiextensions/v1beta1/types_jsonschema.go | 121 +-
.../v1beta1/zz_generated.conversion.go | 40 +
.../v1beta1/zz_generated.deepcopy.go | 40 +-
.../apiextensions/zz_generated.deepcopy.go | 40 +-
.../k8s.io/apimachinery/pkg/api/errors/OWNERS | 1 -
.../apimachinery/pkg/api/meta/conditions.go | 37 +-
.../k8s.io/apimachinery/pkg/api/meta/help.go | 83 +-
.../apimachinery/pkg/api/resource/OWNERS | 1 -
.../apimachinery/pkg/api/resource/amount.go | 38 +
.../pkg/api/resource/generated.pb.go | 43 +-
.../apimachinery/pkg/api/resource/quantity.go | 10 +
.../pkg/api/validation}/OWNERS | 2 -
.../pkg/apis/meta/v1/generated.pb.go | 441 +-
.../pkg/apis/meta/v1/generated.proto | 24 +-
.../apimachinery/pkg/apis/meta/v1/types.go | 57 +-
.../pkg/apis/meta/v1/unstructured/helpers.go | 2 +-
.../apis/meta/v1/unstructured/unstructured.go | 5 +
.../meta/v1/unstructured/unstructured_list.go | 9 +
.../pkg/apis/meta/v1beta1/generated.pb.go | 45 +-
.../pkg/apis/testapigroup/v1/generated.pb.go | 145 +-
.../pkg/apis/testapigroup/v1/generated.proto | 2 +-
.../pkg/apis/testapigroup/v1/types.go | 2 +-
.../k8s.io/apimachinery/pkg/runtime/codec.go | 1 -
.../apimachinery/pkg/runtime/generated.pb.go | 65 +-
.../k8s.io/apimachinery/pkg/runtime/helper.go | 35 +-
.../apimachinery/pkg/runtime/interfaces.go | 5 +
.../pkg/runtime/schema/generated.pb.go | 31 +-
.../pkg/runtime/schema/group_version.go | 2 +-
.../runtime/serializer/streaming/streaming.go | 20 -
.../k8s.io/apimachinery/pkg/runtime/splice.go | 76 +
.../apimachinery/pkg/util/cache/expiring.go | 12 +-
.../pkg/util/cache/lruexpirecache.go | 13 +
.../k8s.io/apimachinery/pkg/util/diff/diff.go | 37 +-
.../k8s.io/apimachinery/pkg/util/dump/dump.go | 54 +
.../apimachinery/pkg/util/httpstream/doc.go | 19 +
.../pkg/util/httpstream/httpstream.go | 180 +
.../pkg/util/httpstream}/wsstream/conn.go | 138 +-
.../pkg/util/httpstream/wsstream/doc.go | 69 +
.../pkg/util/httpstream}/wsstream/stream.go | 0
.../pkg/util/intstr/generated.pb.go | 47 +-
.../apimachinery/pkg/util/intstr/intstr.go | 13 +-
.../managedfields/internal/fieldmanager.go | 25 +-
.../managedfields/internal/skipnonapplied.go | 14 +-
.../managedfields/internal/structuredmerge.go | 9 +-
.../managedfields/internal/typeconverter.go | 14 +-
.../managedfields/internal/versioncheck.go | 52 +
.../pkg/util/managedfields/node.yaml | 2 +-
.../apimachinery/pkg/util/mergepatch/util.go | 4 +-
.../k8s.io/apimachinery/pkg/util/net/util.go | 6 +
.../pkg/util/portforward/constants.go | 24 +
.../pkg/util/remotecommand/constants.go | 67 +
.../k8s.io/apimachinery/pkg/util/sets/doc.go | 2 +-
.../apimachinery/pkg/util/sets/ordered.go | 53 -
.../k8s.io/apimachinery/pkg/util/sets/set.go | 9 +-
.../pkg/util/strategicpatch/meta.go | 89 +
.../pkg/util/strategicpatch/patch.go | 63 +-
.../apimachinery/pkg/util/validation/OWNERS | 11 +
.../pkg/util/validation/field/errors.go | 4 +-
.../pkg/util/validation/validation.go | 56 +-
.../apimachinery/pkg/util/version}/doc.go | 7 +-
.../apimachinery/pkg/util/version/version.go | 372 +
.../k8s.io/apimachinery/pkg/util/wait/loop.go | 38 +-
.../k8s.io/apimachinery/pkg/util/wait/poll.go | 28 +-
.../k8s.io/apiserver/pkg/admission/config.go | 5 +-
.../configuration/mutating_webhook_manager.go | 76 +-
.../validating_webhook_manager.go | 79 +-
.../pkg/admission/initializer/initializer.go | 7 +
.../pkg/admission/initializer/interfaces.go | 8 +
.../pkg/admission/metrics/metrics.go | 67 +-
.../pkg/admission/plugin/cel/compile.go | 275 +-
.../pkg/admission/plugin/cel/composition.go | 253 +
.../pkg/admission/plugin/cel/filter.go | 81 +-
.../pkg/admission/plugin/cel/interface.go | 14 +-
.../plugin/policy/generic/accessor.go | 42 +
.../plugin/policy/generic/interfaces.go | 64 +
.../admission/plugin/policy/generic/plugin.go | 215 +
.../policy/generic/policy_dispatcher.go | 354 +
.../generic/policy_matcher.go} | 82 +-
.../plugin/policy/generic/policy_source.go | 477 +
.../policy/generic/policy_test_context.go | 639 ++
.../internal/generic/controller.go | 0
.../internal/generic/doc.go | 0
.../internal/generic/informer.go | 4 +
.../internal/generic/interface.go | 0
.../internal/generic/lister.go | 0
.../matching/matching.go | 58 +-
.../plugin/policy/validating/accessor.go | 82 +
.../policy/validating/caching_authorizer.go | 133 +
.../plugin/policy/validating/dispatcher.go | 414 +
.../validating}/initializer.go | 2 +-
.../validating}/interface.go | 30 +-
.../validating}/message.go | 2 +-
.../policy/validating/metrics}/metrics.go | 0
.../plugin/policy/validating/plugin.go | 188 +
.../validating}/policy_decision.go | 2 +-
.../plugin/policy/validating/typechecking.go | 486 +
.../validating}/validator.go | 26 +-
.../plugin/validatingadmissionpolicy/OWNERS | 10 -
.../validatingadmissionpolicy/admission.go | 205 -
.../validatingadmissionpolicy/controller.go | 502 -
.../controller_reconcile.go | 604 --
.../validatingadmissionpolicy/typechecking.go | 435 -
.../pkg/admission/plugin/webhook/accessors.go | 29 +-
.../config/apis/webhookadmission/doc.go | 2 +-
.../config/apis/webhookadmission/v1/doc.go | 2 +-
.../apis/webhookadmission/v1alpha1/doc.go | 2 +-
.../plugin/webhook/config/kubeconfig.go | 3 +-
.../plugin/webhook/generic/webhook.go | 13 +-
.../webhook/matchconditions/interface.go | 3 +-
.../plugin/webhook/matchconditions/matcher.go | 23 +-
.../webhook/predicates/namespace/matcher.go | 6 +
.../k8s.io/apiserver/pkg/admission/plugins.go | 3 +-
.../pkg/apis/apidiscovery/v2/conversion.go | 226 +
.../pkg/apis/apidiscovery/v2}/doc.go | 6 +-
.../pkg/apis/apidiscovery/v2/register.go | 39 +
.../apiserver/pkg/apis/apiserver/register.go | 3 +
.../apiserver/pkg/apis/apiserver/types.go | 228 +
.../types_encryption.go} | 2 +-
.../apis/{config => apiserver}/v1/defaults.go | 0
.../pkg/apis/apiserver/v1/register.go | 4 +
.../v1/types_encryption.go} | 0
.../apiserver/v1/zz_generated.conversion.go | 259 +
.../apiserver/v1/zz_generated.deepcopy.go | 202 +
.../apiserver/v1/zz_generated.defaults.go | 13 +
.../pkg/apis/apiserver/v1alpha1/defaults.go} | 26 +-
.../pkg/apis/apiserver/v1alpha1/register.go | 4 +-
.../pkg/apis/apiserver/v1alpha1/types.go | 441 +
.../v1alpha1/zz_generated.conversion.go | 525 ++
.../v1alpha1/zz_generated.deepcopy.go | 310 +
.../v1alpha1/zz_generated.defaults.go | 10 +
.../pkg/apis/apiserver/v1beta1/defaults.go} | 27 +-
.../pkg/apis/apiserver/v1beta1/register.go | 4 +-
.../pkg/apis/apiserver/v1beta1/types.go | 441 +
.../v1beta1/zz_generated.conversion.go | 525 ++
.../v1beta1/zz_generated.deepcopy.go | 310 +
.../v1beta1/zz_generated.defaults.go | 10 +
.../apis/apiserver/validation/validation.go | 779 ++
.../validation/validation_encryption.go} | 27 +-
.../apis/apiserver/zz_generated.deepcopy.go | 507 +
.../k8s.io/apiserver/pkg/apis/audit/types.go | 16 +-
.../pkg/apis/audit/v1/generated.pb.go | 187 +-
.../pkg/apis/audit/v1/generated.proto | 28 +-
.../apiserver/pkg/apis/audit/v1/types.go | 28 +-
.../apiserver/pkg/apis/config/v1/register.go | 53 -
.../apis/config/v1/zz_generated.conversion.go | 299 -
.../apis/config/v1/zz_generated.deepcopy.go | 228 -
.../apis/config/v1/zz_generated.defaults.go | 46 -
.../pkg/apis/config/zz_generated.deepcopy.go | 228 -
.../pkg/apis/flowcontrol/bootstrap/default.go | 36 +-
vendor/k8s.io/apiserver/pkg/audit/context.go | 76 +-
vendor/k8s.io/apiserver/pkg/audit/request.go | 29 +-
.../pkg/authentication/cel/compile.go | 155 +
.../pkg/authentication/cel/interface.go | 148 +
.../pkg/authentication/cel/mapper.go | 97 +
.../request/websocket/protocol.go | 2 +-
.../pkg/authentication/request/x509/x509.go | 27 +
.../pkg/authentication/serviceaccount/util.go | 51 +-
.../token/cache/cached_token_authenticator.go | 9 +-
.../authorization/authorizer/interfaces.go | 2 +-
.../authorizerfactory/delegating.go | 8 +-
.../authorizerfactory/metrics.go | 39 +-
.../pkg/authorization/cel/compile.go | 214 +
.../pkg/authorization/cel/interface.go | 41 +
.../pkg/authorization/cel/matcher.go | 86 +
.../pkg/authorization/cel/metrics.go | 120 +
vendor/k8s.io/apiserver/pkg/cel/cidr.go | 87 +
.../apiserver/pkg/cel/common/adaptor.go | 25 +
.../apiserver/pkg/cel/common/equality.go | 334 +
.../apiserver/pkg/cel/common/schemas.go | 19 +-
.../k8s.io/apiserver/pkg/cel/common/values.go | 26 +-
vendor/k8s.io/apiserver/pkg/cel/composited.go | 119 -
.../apiserver/pkg/cel/environment/base.go | 167 +
.../pkg/cel/environment/environment.go | 274 +
vendor/k8s.io/apiserver/pkg/cel/ip.go | 86 +
vendor/k8s.io/apiserver/pkg/cel/lazy/lazy.go | 191 +
.../k8s.io/apiserver/pkg/cel/library/authz.go | 68 +-
.../k8s.io/apiserver/pkg/cel/library/cidr.go | 287 +
.../k8s.io/apiserver/pkg/cel/library/cost.go | 169 +-
vendor/k8s.io/apiserver/pkg/cel/library/ip.go | 329 +
.../apiserver/pkg/cel/library/libraries.go | 35 -
.../k8s.io/apiserver/pkg/cel/library/lists.go | 4 +
.../apiserver/pkg/cel/library/quantity.go | 380 +
.../k8s.io/apiserver/pkg/cel/library/regex.go | 8 +-
.../k8s.io/apiserver/pkg/cel/library/test.go | 83 +
.../k8s.io/apiserver/pkg/cel/library/urls.go | 4 +
.../apiserver/pkg/cel/openapi/adaptor.go | 82 +
.../apiserver/pkg/cel/openapi/extensions.go | 45 +
.../pkg/cel/openapi/resolver/combined.go | 45 +
.../pkg/cel/openapi/resolver/definitions.go | 27 +-
.../pkg/cel/openapi/resolver/discovery.go | 16 +-
.../pkg/cel/openapi/resolver/refs.go | 32 +-
vendor/k8s.io/apiserver/pkg/cel/quantity.go | 76 +
vendor/k8s.io/apiserver/pkg/cel/registry.go | 79 -
vendor/k8s.io/apiserver/pkg/cel/types.go | 160 +-
.../endpoints/discovery/aggregated/etag.go | 4 +-
.../endpoints/discovery/aggregated/fake.go | 6 +-
.../endpoints/discovery/aggregated/handler.go | 74 +-
.../discovery/aggregated/negotiation.go | 4 +-
.../endpoints/discovery/aggregated/wrapper.go | 7 +-
.../apiserver/pkg/endpoints/filters/audit.go | 13 +-
.../pkg/endpoints/filters/authentication.go | 6 +-
.../pkg/endpoints/filters/authn_audit.go | 4 +-
.../pkg/endpoints/filters/authorization.go | 18 +-
.../pkg/endpoints/filters/impersonation.go | 20 +-
.../pkg/endpoints/filters/metrics.go | 47 +-
.../pkg/endpoints/filters/request_deadline.go | 18 +-
.../apiserver/pkg/endpoints/filters/traces.go | 11 +-
.../pkg/endpoints/filters/webhook_duration.go | 3 +-
.../apiserver/pkg/endpoints/groupversion.go | 9 +-
.../endpoints/handlers/fieldmanager/node.yaml | 2 +-
.../apiserver/pkg/endpoints/handlers/get.go | 32 +-
.../pkg/endpoints/handlers/helpers.go | 90 +
.../pkg/endpoints/handlers/metrics/metrics.go | 16 +-
.../pkg/endpoints/handlers/response.go | 252 +-
.../handlers/responsewriters/writers.go | 2 +-
.../pkg/endpoints/handlers/trace_util.go | 5 +
.../apiserver/pkg/endpoints/handlers/watch.go | 275 +-
.../apiserver/pkg/endpoints/installer.go | 59 +-
.../pkg/endpoints/metrics/metrics.go | 75 +-
.../pkg/endpoints/request/webhook_duration.go | 23 +
.../apiserver/pkg/features/kube_features.go | 160 +-
.../apiserver/pkg/registry/generic/OWNERS | 1 -
.../pkg/registry/generic/registry/dryrun.go | 22 +-
.../generic/registry/storage_factory.go | 2 +-
.../pkg/registry/generic/registry/store.go | 165 +-
.../pkg/registry/generic/storage_decorator.go | 6 +-
vendor/k8s.io/apiserver/pkg/server/config.go | 141 +-
.../dynamic_cafile_content.go | 4 +-
.../dynamic_serving_content.go | 6 +-
.../pkg/server/egressselector/config.go | 4 +-
.../server/egressselector/egress_selector.go | 4 +-
.../pkg/server/filters/maxinflight.go | 9 +-
.../server/filters/priority-and-fairness.go | 505 +-
.../apiserver/pkg/server/filters/routine.go | 77 +
.../apiserver/pkg/server/genericapiserver.go | 61 +-
vendor/k8s.io/apiserver/pkg/server/handler.go | 4 +-
vendor/k8s.io/apiserver/pkg/server/healthz.go | 96 +-
.../apiserver/pkg/server/healthz/healthz.go | 6 -
.../apiserver/pkg/server/httplog/httplog.go | 1 -
.../apiserver/pkg/server/options/OWNERS | 2 +
.../apiserver/pkg/server/options/admission.go | 32 +-
.../pkg/server/options/api_enablement.go | 4 +-
.../apiserver/pkg/server/options/audit.go | 10 -
.../options/deprecated_insecure_serving.go | 4 +-
.../server/options/encryptionconfig/config.go | 403 +-
.../encryptionconfig/controller/controller.go | 185 +-
.../encryptionconfig/metrics/metrics.go | 131 +
.../apiserver/pkg/server/options/etcd.go | 213 +-
.../apiserver/pkg/server/options/feature.go | 23 +-
.../pkg/server/options/recommended.go | 43 +-
.../pkg/server/options/server_run_options.go | 7 +-
.../apiserver/pkg/server/options/serving.go | 36 +-
vendor/k8s.io/apiserver/pkg/server/plugins.go | 2 +-
.../apiserver/pkg/server/routes/metrics.go | 4 +
.../apiserver/pkg/server/routes/openapi.go | 10 +-
.../pkg/server/storage/storage_factory.go | 47 +-
vendor/k8s.io/apiserver/pkg/storage/OWNERS | 4 +-
.../pkg/storage/cacher/cache_watcher.go | 11 +-
.../apiserver/pkg/storage/cacher/cacher.go | 330 +-
.../pkg/storage/cacher/caching_object.go | 4 +
.../pkg/storage/cacher/lister_watcher.go | 89 +
.../pkg/storage/cacher/metrics/metrics.go | 11 +
.../apiserver/pkg/storage/cacher/util.go | 14 -
.../pkg/storage/cacher/watch_cache.go | 82 +-
.../storage/cacher/watch_cache_interval.go | 17 +
.../pkg/storage/cacher/watch_progress.go | 128 +
vendor/k8s.io/apiserver/pkg/storage/errors.go | 26 +-
.../apiserver/pkg/storage/errors/storage.go | 2 +-
.../apiserver/pkg/storage/etcd3/event.go | 11 +
.../pkg/storage/etcd3/metrics/metrics.go | 119 +-
.../apiserver/pkg/storage/etcd3/store.go | 336 +-
.../apiserver/pkg/storage/etcd3/watcher.go | 246 +-
.../apiserver/pkg/storage/interfaces.go | 28 +
.../pkg/storage/selection_predicate.go | 18 +-
.../pkg/storage/storagebackend/OWNERS | 1 -
.../pkg/storage/storagebackend/config.go | 6 -
.../storage/storagebackend/factory/etcd3.go | 69 +-
.../storage/storagebackend/factory/factory.go | 18 +-
vendor/k8s.io/apiserver/pkg/storage/util.go | 80 +
.../pkg/storage/value/encrypt/aes/aes.go | 86 +-
.../value/encrypt/aes/aes_extended_nonce.go | 186 +
.../pkg/storage/value/encrypt/aes/cache.go | 91 +
.../value/encrypt/envelope/kmsv2/cache.go | 36 +-
.../value/encrypt/envelope/kmsv2/envelope.go | 248 +-
.../value/encrypt/envelope/kmsv2/v2/api.pb.go | 105 +-
.../value/encrypt/envelope/kmsv2/v2/api.proto | 28 +-
.../value/encrypt/envelope/metrics/metrics.go | 76 +-
.../apiserver/pkg/storage/value/metrics.go | 26 +-
.../pkg/storage/value/transformer.go | 53 +-
.../apiserver/pkg/storageversion/manager.go | 9 +-
.../apiserver/pkg/storageversion/updater.go | 11 +-
.../apiserver/pkg/util/apihelpers/helpers.go | 2 +-
.../apiserver/pkg/util/flowcontrol/OWNERS | 4 +-
.../pkg/util/flowcontrol/apf_controller.go | 257 +-
.../util/flowcontrol/apf_controller_debug.go | 118 +-
.../pkg/util/flowcontrol/apf_filter.go | 13 +-
.../pkg/util/flowcontrol/debug/dump.go | 22 +-
.../flowcontrol/dropped_requests_tracker.go | 234 +
.../util/flowcontrol/fairqueuing/interface.go | 19 +-
.../fairqueuing/promise/promise.go | 15 +-
.../flowcontrol/fairqueuing/queueset/doc.go | 2 +-
.../fairqueuing/queueset/queueset.go | 197 +-
.../flowcontrol/fairqueuing/queueset/types.go | 85 +-
.../pkg/util/flowcontrol/format/formatting.go | 14 +-
.../pkg/util/flowcontrol/metrics/metrics.go | 64 +-
.../request/list_work_estimator.go | 28 +-
.../util/flowcontrol/request/seat_seconds.go | 2 +-
.../pkg/util/flowcontrol/request/width.go | 12 +
.../apiserver/pkg/util/flowcontrol/rule.go | 2 +-
.../pkg/util/peerproxy/metrics/metrics.go | 56 +
.../pkg/util/webhook/authentication.go | 5 +-
.../apiserver/pkg/util/webhook/client.go | 51 +-
.../apiserver/pkg/util/webhook/webhook.go | 2 +-
.../k8s.io/apiserver/pkg/util/wsstream/doc.go | 21 -
.../plugin/pkg/authorizer/webhook/metrics.go | 35 -
.../pkg/authorizer/webhook/metrics/metrics.go | 166 +
.../plugin/pkg/authorizer/webhook/webhook.go | 92 +-
.../v1/auditannotation.go | 48 +
.../v1/expressionwarning.go | 48 +
.../v1/matchresources.go | 90 +
.../v1/namedrulewithoperations.go | 94 +
.../admissionregistration/v1/paramkind.go | 48 +
.../admissionregistration/v1/paramref.go | 71 +
.../admissionregistration/v1/typechecking.go | 44 +
.../v1/validatingadmissionpolicy.go | 256 +
.../v1/validatingadmissionpolicybinding.go | 247 +
.../validatingadmissionpolicybindingspec.go | 72 +
.../v1/validatingadmissionpolicyspec.go | 117 +
.../v1/validatingadmissionpolicystatus.go | 66 +
.../admissionregistration/v1/validation.go | 70 +
.../admissionregistration/v1/variable.go | 48 +
.../v1alpha1/paramref.go | 27 +-
.../v1alpha1/validatingadmissionpolicyspec.go | 14 +
.../v1alpha1/variable.go | 48 +
.../v1beta1/auditannotation.go | 48 +
.../v1beta1/expressionwarning.go | 48 +
.../v1beta1/matchresources.go | 90 +
.../v1beta1/namedrulewithoperations.go | 95 +
.../v1beta1/paramkind.go | 48 +
.../admissionregistration/v1beta1/paramref.go | 71 +
.../v1beta1/typechecking.go | 44 +
.../v1beta1/validatingadmissionpolicy.go | 256 +
.../validatingadmissionpolicybinding.go | 247 +
.../validatingadmissionpolicybindingspec.go | 72 +
.../v1beta1/validatingadmissionpolicyspec.go | 117 +
.../validatingadmissionpolicystatus.go | 66 +
.../v1beta1/validation.go | 70 +
.../admissionregistration/v1beta1/variable.go | 48 +
.../v1alpha1/serverstorageversion.go | 11 +
.../applyconfigurations/batch/v1/jobspec.go | 45 +
.../applyconfigurations/batch/v1/jobstatus.go | 18 +
.../batch/v1/successpolicy.go | 44 +
.../batch/v1/successpolicyrule.go | 48 +
.../core/v1/apparmorprofile.go | 52 +
.../core/v1/clustertrustbundleprojection.go | 79 +
.../applyconfigurations/core/v1/container.go | 9 +
.../core/v1/containerstatus.go | 14 +
.../core/v1/ephemeralcontainer.go | 8 +
.../core/v1/ephemeralcontainercommon.go | 9 +
.../v1/hostip.go} | 22 +-
.../core/v1/lifecyclehandler.go | 9 +
.../core/v1/loadbalanceringress.go | 13 +
.../core/v1/modifyvolumestatus.go | 52 +
.../core/v1/noderuntimehandler.go | 48 +
.../core/v1/noderuntimehandlerfeatures.go | 39 +
.../applyconfigurations/core/v1/nodestatus.go | 14 +
.../core/v1/persistentvolumeclaimspec.go | 27 +-
.../core/v1/persistentvolumeclaimstatus.go | 44 +-
.../core/v1/persistentvolumespec.go | 9 +
.../core/v1/persistentvolumestatus.go | 16 +-
.../core/v1/podaffinityterm.go | 22 +
.../core/v1/podresourceclaimstatus.go | 48 +
.../core/v1/podsecuritycontext.go | 9 +
.../applyconfigurations/core/v1/podstatus.go | 56 +-
.../core/v1/securitycontext.go | 9 +
.../core/v1/servicespec.go | 9 +
.../core/v1/sleepaction.go | 39 +
.../core/v1/volumemount.go | 21 +-
.../core/v1/volumemountstatus.go | 70 +
.../core/v1/volumeprojection.go | 9 +
.../core/v1/volumeresourcerequirements.go | 52 +
.../extensions/v1beta1/networkpolicy.go | 11 +-
.../extensions/v1beta1/networkpolicystatus.go | 48 -
.../v1/exemptprioritylevelconfiguration.go | 48 +
.../flowdistinguishermethod.go | 8 +-
.../{v1alpha1 => v1}/flowschema.go | 16 +-
.../{v1alpha1 => v1}/flowschemacondition.go | 22 +-
.../{v1alpha1 => v1}/flowschemaspec.go | 2 +-
.../{v1alpha1 => v1}/flowschemastatus.go | 2 +-
.../{v1alpha1 => v1}/groupsubject.go | 2 +-
.../limitedprioritylevelconfiguration.go | 12 +-
.../{v1alpha1 => v1}/limitresponse.go | 8 +-
.../{v1alpha1 => v1}/nonresourcepolicyrule.go | 2 +-
.../policyruleswithsubjects.go | 2 +-
.../prioritylevelconfiguration.go | 16 +-
.../prioritylevelconfigurationcondition.go | 22 +-
.../prioritylevelconfigurationreference.go | 2 +-
.../prioritylevelconfigurationspec.go | 17 +-
.../prioritylevelconfigurationstatus.go | 2 +-
.../{v1alpha1 => v1}/queuingconfiguration.go | 2 +-
.../{v1alpha1 => v1}/resourcepolicyrule.go | 2 +-
.../{v1alpha1 => v1}/serviceaccountsubject.go | 2 +-
.../flowcontrol/{v1alpha1 => v1}/subject.go | 8 +-
.../{v1alpha1 => v1}/usersubject.go | 2 +-
.../exemptprioritylevelconfiguration.go | 48 +
.../v1beta1/prioritylevelconfigurationspec.go | 9 +
.../exemptprioritylevelconfiguration.go | 48 +
.../v1beta2/prioritylevelconfigurationspec.go | 9 +
.../exemptprioritylevelconfiguration.go | 48 +
.../v1beta3/prioritylevelconfigurationspec.go | 9 +
.../applyconfigurations/internal/internal.go | 1873 +++-
.../meta/v1/unstructured.go | 2 +-
.../networking/v1/networkpolicy.go | 11 +-
.../networking/v1alpha1/clustercidrspec.go | 70 -
.../networking/v1alpha1/parentreference.go | 21 +-
.../{clustercidr.go => servicecidr.go} | 87 +-
.../networking/v1alpha1/servicecidrspec.go | 41 +
.../servicecidrstatus.go} | 14 +-
.../policy/v1beta1/allowedhostpath.go | 48 -
.../policy/v1beta1/fsgroupstrategyoptions.go | 57 -
.../policy/v1beta1/hostportrange.go | 48 -
.../policy/v1beta1/idrange.go | 48 -
.../policy/v1beta1/podsecuritypolicyspec.go | 285 -
.../v1beta1/runasgroupstrategyoptions.go | 57 -
.../v1beta1/runasuserstrategyoptions.go | 57 -
.../v1beta1/runtimeclassstrategyoptions.go | 50 -
.../policy/v1beta1/selinuxstrategyoptions.go | 53 -
.../supplementalgroupsstrategyoptions.go | 57 -
.../v1alpha2/allocationresultmodel.go | 39 +
.../v1alpha2/driverallocationresult.go | 52 +
.../resource/v1alpha2/driverrequests.go | 66 +
.../namedresourcesallocationresult.go} | 14 +-
.../v1alpha2/namedresourcesattribute.go | 100 +
.../v1alpha2/namedresourcesattributevalue.go | 97 +
.../resource/v1alpha2/namedresourcesfilter.go | 39 +
.../v1alpha2/namedresourcesinstance.go | 53 +
.../v1alpha2/namedresourcesintslice.go | 41 +
.../v1alpha2/namedresourcesrequest.go | 39 +
.../v1alpha2/namedresourcesresources.go | 44 +
.../v1alpha2/namedresourcesstringslice.go | 41 +
.../v1alpha2/resourceclaimparameters.go | 272 +
.../resource/v1alpha2/resourceclass.go | 9 +
.../v1alpha2/resourceclassparameters.go | 277 +
.../resource/v1alpha2/resourcefilter.go | 48 +
.../resource/v1alpha2/resourcefiltermodel.go | 39 +
.../resource/v1alpha2/resourcehandle.go | 13 +-
.../resource/v1alpha2/resourcemodel.go | 39 +
.../resource/v1alpha2/resourcerequest.go | 52 +
.../resource/v1alpha2/resourcerequestmodel.go | 39 +
.../v1alpha2/resourceslice.go} | 110 +-
.../v1alpha2/structuredresourcehandle.go | 75 +
.../resource/v1alpha2/vendorparameters.go | 52 +
.../storage/v1alpha1/volumeattributesclass.go | 262 +
.../v1alpha1/groupversionresource.go | 57 +
.../v1alpha1/migrationcondition.go | 81 +
.../v1alpha1/storageversionmigration.go | 256 +
.../v1alpha1/storageversionmigrationspec.go | 48 +
.../v1alpha1/storageversionmigrationstatus.go | 53 +
.../discovery/aggregated_discovery.go | 124 +-
.../discovery/cached/memory/memcache.go | 332 +
.../client-go/discovery/discovery_client.go | 59 +-
.../client-go/discovery/fake/discovery.go | 2 +-
.../k8s.io/client-go/dynamic/fake/simple.go | 539 ++
vendor/k8s.io/client-go/features/envvar.go | 138 +
vendor/k8s.io/client-go/features/features.go | 143 +
.../client-go/features/known_features.go | 54 +
.../admissionregistration/v1/interface.go | 14 +
.../v1/validatingadmissionpolicy.go | 89 +
.../v1/validatingadmissionpolicybinding.go | 89 +
.../v1beta1/interface.go | 14 +
.../v1beta1/validatingadmissionpolicy.go | 89 +
.../validatingadmissionpolicybinding.go | 89 +
vendor/k8s.io/client-go/informers/doc.go | 2 +-
vendor/k8s.io/client-go/informers/factory.go | 20 +-
.../informers/flowcontrol/interface.go | 12 +-
.../{v1alpha1 => v1}/flowschema.go | 26 +-
.../flowcontrol/{v1alpha1 => v1}/interface.go | 2 +-
.../prioritylevelconfiguration.go | 26 +-
vendor/k8s.io/client-go/informers/generic.go | 39 +-
.../networking/v1alpha1/interface.go | 14 +-
.../{clustercidr.go => servicecidr.go} | 38 +-
.../informers/policy/v1beta1/interface.go | 7 -
.../informers/resource/v1alpha2/interface.go | 21 +
.../v1alpha2/resourceclaimparameters.go | 90 +
.../v1alpha2/resourceclassparameters.go | 90 +
.../v1alpha2/resourceslice.go} | 44 +-
.../informers/storage/v1alpha1/interface.go | 7 +
.../storage/v1alpha1/volumeattributesclass.go | 89 +
.../informers/storagemigration/interface.go | 46 +
.../storagemigration/v1alpha1/interface.go | 45 +
.../v1alpha1/storageversionmigration.go | 89 +
.../k8s.io/client-go/kubernetes/clientset.go | 29 +-
vendor/k8s.io/client-go/kubernetes/doc.go | 2 +-
.../kubernetes/fake/clientset_generated.go | 17 +-
.../client-go/kubernetes/fake/register.go | 6 +-
.../client-go/kubernetes/scheme/register.go | 6 +-
.../v1/admissionregistration_client.go | 10 +
.../fake/fake_admissionregistration_client.go | 8 +
.../v1/fake/fake_validatingadmissionpolicy.go | 178 +
.../fake_validatingadmissionpolicybinding.go | 145 +
.../v1/generated_expansion.go | 4 +
.../v1/validatingadmissionpolicy.go | 243 +
.../v1/validatingadmissionpolicybinding.go | 197 +
.../v1beta1/admissionregistration_client.go | 10 +
.../fake/fake_admissionregistration_client.go | 8 +
.../fake/fake_validatingadmissionpolicy.go | 178 +
.../fake_validatingadmissionpolicybinding.go | 145 +
.../v1beta1/generated_expansion.go | 4 +
.../v1beta1/validatingadmissionpolicy.go | 243 +
.../validatingadmissionpolicybinding.go | 197 +
.../v1/authentication_client.go | 5 +
.../v1/fake/fake_authentication_client.go | 4 +
.../v1/fake/fake_selfsubjectreview.go | 46 +
.../authentication/v1/generated_expansion.go | 2 +
.../authentication/v1/selfsubjectreview.go | 64 +
.../v1beta1/fake/fake_networkpolicy.go | 35 -
.../typed/extensions/v1beta1/networkpolicy.go | 48 -
.../kubernetes/typed/flowcontrol/v1/doc.go | 20 +
.../flowcontrol/{v1alpha1 => v1}/fake/doc.go | 0
.../fake/fake_flowcontrol_client.go | 10 +-
.../{v1alpha1 => v1}/fake/fake_flowschema.go | 72 +-
.../fake/fake_prioritylevelconfiguration.go | 72 +-
.../{v1alpha1 => v1}/flowcontrol_client.go | 38 +-
.../{v1alpha1 => v1}/flowschema.go | 70 +-
.../{v1alpha1 => v1}/generated_expansion.go | 2 +-
.../prioritylevelconfiguration.go | 70 +-
.../networking/v1/fake/fake_networkpolicy.go | 35 -
.../typed/networking/v1/networkpolicy.go | 48 -
.../typed/networking/v1alpha1/clustercidr.go | 197 -
.../v1alpha1/fake/fake_clustercidr.go | 145 -
.../v1alpha1/fake/fake_networking_client.go | 8 +-
.../v1alpha1/fake/fake_servicecidr.go | 178 +
.../v1alpha1/generated_expansion.go | 4 +-
.../networking/v1alpha1/networking_client.go | 10 +-
.../typed/networking/v1alpha1/servicecidr.go | 243 +
.../v1beta1/fake/fake_podsecuritypolicy.go | 145 -
.../policy/v1beta1/fake/fake_policy_client.go | 4 -
.../policy/v1beta1/generated_expansion.go | 2 -
.../typed/policy/v1beta1/podsecuritypolicy.go | 197 -
.../typed/policy/v1beta1/policy_client.go | 5 -
.../v1alpha2/fake/fake_resource_client.go | 12 +
.../fake/fake_resourceclaimparameters.go | 154 +
.../fake/fake_resourceclassparameters.go | 154 +
.../v1alpha2/fake/fake_resourceslice.go | 145 +
.../resource/v1alpha2/generated_expansion.go | 6 +
.../resource/v1alpha2/resource_client.go | 15 +
.../v1alpha2/resourceclaimparameters.go | 208 +
.../v1alpha2/resourceclassparameters.go | 208 +
.../typed/resource/v1alpha2/resourceslice.go | 197 +
.../v1alpha1/fake/fake_storage_client.go | 4 +
.../fake/fake_volumeattributesclass.go | 145 +
.../storage/v1alpha1/generated_expansion.go | 2 +
.../typed/storage/v1alpha1/storage_client.go | 5 +
.../storage/v1alpha1/volumeattributesclass.go | 197 +
.../v1alpha1/doc.go | 0
.../storagemigration/v1alpha1/fake}/doc.go | 7 +-
.../fake/fake_storagemigration_client.go | 40 +
.../fake/fake_storageversionmigration.go | 178 +
.../v1alpha1/generated_expansion.go} | 7 +-
.../v1alpha1/storagemigration_client.go | 107 +
.../v1alpha1/storageversionmigration.go | 243 +
.../v1/expansion_generated.go | 8 +
.../v1/validatingadmissionpolicy.go | 68 +
.../v1/validatingadmissionpolicybinding.go | 68 +
.../v1beta1/expansion_generated.go | 8 +
.../v1beta1/validatingadmissionpolicy.go | 68 +
.../validatingadmissionpolicybinding.go | 68 +
.../{v1alpha1 => v1}/expansion_generated.go | 2 +-
.../{v1alpha1 => v1}/flowschema.go | 18 +-
.../prioritylevelconfiguration.go | 18 +-
.../v1alpha1/expansion_generated.go | 8 +-
.../{clustercidr.go => servicecidr.go} | 38 +-
.../policy/v1beta1/expansion_generated.go | 4 -
.../policy/v1beta1/podsecuritypolicy.go | 68 -
.../resource/v1alpha2/expansion_generated.go | 20 +
.../v1alpha2/resourceclaimparameters.go | 99 +
.../v1alpha2/resourceclassparameters.go | 99 +
.../resource/v1alpha2/resourceslice.go | 68 +
.../storage/v1alpha1/expansion_generated.go | 4 +
.../storage/v1alpha1/volumeattributesclass.go | 68 +
.../v1alpha1/expansion_generated.go} | 10 +-
.../v1alpha1/storageversionmigration.go | 68 +
vendor/k8s.io/client-go/metadata/metadata.go | 4 +-
.../k8s.io/client-go/openapi/cached/client.go | 54 +
.../client-go/openapi/cached/groupversion.go | 58 +
.../k8s.io/client-go/openapi/typeconverter.go | 48 +
.../plugin/pkg/client/auth/exec/exec.go | 6 +-
vendor/k8s.io/client-go/rest/config.go | 10 +-
vendor/k8s.io/client-go/rest/request.go | 28 +-
vendor/k8s.io/client-go/rest/url_utils.go | 4 +-
.../k8s.io/client-go/restmapper/shortcut.go | 36 +-
vendor/k8s.io/client-go/tools/cache/OWNERS | 4 +-
.../client-go/tools/cache/controller.go | 14 +-
vendor/k8s.io/client-go/tools/cache/index.go | 3 +-
.../client-go/tools/cache/object-names.go | 65 +
.../k8s.io/client-go/tools/cache/reflector.go | 66 +-
.../reflector_data_consistency_detector.go | 119 +
.../client-go/tools/cache/shared_informer.go | 49 +-
vendor/k8s.io/client-go/tools/cache/store.go | 31 +-
.../tools/cache/thread_safe_store.go | 92 +-
.../client-go/tools/clientcmd/api/doc.go | 2 +-
.../client-go/tools/clientcmd/api/types.go | 14 +-
.../client-go/tools/clientcmd/api/v1/doc.go | 2 +-
.../tools/clientcmd/client_config.go | 49 +-
.../client-go/tools/clientcmd/loader.go | 24 +-
.../tools/clientcmd/merged_client_builder.go | 4 +-
.../tools/events/event_broadcaster.go | 127 +-
.../client-go/tools/events/event_recorder.go | 27 +-
vendor/k8s.io/client-go/tools/events/fake.go | 7 +
.../client-go/tools/events/interfaces.go | 45 +-
.../tools/internal/events/interfaces.go | 59 +
.../tools/leaderelection/leaderelection.go | 35 +-
.../client-go/tools/leaderelection/metrics.go | 30 +-
.../resourcelock/configmaplock.go | 126 -
.../resourcelock/endpointslock.go | 121 -
.../leaderelection/resourcelock/interface.go | 42 +-
.../k8s.io/client-go/tools/metrics/metrics.go | 48 +
vendor/k8s.io/client-go/tools/pager/pager.go | 36 +-
vendor/k8s.io/client-go/tools/record/event.go | 199 +-
vendor/k8s.io/client-go/tools/record/fake.go | 7 +
vendor/k8s.io/client-go/transport/cache.go | 6 +
.../k8s.io/client-go/transport/transport.go | 55 +
.../client-go/util/flowcontrol/backoff.go | 3 +-
.../client-go/util/jsonpath/jsonpath.go | 3 +
.../k8s.io/client-go/util/workqueue/queue.go | 55 +-
vendor/k8s.io/code-generator/OWNERS | 4 +-
vendor/k8s.io/code-generator/README.md | 4 +
.../cmd/applyconfiguration-gen/args/args.go | 63 +-
.../args/externaltypes.go | 2 +-
.../generators/applyconfiguration.go | 30 +-
.../generators/internal.go | 8 +-
.../generators/jsontagutil.go | 2 +-
.../generators/openapi.go | 4 +-
.../generators/refgraph.go | 8 +-
.../generators/{packages.go => targets.go} | 137 +-
.../generators/types.go | 2 +-
.../applyconfiguration-gen/generators/util.go | 8 +-
.../cmd/applyconfiguration-gen/main.go | 26 +-
.../code-generator/cmd/client-gen/OWNERS | 5 +-
.../cmd/client-gen/args/args.go | 95 +-
.../cmd/client-gen/args/gvpackages.go | 4 +-
.../client-gen/generators/client_generator.go | 235 +-
.../generators/fake/fake_client_generator.go | 93 +-
.../fake/generator_fake_for_clientset.go | 21 +-
.../fake/generator_fake_for_group.go | 18 +-
.../fake/generator_fake_for_type.go | 25 +-
.../generators/generator_for_clientset.go | 17 +-
.../generators/generator_for_expansion.go | 6 +-
.../generators/generator_for_group.go | 22 +-
.../generators/generator_for_type.go | 27 +-
.../generators/scheme/generator_for_scheme.go | 24 +-
.../cmd/client-gen/generators/util/tags.go | 4 +-
.../code-generator/cmd/client-gen/main.go | 32 +-
.../cmd/client-gen/path/path.go | 31 -
.../cmd/client-gen/types/helpers.go | 8 +-
.../cmd/conversion-gen/args/args.go | 44 +-
.../conversion-gen/generators/conversion.go | 257 +-
.../code-generator/cmd/conversion-gen/main.go | 28 +-
.../cmd/deepcopy-gen/args/args.go | 36 +-
.../cmd}/deepcopy-gen/generators/deepcopy.go | 179 +-
.../code-generator/cmd/deepcopy-gen/main.go | 71 +-
.../cmd/defaulter-gen/args/args.go | 35 +-
.../defaulter-gen/generators/defaulter.go | 492 +-
.../code-generator/cmd/defaulter-gen/main.go | 24 +-
.../cmd/go-to-protobuf/protobuf/cmd.go | 278 +-
.../cmd/go-to-protobuf/protobuf/generator.go | 32 +-
.../go-to-protobuf/protobuf/import_tracker.go | 4 +-
.../cmd/go-to-protobuf/protobuf/namer.go | 33 +-
.../cmd/go-to-protobuf/protobuf/package.go | 54 +-
.../cmd/go-to-protobuf/protobuf/parser.go | 30 +-
.../cmd/go-to-protobuf/protobuf/tags.go | 4 +-
.../code-generator/cmd/import-boss/.gitignore | 1 -
.../code-generator/cmd/import-boss/README.md | 97 -
.../code-generator/cmd/import-boss/main.go | 45 -
.../cmd/informer-gen/args/args.go | 79 +-
.../cmd/informer-gen/generators/factory.go | 24 +-
.../generators/factoryinterface.go | 8 +-
.../cmd/informer-gen/generators/generic.go | 8 +-
.../informer-gen/generators/groupinterface.go | 12 +-
.../cmd/informer-gen/generators/informer.go | 8 +-
.../generators/{packages.go => targets.go} | 206 +-
.../cmd/informer-gen/generators/types.go | 3 +-
.../generators/versioninterface.go | 8 +-
.../code-generator/cmd/informer-gen/main.go | 31 +-
.../cmd/lister-gen/args/args.go | 50 +-
.../cmd/lister-gen/generators/expansion.go | 18 +-
.../cmd/lister-gen/generators/lister.go | 91 +-
.../code-generator/cmd/lister-gen/main.go | 28 +-
.../code-generator/cmd/openapi-gen/main.go | 57 -
.../cmd/register-gen/args/args.go | 27 +-
.../generators/register_external.go | 10 +-
.../generators/{packages.go => targets.go} | 52 +-
.../code-generator/cmd/register-gen/main.go | 23 +-
.../code-generator/cmd/set-gen/.gitignore | 1 -
.../k8s.io/code-generator/cmd/set-gen/main.go | 53 -
.../k8s.io/code-generator/generate-groups.sh | 106 +-
.../generate-internal-groups.sh | 126 +-
vendor/k8s.io/code-generator/kube_codegen.sh | 667 ++
.../code-generator/pkg/namer/tag-override.go | 7 +-
.../k8s.io/code-generator/pkg/util/build.go | 60 -
vendor/k8s.io/code-generator/tools.go | 3 -
vendor/k8s.io/component-base/config/types.go | 80 -
.../config/v1alpha1/conversion.go | 53 -
.../config/v1alpha1/defaults.go | 98 -
.../config/v1alpha1/register.go | 31 -
.../component-base/config/v1alpha1/types.go | 82 -
.../v1alpha1/zz_generated.conversion.go | 133 -
.../config/v1alpha1/zz_generated.deepcopy.go | 88 -
.../config/zz_generated.deepcopy.go | 73 -
.../featuregate/feature_gate.go | 74 +-
.../logs/api/v1/kube_features.go | 10 +-
.../component-base/logs/api/v1/options.go | 133 +-
.../component-base/logs/api/v1/registry.go | 12 +-
.../k8s.io/component-base/logs/api/v1/text.go | 142 +
.../component-base/logs/api/v1/types.go | 57 +-
.../logs/api/v1/zz_generated.deepcopy.go | 55 +-
.../k8s.io/component-base/metrics/buckets.go | 10 +
vendor/k8s.io/component-base/metrics/http.go | 18 +-
.../metrics/legacyregistry/registry.go | 8 +-
.../k8s.io/component-base/metrics/metric.go | 2 +-
.../k8s.io/component-base/metrics/options.go | 13 +-
vendor/k8s.io/component-base/metrics/opts.go | 24 +
.../metrics/prometheus/feature/metrics.go | 2 +-
.../metrics/prometheus/slis/metrics.go | 7 +-
.../k8s.io/component-base/metrics/registry.go | 23 +-
.../metrics/testutil/promlint.go | 6 +-
.../metrics/testutil/testutil.go | 66 +
.../k8s.io/component-base/tracing/tracing.go | 6 +
vendor/k8s.io/component-base/tracing/utils.go | 13 +-
.../k8s.io/component-base/version/dynamic.go | 77 +
.../k8s.io/component-base/version/version.go | 2 +-
vendor/k8s.io/gengo/args/args.go | 218 -
.../import-boss/generators/import_restrict.go | 419 -
.../gengo/examples/set-gen/generators/sets.go | 378 -
.../gengo/examples/set-gen/sets/byte.go | 221 -
.../k8s.io/gengo/examples/set-gen/sets/int.go | 221 -
.../gengo/examples/set-gen/sets/int64.go | 221 -
.../gengo/examples/set-gen/sets/string.go | 221 -
.../gengo/generator/default_generator.go | 62 -
.../k8s.io/gengo/generator/default_package.go | 75 -
.../gengo/generator/transitive_closure.go | 65 -
vendor/k8s.io/gengo/parser/parse.go | 925 --
vendor/k8s.io/gengo/types/flatten.go | 57 -
vendor/k8s.io/gengo/{ => v2}/LICENSE | 0
vendor/k8s.io/gengo/v2/README.md | 53 +
vendor/k8s.io/gengo/{types => v2}/comments.go | 21 +-
vendor/k8s.io/gengo/v2/execute.go | 98 +
vendor/k8s.io/gengo/{ => v2}/generator/doc.go | 2 +-
.../gengo/{ => v2}/generator/error_tracker.go | 0
.../gengo/{ => v2}/generator/execute.go | 153 +-
.../gengo/{ => v2}/generator/generator.go | 123 +-
.../k8s.io/gengo/v2/generator/go_generator.go | 61 +
.../{ => v2}/generator/import_tracker.go | 37 +-
.../gengo/v2/generator/simple_target.go | 77 +
.../{ => v2}/generator/snippet_writer.go | 18 +-
vendor/k8s.io/gengo/{ => v2}/namer/doc.go | 2 +-
.../gengo/{ => v2}/namer/import_tracker.go | 39 +-
vendor/k8s.io/gengo/{ => v2}/namer/namer.go | 3 +-
vendor/k8s.io/gengo/{ => v2}/namer/order.go | 2 +-
.../gengo/{ => v2}/namer/plural_namer.go | 2 +-
vendor/k8s.io/gengo/{ => v2}/parser/doc.go | 2 +-
vendor/k8s.io/gengo/v2/parser/parse.go | 821 ++
vendor/k8s.io/gengo/{ => v2}/types/doc.go | 2 +-
vendor/k8s.io/gengo/{ => v2}/types/types.go | 12 +-
vendor/k8s.io/klog/v2/.golangci.yaml | 6 +
vendor/k8s.io/klog/v2/OWNERS | 4 +-
vendor/k8s.io/klog/v2/contextual_slog.go | 31 +
vendor/k8s.io/klog/v2/format.go | 65 +
.../k8s.io/klog/v2/internal/buffer/buffer.go | 12 +-
vendor/k8s.io/klog/v2/internal/clock/clock.go | 21 +-
.../klog/v2/internal/serialize/keyvalues.go | 106 +-
.../internal/serialize/keyvalues_no_slog.go | 97 +
.../v2/internal/serialize/keyvalues_slog.go | 155 +
.../internal/sloghandler/sloghandler_slog.go | 96 +
.../klog/v2/internal/verbosity/verbosity.go | 303 +
vendor/k8s.io/klog/v2/k8s_references.go | 12 +-
vendor/k8s.io/klog/v2/k8s_references_slog.go | 39 +
vendor/k8s.io/klog/v2/klog.go | 102 +-
vendor/k8s.io/klog/v2/klog_file.go | 4 +-
vendor/k8s.io/klog/v2/klogr.go | 46 +-
vendor/k8s.io/klog/v2/klogr_slog.go | 96 +
vendor/k8s.io/klog/v2/safeptr.go | 34 +
vendor/k8s.io/klog/v2/textlogger/options.go | 154 +
.../k8s.io/klog/v2/textlogger/textlogger.go | 187 +
.../klog/v2/textlogger/textlogger_slog.go | 52 +
vendor/k8s.io/kms/apis/v1beta1/api.pb.go | 50 +-
vendor/k8s.io/kms/apis/v1beta1/api.proto | 8 +-
vendor/k8s.io/kms/apis/v1beta1/v1beta1.go | 1 +
vendor/k8s.io/kms/apis/v2/api.pb.go | 15 +-
vendor/k8s.io/kms/apis/v2/api.proto | 15 +-
vendor/k8s.io/kms/pkg/service/grpc_service.go | 10 -
.../kube-openapi/cmd/openapi-gen/args/args.go | 76 -
.../kube-openapi/pkg/builder/openapi.go | 2 +-
.../kube-openapi/pkg/builder/parameters.go | 259 +
.../kube-openapi/pkg/builder3/openapi.go | 17 +-
.../k8s.io/kube-openapi/pkg/cached/cache.go | 330 +-
.../k8s.io/kube-openapi/pkg/common/common.go | 41 +-
.../kube-openapi/pkg/generators/README.md | 49 -
.../kube-openapi/pkg/generators/api_linter.go | 219 -
.../kube-openapi/pkg/generators/config.go | 91 -
.../kube-openapi/pkg/generators/enum.go | 162 -
.../kube-openapi/pkg/generators/extension.go | 202 -
.../kube-openapi/pkg/generators/openapi.go | 825 --
.../kube-openapi/pkg/generators/rules/OWNERS | 4 -
.../kube-openapi/pkg/generators/rules/doc.go | 23 -
.../pkg/generators/rules/idl_tag.go | 53 -
.../pkg/generators/rules/names_match.go | 178 -
.../generators/rules/omitempty_match_case.go | 64 -
.../kube-openapi/pkg/generators/union.go | 207 -
.../kube-openapi/pkg/handler/handler.go | 75 +-
.../kube-openapi/pkg/handler3/handler.go | 79 +-
.../k8s.io/kube-openapi/pkg/internal/flags.go | 1 +
.../kube-openapi/pkg/openapiconv/convert.go | 322 -
.../k8s.io/kube-openapi/pkg/schemaconv/smd.go | 3 -
.../k8s.io/kube-openapi/pkg/spec3/encoding.go | 21 +
.../k8s.io/kube-openapi/pkg/spec3/example.go | 14 +
.../pkg/spec3/external_documentation.go | 13 +
vendor/k8s.io/kube-openapi/pkg/spec3/fuzz.go | 27 +
.../k8s.io/kube-openapi/pkg/spec3/header.go | 31 +
.../kube-openapi/pkg/spec3/media_type.go | 20 +
.../kube-openapi/pkg/spec3/operation.go | 27 +
.../kube-openapi/pkg/spec3/parameter.go | 31 +
vendor/k8s.io/kube-openapi/pkg/spec3/path.go | 47 +-
.../kube-openapi/pkg/spec3/request_body.go | 21 +
.../k8s.io/kube-openapi/pkg/spec3/response.go | 52 +
.../kube-openapi/pkg/spec3/security_scheme.go | 17 +
.../k8s.io/kube-openapi/pkg/spec3/server.go | 26 +
vendor/k8s.io/kube-openapi/pkg/spec3/spec.go | 25 +
.../kube-openapi/pkg/util/proto/document.go | 2 +-
.../pkg/util/proto/document_v3.go | 2 +-
.../kube-openapi/pkg/util/sets/empty.go | 27 -
.../kube-openapi/pkg/util/sets/string.go | 207 -
.../kube-openapi/pkg/validation/spec/fuzz.go | 502 -
.../pkg/validation/spec/gnostic.go | 2 +-
.../pkg/validation/strfmt/format.go | 81 -
vendor/k8s.io/utils/integer/integer.go | 73 -
vendor/k8s.io/utils/pointer/pointer.go | 283 +-
vendor/k8s.io/utils/ptr/OWNERS | 10 +
vendor/k8s.io/utils/ptr/README.md | 3 +
vendor/k8s.io/utils/ptr/ptr.go | 73 +
vendor/k8s.io/utils/trace/trace.go | 19 +
vendor/modules.txt | 381 +-
.../konnectivity-client/pkg/client/client.go | 56 +-
.../konnectivity-client/pkg/client/conn.go | 62 +-
.../controller-runtime/pkg/cache/cache.go | 423 +-
.../pkg/cache/delegating_by_gvk_cache.go | 135 +
.../pkg/cache/informer_cache.go | 85 +-
.../pkg/cache/internal/cache_reader.go | 75 +-
.../pkg/cache/internal/informers.go | 190 +-
.../pkg/cache/internal/transformers.go | 55 -
.../pkg/cache/multi_namespace_cache.go | 203 +-
.../pkg/certwatcher/certwatcher.go | 10 +-
.../pkg/client/apiutil/apimachinery.go | 21 -
.../pkg/client/apiutil/errors.go | 54 +
.../pkg/client/apiutil/restmapper.go | 90 +-
.../controller-runtime/pkg/client/client.go | 52 +-
.../pkg/client/fieldowner.go | 106 +
.../pkg/client/interfaces.go | 1 +
.../controller-runtime/pkg/client/options.go | 5 +-
.../controller-runtime/pkg/cluster/cluster.go | 42 +-
.../controller-runtime/pkg/config/config.go | 112 -
.../pkg/config/v1alpha1/register.go | 43 -
.../pkg/config/v1alpha1/types.go | 179 -
.../config/v1alpha1/zz_generated.deepcopy.go | 158 -
.../pkg/controller/controller.go | 38 +-
.../controllerutil/controllerutil.go | 136 +-
.../controller-runtime/pkg/event/event.go | 51 +-
.../controller-runtime/pkg/handler/enqueue.go | 43 +-
.../pkg/handler/enqueue_mapped.go | 42 +-
.../pkg/handler/enqueue_owner.go | 48 +-
.../pkg/handler/eventhandler.go | 62 +-
.../pkg/internal/controller/controller.go | 43 +-
.../pkg/internal/field/selector/utils.go | 16 +-
.../pkg/internal/source/event_handler.go | 32 +-
.../pkg/internal/source/kind.go | 58 +-
.../pkg/internal/syncs/syncs.go | 38 +
.../controller-runtime/pkg/log/deleg.go | 3 +
.../controller-runtime/pkg/log/log.go | 11 +-
.../controller-runtime/pkg/log/zap/zap.go | 10 +-
.../pkg/manager/internal.go | 139 +-
.../controller-runtime/pkg/manager/manager.go | 290 +-
.../pkg/manager/runnable_group.go | 22 +-
.../controller-runtime/pkg/manager/server.go | 74 +-
.../pkg/metrics/leaderelection.go | 23 +-
.../pkg/metrics/listener.go | 52 -
.../pkg/metrics/server/doc.go | 26 +
.../pkg/metrics/server/server.go | 340 +
.../pkg/metrics/workqueue.go | 4 +-
.../pkg/predicate/predicate.go | 179 +-
.../pkg/reconcile/reconcile.go | 44 +-
.../controller-runtime/pkg/scheme/scheme.go | 93 -
.../controller-runtime/pkg/source/source.go | 124 +-
.../pkg/webhook/admission/decode.go | 25 +-
.../pkg/webhook/admission/defaulter.go | 4 +-
.../pkg/webhook/admission/defaulter_custom.go | 2 +-
.../pkg/webhook/admission/http.go | 58 +-
.../pkg/webhook/admission/validator.go | 4 +-
.../pkg/webhook/admission/validator_custom.go | 3 +-
.../controller-runtime/pkg/webhook/alias.go | 2 +
.../controller-runtime/pkg/webhook/server.go | 47 +-
.../v4/fieldpath/pathelementmap.go | 45 +-
.../v4/merge/conflict.go | 2 +-
.../structured-merge-diff/v4/merge/update.go | 72 +-
.../v4/schema/elements.go | 3 +-
.../v4/schema/schemaschema.go | 3 +-
.../structured-merge-diff/v4/typed/compare.go | 460 +
.../structured-merge-diff/v4/typed/helpers.go | 21 +-
.../structured-merge-diff/v4/typed/merge.go | 61 +-
.../structured-merge-diff/v4/typed/parser.go | 12 +-
.../structured-merge-diff/v4/typed/remove.go | 4 +-
.../v4/typed/tofieldset.go | 24 +-
.../structured-merge-diff/v4/typed/typed.go | 187 +-
.../structured-merge-diff/v4/typed/union.go | 276 -
.../v4/typed/validate.go | 14 +-
.../v4/value/mapreflect.go | 2 +-
.../v4/value/mapunstructured.go | 8 +-
.../v4/value/reflectcache.go | 4 +-
1859 files changed, 167458 insertions(+), 60557 deletions(-)
create mode 100644 kc.yml
create mode 100644 output.yml
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/LICENSE (100%)
create mode 100644 vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/antlrdoc.go
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn.go (72%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_config.go (84%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_config_set.go (81%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_deserialization_options.go (96%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_deserializer.go (99%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_simulator.go (94%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_state.go (97%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/atn_type.go (79%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/char_stream.go (82%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/common_token_factory.go (96%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/common_token_stream.go (98%)
create mode 100644 vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/comparators.go
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/dfa.go (80%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/dfa_serializer.go (97%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/dfa_state.go (90%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/diagnostic_error_listener.go (98%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/error_listener.go (98%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/error_strategy.go (99%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/errors.go (98%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/file_stream.go (92%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/input_stream.go (96%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/int_stream.go (82%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/interval_set.go (98%)
create mode 100644 vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/jcollect.go
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/lexer.go (98%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/lexer_action.go (91%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/lexer_action_executor.go (88%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/lexer_atn_simulator.go (98%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/ll1_analyzer.go (87%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/parser.go (99%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/parser_atn_simulator.go (94%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/parser_rule_context.go (98%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/prediction_context.go (81%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/prediction_mode.go (95%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/recognizer.go (92%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/rule_context.go (97%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/semantic_context.go (85%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/token.go (98%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/token_source.go (85%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/token_stream.go (87%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/tokenstream_rewriter.go (58%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/trace_listener.go (93%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/transition.go (99%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/tree.go (98%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/trees.go (93%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/utils.go (94%)
rename vendor/github.com/antlr/antlr4/runtime/Go/antlr/{ => v4}/utils_set.go (80%)
delete mode 100644 vendor/github.com/cenkalti/backoff/v4/.travis.yml
create mode 100644 vendor/github.com/evanphx/json-patch/v5/internal/json/decode.go
create mode 100644 vendor/github.com/evanphx/json-patch/v5/internal/json/encode.go
create mode 100644 vendor/github.com/evanphx/json-patch/v5/internal/json/fold.go
create mode 100644 vendor/github.com/evanphx/json-patch/v5/internal/json/fuzz.go
create mode 100644 vendor/github.com/evanphx/json-patch/v5/internal/json/indent.go
create mode 100644 vendor/github.com/evanphx/json-patch/v5/internal/json/scanner.go
create mode 100644 vendor/github.com/evanphx/json-patch/v5/internal/json/stream.go
create mode 100644 vendor/github.com/evanphx/json-patch/v5/internal/json/tables.go
create mode 100644 vendor/github.com/evanphx/json-patch/v5/internal/json/tags.go
create mode 100644 vendor/github.com/fsnotify/fsnotify/.cirrus.yml
create mode 100644 vendor/github.com/go-logr/logr/SECURITY.md
create mode 100644 vendor/github.com/go-logr/logr/context.go
create mode 100644 vendor/github.com/go-logr/logr/context_noslog.go
create mode 100644 vendor/github.com/go-logr/logr/context_slog.go
create mode 100644 vendor/github.com/go-logr/logr/funcr/slogsink.go
create mode 100644 vendor/github.com/go-logr/logr/sloghandler.go
create mode 100644 vendor/github.com/go-logr/logr/slogr.go
create mode 100644 vendor/github.com/go-logr/logr/slogr/slogr.go
create mode 100644 vendor/github.com/go-logr/logr/slogsink.go
create mode 100644 vendor/github.com/go-logr/zapr/.golangci.yaml
create mode 100644 vendor/github.com/go-logr/zapr/slogzapr.go
create mode 100644 vendor/github.com/go-logr/zapr/zapr_noslog.go
create mode 100644 vendor/github.com/go-logr/zapr/zapr_slog.go
create mode 100644 vendor/github.com/google/cel-go/cel/validator.go
create mode 100644 vendor/github.com/google/cel-go/checker/format.go
rename vendor/github.com/google/cel-go/checker/{decls => }/scopes.go (81%)
create mode 100644 vendor/github.com/google/cel-go/common/ast/BUILD.bazel
create mode 100644 vendor/github.com/google/cel-go/common/ast/ast.go
create mode 100644 vendor/github.com/google/cel-go/common/ast/expr.go
create mode 100644 vendor/github.com/google/cel-go/common/decls/BUILD.bazel
create mode 100644 vendor/github.com/google/cel-go/common/decls/decls.go
create mode 100644 vendor/github.com/google/cel-go/common/functions/BUILD.bazel
create mode 100644 vendor/github.com/google/cel-go/common/functions/functions.go
create mode 100644 vendor/github.com/google/cel-go/common/stdlib/BUILD.bazel
create mode 100644 vendor/github.com/google/cel-go/common/stdlib/standard.go
create mode 100644 vendor/github.com/google/cel-go/common/types/optional.go
rename vendor/{google.golang.org/genproto/protobuf/field_mask/field_mask.go => github.com/google/cel-go/common/types/traits/zeroer.go} (60%)
delete mode 100644 vendor/github.com/google/cel-go/common/types/type.go
create mode 100644 vendor/github.com/google/cel-go/common/types/types.go
create mode 100644 vendor/github.com/google/cel-go/ext/bindings.go
create mode 100644 vendor/github.com/google/cel-go/ext/lists.go
create mode 100644 vendor/github.com/google/cel-go/ext/math.go
create mode 100644 vendor/github.com/google/cel-go/ext/native.go
create mode 100644 vendor/github.com/google/cel-go/ext/protos.go
create mode 100644 vendor/github.com/google/cel-go/ext/sets.go
delete mode 100644 vendor/github.com/google/cel-go/interpreter/coster.go
create mode 100644 vendor/github.com/google/cel-go/interpreter/formatting.go
delete mode 100644 vendor/github.com/google/cel-go/interpreter/functions/standard.go
rename vendor/github.com/google/{gnostic => gnostic-models}/LICENSE (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/compiler/README.md (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/compiler/context.go (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/compiler/error.go (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/compiler/extensions.go (97%)
rename vendor/github.com/google/{gnostic => gnostic-models}/compiler/helpers.go (99%)
rename vendor/github.com/google/{gnostic => gnostic-models}/compiler/main.go (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/compiler/reader.go (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/extensions/README.md (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/extensions/extension.pb.go (99%)
rename vendor/github.com/google/{gnostic => gnostic-models}/extensions/extension.proto (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/extensions/extensions.go (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/jsonschema/README.md (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/jsonschema/base.go (90%)
rename vendor/github.com/google/{gnostic => gnostic-models}/jsonschema/display.go (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/jsonschema/models.go (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/jsonschema/operations.go (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/jsonschema/reader.go (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/jsonschema/schema.json (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/jsonschema/writer.go (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv2/OpenAPIv2.go (99%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv2/OpenAPIv2.pb.go (99%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv2/OpenAPIv2.proto (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv2/README.md (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv2/document.go (96%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv2/openapi-2.0.json (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv3/OpenAPIv3.go (99%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv3/OpenAPIv3.pb.go (99%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv3/OpenAPIv3.proto (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv3/README.md (100%)
rename vendor/github.com/google/{gnostic => gnostic-models}/openapiv3/document.go (96%)
delete mode 100644 vendor/github.com/google/gnostic/openapiv3/openapi-3.0.json
delete mode 100644 vendor/github.com/google/gnostic/openapiv3/openapi-3.1.json
rename vendor/github.com/google/go-cmp/cmp/{export_unsafe.go => export.go} (94%)
delete mode 100644 vendor/github.com/google/go-cmp/cmp/export_panic.go
rename vendor/github.com/google/go-cmp/cmp/internal/value/{pointer_unsafe.go => pointer.go} (95%)
delete mode 100644 vendor/github.com/google/go-cmp/cmp/internal/value/pointer_purego.go
create mode 100644 vendor/github.com/google/gofuzz/bytesource/bytesource.go
create mode 100644 vendor/github.com/grpc-ecosystem/grpc-gateway/v2/utilities/string_array_flag.go
rename vendor/github.com/matttproud/golang_protobuf_extensions/{ => v2}/LICENSE (100%)
rename vendor/github.com/matttproud/golang_protobuf_extensions/{ => v2}/NOTICE (100%)
rename vendor/github.com/matttproud/golang_protobuf_extensions/{ => v2}/pbutil/.gitignore (100%)
rename vendor/github.com/matttproud/golang_protobuf_extensions/{ => v2}/pbutil/Makefile (100%)
rename vendor/github.com/matttproud/golang_protobuf_extensions/{ => v2}/pbutil/decode.go (83%)
rename vendor/github.com/matttproud/golang_protobuf_extensions/{ => v2}/pbutil/doc.go (100%)
rename vendor/github.com/matttproud/golang_protobuf_extensions/{ => v2}/pbutil/encode.go (91%)
delete mode 100644 vendor/github.com/mitchellh/mapstructure/CHANGELOG.md
delete mode 100644 vendor/github.com/mitchellh/mapstructure/LICENSE
delete mode 100644 vendor/github.com/mitchellh/mapstructure/README.md
delete mode 100644 vendor/github.com/mitchellh/mapstructure/decode_hooks.go
delete mode 100644 vendor/github.com/mitchellh/mapstructure/error.go
delete mode 100644 vendor/github.com/mitchellh/mapstructure/mapstructure.go
create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/process_collector_wasip1.go
create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/problem.go
create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/validation.go
create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/validations/counter_validations.go
create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/validations/generic_name_validations.go
create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/validations/help_validations.go
create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/validations/histogram_validations.go
create mode 100644 vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/validations/units.go
create mode 100644 vendor/github.com/prometheus/procfs/fs_statfs_notype.go
create mode 100644 vendor/github.com/prometheus/procfs/fs_statfs_type.go
create mode 100644 vendor/github.com/prometheus/procfs/net_route.go
create mode 100644 vendor/github.com/prometheus/procfs/net_wireless.go
rename vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/{grpctrace.go => config.go} (63%)
create mode 100644 vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/metadata_supplier.go
create mode 100644 vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil/gen.go
create mode 100644 vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil/httpconv.go
create mode 100644 vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil/netconv.go
create mode 100644 vendor/go.opentelemetry.io/otel/.codespellignore
create mode 100644 vendor/go.opentelemetry.io/otel/.codespellrc
create mode 100644 vendor/go.opentelemetry.io/otel/attribute/filter.go
delete mode 100644 vendor/go.opentelemetry.io/otel/exporters/otlp/internal/config.go
delete mode 100644 vendor/go.opentelemetry.io/otel/exporters/otlp/internal/retry/LICENSE
rename vendor/go.opentelemetry.io/otel/exporters/otlp/{ => otlptrace/otlptracegrpc}/internal/envconfig/envconfig.go (57%)
create mode 100644 vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/gen.go
rename vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/{ => otlptracegrpc}/internal/otlpconfig/envconfig.go (74%)
rename vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/{ => otlptracegrpc}/internal/otlpconfig/options.go (89%)
rename vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/{ => otlptracegrpc}/internal/otlpconfig/optiontypes.go (90%)
rename vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/{ => otlptracegrpc}/internal/otlpconfig/tls.go (87%)
rename vendor/go.opentelemetry.io/otel/exporters/otlp/{ => otlptrace/otlptracegrpc}/internal/partialsuccess.go (64%)
rename vendor/go.opentelemetry.io/otel/exporters/otlp/{ => otlptrace/otlptracegrpc}/internal/retry/retry.go (80%)
rename vendor/go.opentelemetry.io/otel/{metric/unit/doc.go => exporters/otlp/otlptrace/version.go} (65%)
create mode 100644 vendor/go.opentelemetry.io/otel/internal/attribute/attribute.go
create mode 100644 vendor/go.opentelemetry.io/otel/internal/gen.go
create mode 100644 vendor/go.opentelemetry.io/otel/internal/global/handler.go
create mode 100644 vendor/go.opentelemetry.io/otel/internal/global/instruments.go
create mode 100644 vendor/go.opentelemetry.io/otel/internal/global/meter.go
create mode 100644 vendor/go.opentelemetry.io/otel/metric.go
create mode 100644 vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go
create mode 100644 vendor/go.opentelemetry.io/otel/metric/asyncint64.go
create mode 100644 vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go
delete mode 100644 vendor/go.opentelemetry.io/otel/metric/global/global.go
create mode 100644 vendor/go.opentelemetry.io/otel/metric/instrument.go
delete mode 100644 vendor/go.opentelemetry.io/otel/metric/instrument/asyncfloat64/asyncfloat64.go
delete mode 100644 vendor/go.opentelemetry.io/otel/metric/instrument/asyncint64/asyncint64.go
delete mode 100644 vendor/go.opentelemetry.io/otel/metric/instrument/config.go
delete mode 100644 vendor/go.opentelemetry.io/otel/metric/instrument/syncfloat64/syncfloat64.go
delete mode 100644 vendor/go.opentelemetry.io/otel/metric/instrument/syncint64/syncint64.go
delete mode 100644 vendor/go.opentelemetry.io/otel/metric/internal/global/instruments.go
delete mode 100644 vendor/go.opentelemetry.io/otel/metric/internal/global/meter.go
delete mode 100644 vendor/go.opentelemetry.io/otel/metric/internal/global/state.go
delete mode 100644 vendor/go.opentelemetry.io/otel/metric/noop.go
create mode 100644 vendor/go.opentelemetry.io/otel/metric/syncfloat64.go
create mode 100644 vendor/go.opentelemetry.io/otel/metric/syncint64.go
create mode 100644 vendor/go.opentelemetry.io/otel/requirements.txt
create mode 100644 vendor/go.opentelemetry.io/otel/sdk/internal/gen.go
create mode 100644 vendor/go.opentelemetry.io/otel/sdk/resource/host_id.go
rename vendor/go.opentelemetry.io/otel/{metric/instrument/instrument.go => sdk/resource/host_id_bsd.go} (54%)
create mode 100644 vendor/go.opentelemetry.io/otel/sdk/resource/host_id_darwin.go
create mode 100644 vendor/go.opentelemetry.io/otel/sdk/resource/host_id_exec.go
create mode 100644 vendor/go.opentelemetry.io/otel/sdk/resource/host_id_linux.go
create mode 100644 vendor/go.opentelemetry.io/otel/sdk/resource/host_id_readfile.go
create mode 100644 vendor/go.opentelemetry.io/otel/sdk/resource/host_id_unsupported.go
create mode 100644 vendor/go.opentelemetry.io/otel/sdk/resource/host_id_windows.go
create mode 100644 vendor/go.opentelemetry.io/otel/sdk/trace/version.go
create mode 100644 vendor/go.opentelemetry.io/otel/sdk/version.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.17.0/doc.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.17.0/event.go
rename vendor/go.opentelemetry.io/otel/{metric/unit/unit.go => semconv/v1.17.0/exception.go} (70%)
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.17.0/http.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.17.0/resource.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.17.0/schema.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.17.0/trace.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.21.0/attribute_group.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.21.0/doc.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.21.0/event.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.21.0/exception.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.21.0/resource.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.21.0/schema.go
create mode 100644 vendor/go.opentelemetry.io/otel/semconv/v1.21.0/trace.go
delete mode 100644 vendor/go.uber.org/atomic/.codecov.yml
delete mode 100644 vendor/go.uber.org/atomic/.gitignore
delete mode 100644 vendor/go.uber.org/atomic/.travis.yml
delete mode 100644 vendor/go.uber.org/atomic/CHANGELOG.md
delete mode 100644 vendor/go.uber.org/atomic/LICENSE.txt
delete mode 100644 vendor/go.uber.org/atomic/Makefile
delete mode 100644 vendor/go.uber.org/atomic/README.md
delete mode 100644 vendor/go.uber.org/atomic/bool.go
delete mode 100644 vendor/go.uber.org/atomic/doc.go
delete mode 100644 vendor/go.uber.org/atomic/duration.go
delete mode 100644 vendor/go.uber.org/atomic/duration_ext.go
delete mode 100644 vendor/go.uber.org/atomic/error.go
delete mode 100644 vendor/go.uber.org/atomic/float64.go
delete mode 100644 vendor/go.uber.org/atomic/float64_ext.go
delete mode 100644 vendor/go.uber.org/atomic/gen.go
delete mode 100644 vendor/go.uber.org/atomic/int32.go
delete mode 100644 vendor/go.uber.org/atomic/int64.go
delete mode 100644 vendor/go.uber.org/atomic/nocmp.go
delete mode 100644 vendor/go.uber.org/atomic/string_ext.go
delete mode 100644 vendor/go.uber.org/atomic/uint32.go
delete mode 100644 vendor/go.uber.org/atomic/uint64.go
delete mode 100644 vendor/go.uber.org/atomic/value.go
delete mode 100644 vendor/go.uber.org/multierr/.travis.yml
rename vendor/go.uber.org/{atomic/error_ext.go => multierr/error_post_go120.go} (65%)
rename vendor/go.uber.org/multierr/{go113.go => error_pre_go120.go} (66%)
delete mode 100644 vendor/go.uber.org/multierr/glide.yaml
create mode 100644 vendor/go.uber.org/zap/.golangci.yml
delete mode 100644 vendor/go.uber.org/zap/array_go118.go
rename vendor/go.uber.org/{atomic/string.go => zap/internal/pool/pool.go} (55%)
rename vendor/go.uber.org/zap/{stacktrace.go => internal/stacktrace/stack.go} (73%)
rename vendor/go.uber.org/{atomic/bool_ext.go => zap/zapcore/lazy_with.go} (60%)
create mode 100644 vendor/golang.org/x/crypto/hkdf/hkdf.go
create mode 100644 vendor/golang.org/x/exp/LICENSE
create mode 100644 vendor/golang.org/x/exp/PATENTS
create mode 100644 vendor/golang.org/x/exp/constraints/constraints.go
create mode 100644 vendor/golang.org/x/exp/maps/maps.go
create mode 100644 vendor/golang.org/x/exp/slices/slices.go
create mode 100644 vendor/golang.org/x/exp/slices/sort.go
create mode 100644 vendor/golang.org/x/exp/slices/zsortfunc.go
create mode 100644 vendor/golang.org/x/exp/slices/zsortordered.go
delete mode 100644 vendor/golang.org/x/sys/execabs/execabs.go
delete mode 100644 vendor/golang.org/x/sys/execabs/execabs_go118.go
delete mode 100644 vendor/golang.org/x/sys/execabs/execabs_go119.go
create mode 100644 vendor/golang.org/x/text/feature/plural/common.go
create mode 100644 vendor/golang.org/x/text/feature/plural/message.go
create mode 100644 vendor/golang.org/x/text/feature/plural/plural.go
create mode 100644 vendor/golang.org/x/text/feature/plural/tables.go
create mode 100644 vendor/golang.org/x/text/internal/catmsg/catmsg.go
create mode 100644 vendor/golang.org/x/text/internal/catmsg/codec.go
create mode 100644 vendor/golang.org/x/text/internal/catmsg/varint.go
create mode 100644 vendor/golang.org/x/text/internal/format/format.go
create mode 100644 vendor/golang.org/x/text/internal/format/parser.go
create mode 100644 vendor/golang.org/x/text/internal/internal.go
create mode 100644 vendor/golang.org/x/text/internal/language/common.go
create mode 100644 vendor/golang.org/x/text/internal/language/compact.go
create mode 100644 vendor/golang.org/x/text/internal/language/compact/compact.go
create mode 100644 vendor/golang.org/x/text/internal/language/compact/language.go
create mode 100644 vendor/golang.org/x/text/internal/language/compact/parents.go
create mode 100644 vendor/golang.org/x/text/internal/language/compact/tables.go
create mode 100644 vendor/golang.org/x/text/internal/language/compact/tags.go
create mode 100644 vendor/golang.org/x/text/internal/language/compose.go
create mode 100644 vendor/golang.org/x/text/internal/language/coverage.go
create mode 100644 vendor/golang.org/x/text/internal/language/language.go
create mode 100644 vendor/golang.org/x/text/internal/language/lookup.go
create mode 100644 vendor/golang.org/x/text/internal/language/match.go
create mode 100644 vendor/golang.org/x/text/internal/language/parse.go
create mode 100644 vendor/golang.org/x/text/internal/language/tables.go
create mode 100644 vendor/golang.org/x/text/internal/language/tags.go
create mode 100644 vendor/golang.org/x/text/internal/match.go
create mode 100644 vendor/golang.org/x/text/internal/number/common.go
create mode 100644 vendor/golang.org/x/text/internal/number/decimal.go
create mode 100644 vendor/golang.org/x/text/internal/number/format.go
create mode 100644 vendor/golang.org/x/text/internal/number/number.go
create mode 100644 vendor/golang.org/x/text/internal/number/pattern.go
create mode 100644 vendor/golang.org/x/text/internal/number/roundingmode_string.go
create mode 100644 vendor/golang.org/x/text/internal/number/tables.go
create mode 100644 vendor/golang.org/x/text/internal/stringset/set.go
create mode 100644 vendor/golang.org/x/text/internal/tag/tag.go
create mode 100644 vendor/golang.org/x/text/language/coverage.go
create mode 100644 vendor/golang.org/x/text/language/doc.go
create mode 100644 vendor/golang.org/x/text/language/language.go
create mode 100644 vendor/golang.org/x/text/language/match.go
create mode 100644 vendor/golang.org/x/text/language/parse.go
create mode 100644 vendor/golang.org/x/text/language/tables.go
create mode 100644 vendor/golang.org/x/text/language/tags.go
create mode 100644 vendor/golang.org/x/text/message/catalog.go
create mode 100644 vendor/golang.org/x/text/message/catalog/catalog.go
create mode 100644 vendor/golang.org/x/text/message/catalog/dict.go
create mode 100644 vendor/golang.org/x/text/message/catalog/go19.go
create mode 100644 vendor/golang.org/x/text/message/catalog/gopre19.go
create mode 100644 vendor/golang.org/x/text/message/doc.go
create mode 100644 vendor/golang.org/x/text/message/format.go
create mode 100644 vendor/golang.org/x/text/message/message.go
create mode 100644 vendor/golang.org/x/text/message/print.go
create mode 100644 vendor/golang.org/x/tools/internal/event/keys/util.go
delete mode 100644 vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go
delete mode 100644 vendor/golang.org/x/tools/internal/fastwalk/fastwalk_darwin.go
delete mode 100644 vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_fileno.go
delete mode 100644 vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_ino.go
delete mode 100644 vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_bsd.go
delete mode 100644 vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_linux.go
delete mode 100644 vendor/golang.org/x/tools/internal/fastwalk/fastwalk_portable.go
delete mode 100644 vendor/golang.org/x/tools/internal/fastwalk/fastwalk_unix.go
delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go
delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go
delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go
delete mode 100644 vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go
create mode 100644 vendor/golang.org/x/tools/internal/versions/gover.go
create mode 100644 vendor/golang.org/x/tools/internal/versions/types.go
create mode 100644 vendor/golang.org/x/tools/internal/versions/types_go121.go
create mode 100644 vendor/golang.org/x/tools/internal/versions/types_go122.go
create mode 100644 vendor/golang.org/x/tools/internal/versions/versions.go
create mode 100644 vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go
create mode 100644 vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go
rename vendor/k8s.io/{component-base/config/v1alpha1 => api/apidiscovery/v2}/doc.go (75%)
create mode 100644 vendor/k8s.io/api/apidiscovery/v2/generated.pb.go
create mode 100644 vendor/k8s.io/api/apidiscovery/v2/generated.proto
rename vendor/k8s.io/{apiserver/pkg/apis/config => api/apidiscovery/v2}/register.go (73%)
create mode 100644 vendor/k8s.io/api/apidiscovery/v2/types.go
create mode 100644 vendor/k8s.io/api/apidiscovery/v2/zz_generated.deepcopy.go
rename vendor/k8s.io/api/flowcontrol/{v1alpha1 => v1}/doc.go (73%)
rename vendor/k8s.io/api/flowcontrol/{v1alpha1 => v1}/generated.pb.go (87%)
rename vendor/k8s.io/api/flowcontrol/{v1alpha1 => v1}/generated.proto (85%)
rename vendor/k8s.io/api/flowcontrol/{v1alpha1 => v1}/register.go (95%)
rename vendor/k8s.io/api/flowcontrol/{v1alpha1 => v1}/types.go (80%)
rename vendor/k8s.io/api/flowcontrol/{v1alpha1 => v1}/types_swagger_doc_generated.go (87%)
rename vendor/k8s.io/api/flowcontrol/{v1alpha1 => v1}/zz_generated.deepcopy.go (93%)
delete mode 100644 vendor/k8s.io/api/flowcontrol/v1alpha1/zz_generated.prerelease-lifecycle.go
create mode 100644 vendor/k8s.io/api/resource/v1alpha2/namedresources.go
rename vendor/k8s.io/{apiserver/pkg/apis/config/v1 => api/storagemigration/v1alpha1}/doc.go (70%)
create mode 100644 vendor/k8s.io/api/storagemigration/v1alpha1/generated.pb.go
create mode 100644 vendor/k8s.io/api/storagemigration/v1alpha1/generated.proto
create mode 100644 vendor/k8s.io/api/storagemigration/v1alpha1/register.go
create mode 100644 vendor/k8s.io/api/storagemigration/v1alpha1/types.go
create mode 100644 vendor/k8s.io/api/storagemigration/v1alpha1/types_swagger_doc_generated.go
create mode 100644 vendor/k8s.io/api/storagemigration/v1alpha1/zz_generated.deepcopy.go
create mode 100644 vendor/k8s.io/api/storagemigration/v1alpha1/zz_generated.prerelease-lifecycle.go
rename vendor/k8s.io/{component-base/config => apimachinery/pkg/api/validation}/OWNERS (84%)
create mode 100644 vendor/k8s.io/apimachinery/pkg/runtime/splice.go
create mode 100644 vendor/k8s.io/apimachinery/pkg/util/dump/dump.go
create mode 100644 vendor/k8s.io/apimachinery/pkg/util/httpstream/doc.go
create mode 100644 vendor/k8s.io/apimachinery/pkg/util/httpstream/httpstream.go
rename vendor/k8s.io/{apiserver/pkg/util => apimachinery/pkg/util/httpstream}/wsstream/conn.go (69%)
create mode 100644 vendor/k8s.io/apimachinery/pkg/util/httpstream/wsstream/doc.go
rename vendor/k8s.io/{apiserver/pkg/util => apimachinery/pkg/util/httpstream}/wsstream/stream.go (100%)
create mode 100644 vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/versioncheck.go
create mode 100644 vendor/k8s.io/apimachinery/pkg/util/portforward/constants.go
create mode 100644 vendor/k8s.io/apimachinery/pkg/util/remotecommand/constants.go
delete mode 100644 vendor/k8s.io/apimachinery/pkg/util/sets/ordered.go
create mode 100644 vendor/k8s.io/apimachinery/pkg/util/validation/OWNERS
rename vendor/{sigs.k8s.io/controller-runtime/pkg/config => k8s.io/apimachinery/pkg/util/version}/doc.go (75%)
create mode 100644 vendor/k8s.io/apimachinery/pkg/util/version/version.go
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/cel/composition.go
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/accessor.go
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/interfaces.go
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/plugin.go
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/policy_dispatcher.go
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy/matcher.go => policy/generic/policy_matcher.go} (51%)
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/policy_source.go
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/policy_test_context.go
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/internal/generic/controller.go (100%)
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/internal/generic/doc.go (100%)
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/internal/generic/informer.go (79%)
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/internal/generic/interface.go (100%)
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/internal/generic/lister.go (100%)
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/matching/matching.go (70%)
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/validating/accessor.go
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/validating/caching_authorizer.go
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/validating/dispatcher.go
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/initializer.go (96%)
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/interface.go (72%)
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/message.go (96%)
rename vendor/k8s.io/apiserver/pkg/admission/{cel => plugin/policy/validating/metrics}/metrics.go (100%)
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/validating/plugin.go
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/policy_decision.go (98%)
create mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/policy/validating/typechecking.go
rename vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/validator.go (90%)
delete mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/validatingadmissionpolicy/OWNERS
delete mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/validatingadmissionpolicy/admission.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/validatingadmissionpolicy/controller.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/validatingadmissionpolicy/controller_reconcile.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/admission/plugin/validatingadmissionpolicy/typechecking.go
create mode 100644 vendor/k8s.io/apiserver/pkg/apis/apidiscovery/v2/conversion.go
rename vendor/k8s.io/{component-base/config => apiserver/pkg/apis/apidiscovery/v2}/doc.go (79%)
create mode 100644 vendor/k8s.io/apiserver/pkg/apis/apidiscovery/v2/register.go
rename vendor/k8s.io/apiserver/pkg/apis/{config/types.go => apiserver/types_encryption.go} (99%)
rename vendor/k8s.io/apiserver/pkg/apis/{config => apiserver}/v1/defaults.go (100%)
rename vendor/k8s.io/apiserver/pkg/apis/{config/v1/types.go => apiserver/v1/types_encryption.go} (100%)
rename vendor/{sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/doc.go => k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/defaults.go} (55%)
rename vendor/k8s.io/{gengo/examples/set-gen/generators/tags.go => apiserver/pkg/apis/apiserver/v1beta1/defaults.go} (55%)
create mode 100644 vendor/k8s.io/apiserver/pkg/apis/apiserver/validation/validation.go
rename vendor/k8s.io/apiserver/pkg/apis/{config/validation/validation.go => apiserver/validation/validation_encryption.go} (91%)
delete mode 100644 vendor/k8s.io/apiserver/pkg/apis/config/v1/register.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.conversion.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.deepcopy.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.defaults.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/apis/config/zz_generated.deepcopy.go
create mode 100644 vendor/k8s.io/apiserver/pkg/authentication/cel/compile.go
create mode 100644 vendor/k8s.io/apiserver/pkg/authentication/cel/interface.go
create mode 100644 vendor/k8s.io/apiserver/pkg/authentication/cel/mapper.go
create mode 100644 vendor/k8s.io/apiserver/pkg/authorization/cel/compile.go
create mode 100644 vendor/k8s.io/apiserver/pkg/authorization/cel/interface.go
create mode 100644 vendor/k8s.io/apiserver/pkg/authorization/cel/matcher.go
create mode 100644 vendor/k8s.io/apiserver/pkg/authorization/cel/metrics.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/cidr.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/common/equality.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/cel/composited.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/environment/base.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/environment/environment.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/ip.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/lazy/lazy.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/library/cidr.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/library/ip.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/cel/library/libraries.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/library/quantity.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/library/test.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/openapi/resolver/combined.go
create mode 100644 vendor/k8s.io/apiserver/pkg/cel/quantity.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/cel/registry.go
create mode 100644 vendor/k8s.io/apiserver/pkg/server/filters/routine.go
create mode 100644 vendor/k8s.io/apiserver/pkg/server/options/encryptionconfig/metrics/metrics.go
create mode 100644 vendor/k8s.io/apiserver/pkg/storage/cacher/lister_watcher.go
create mode 100644 vendor/k8s.io/apiserver/pkg/storage/cacher/watch_progress.go
create mode 100644 vendor/k8s.io/apiserver/pkg/storage/value/encrypt/aes/aes_extended_nonce.go
create mode 100644 vendor/k8s.io/apiserver/pkg/storage/value/encrypt/aes/cache.go
create mode 100644 vendor/k8s.io/apiserver/pkg/util/flowcontrol/dropped_requests_tracker.go
create mode 100644 vendor/k8s.io/apiserver/pkg/util/peerproxy/metrics/metrics.go
delete mode 100644 vendor/k8s.io/apiserver/pkg/util/wsstream/doc.go
delete mode 100644 vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/metrics.go
create mode 100644 vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/metrics/metrics.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/auditannotation.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/expressionwarning.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/matchresources.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/namedrulewithoperations.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/paramkind.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/paramref.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/typechecking.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicy.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicybinding.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicybindingspec.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicyspec.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicystatus.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validation.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/variable.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/variable.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/auditannotation.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/expressionwarning.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/matchresources.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/namedrulewithoperations.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/paramkind.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/paramref.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/typechecking.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicy.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicybinding.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicybindingspec.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicyspec.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicystatus.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validation.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/variable.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/batch/v1/successpolicy.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/batch/v1/successpolicyrule.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/core/v1/apparmorprofile.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/core/v1/clustertrustbundleprojection.go
rename vendor/k8s.io/client-go/applyconfigurations/{policy/v1beta1/allowedflexvolume.go => core/v1/hostip.go} (50%)
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/core/v1/modifyvolumestatus.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/core/v1/noderuntimehandler.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/core/v1/noderuntimehandlerfeatures.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/core/v1/podresourceclaimstatus.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/core/v1/sleepaction.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/core/v1/volumemountstatus.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/core/v1/volumeresourcerequirements.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicystatus.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/exemptprioritylevelconfiguration.go
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/flowdistinguishermethod.go (87%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/flowschema.go (94%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/flowschemacondition.go (81%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/flowschemaspec.go (99%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/flowschemastatus.go (99%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/groupsubject.go (98%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/limitedprioritylevelconfiguration.go (90%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/limitresponse.go (88%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/nonresourcepolicyrule.go (99%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/policyruleswithsubjects.go (99%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/prioritylevelconfiguration.go (94%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/prioritylevelconfigurationcondition.go (81%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/prioritylevelconfigurationreference.go (98%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/prioritylevelconfigurationspec.go (73%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/prioritylevelconfigurationstatus.go (99%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/queuingconfiguration.go (99%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/resourcepolicyrule.go (99%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/serviceaccountsubject.go (99%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/subject.go (92%)
rename vendor/k8s.io/client-go/applyconfigurations/flowcontrol/{v1alpha1 => v1}/usersubject.go (98%)
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/exemptprioritylevelconfiguration.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/exemptprioritylevelconfiguration.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/exemptprioritylevelconfiguration.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/clustercidrspec.go
rename vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/{clustercidr.go => servicecidr.go} (68%)
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/servicecidrspec.go
rename vendor/k8s.io/client-go/applyconfigurations/networking/{v1/networkpolicystatus.go => v1alpha1/servicecidrstatus.go} (68%)
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/allowedhostpath.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/fsgroupstrategyoptions.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/hostportrange.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/idrange.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/podsecuritypolicyspec.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runasgroupstrategyoptions.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runasuserstrategyoptions.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/runtimeclassstrategyoptions.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/selinuxstrategyoptions.go
delete mode 100644 vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/supplementalgroupsstrategyoptions.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/allocationresultmodel.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/driverallocationresult.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/driverrequests.go
rename vendor/k8s.io/client-go/applyconfigurations/{policy/v1beta1/allowedcsidriver.go => resource/v1alpha2/namedresourcesallocationresult.go} (60%)
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesattribute.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesattributevalue.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesfilter.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesinstance.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesintslice.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesrequest.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesresources.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesstringslice.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclaimparameters.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclassparameters.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcefilter.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcefiltermodel.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcemodel.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcerequest.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcerequestmodel.go
rename vendor/k8s.io/client-go/applyconfigurations/{policy/v1beta1/podsecuritypolicy.go => resource/v1alpha2/resourceslice.go} (61%)
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/structuredresourcehandle.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/vendorparameters.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattributesclass.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/groupversionresource.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/migrationcondition.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/storageversionmigration.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/storageversionmigrationspec.go
create mode 100644 vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/storageversionmigrationstatus.go
create mode 100644 vendor/k8s.io/client-go/discovery/cached/memory/memcache.go
create mode 100644 vendor/k8s.io/client-go/dynamic/fake/simple.go
create mode 100644 vendor/k8s.io/client-go/features/envvar.go
create mode 100644 vendor/k8s.io/client-go/features/features.go
create mode 100644 vendor/k8s.io/client-go/features/known_features.go
create mode 100644 vendor/k8s.io/client-go/informers/admissionregistration/v1/validatingadmissionpolicy.go
create mode 100644 vendor/k8s.io/client-go/informers/admissionregistration/v1/validatingadmissionpolicybinding.go
create mode 100644 vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicy.go
create mode 100644 vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicybinding.go
rename vendor/k8s.io/client-go/informers/flowcontrol/{v1alpha1 => v1}/flowschema.go (78%)
rename vendor/k8s.io/client-go/informers/flowcontrol/{v1alpha1 => v1}/interface.go (99%)
rename vendor/k8s.io/client-go/informers/flowcontrol/{v1alpha1 => v1}/prioritylevelconfiguration.go (76%)
rename vendor/k8s.io/client-go/informers/networking/v1alpha1/{clustercidr.go => servicecidr.go} (69%)
create mode 100644 vendor/k8s.io/client-go/informers/resource/v1alpha2/resourceclaimparameters.go
create mode 100644 vendor/k8s.io/client-go/informers/resource/v1alpha2/resourceclassparameters.go
rename vendor/k8s.io/client-go/informers/{policy/v1beta1/podsecuritypolicy.go => resource/v1alpha2/resourceslice.go} (51%)
create mode 100644 vendor/k8s.io/client-go/informers/storage/v1alpha1/volumeattributesclass.go
create mode 100644 vendor/k8s.io/client-go/informers/storagemigration/interface.go
create mode 100644 vendor/k8s.io/client-go/informers/storagemigration/v1alpha1/interface.go
create mode 100644 vendor/k8s.io/client-go/informers/storagemigration/v1alpha1/storageversionmigration.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingadmissionpolicy.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingadmissionpolicybinding.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingadmissionpolicy.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingadmissionpolicybinding.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingadmissionpolicy.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingadmissionpolicybinding.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingadmissionpolicy.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingadmissionpolicybinding.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_selfsubjectreview.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/selfsubjectreview.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1/doc.go
rename vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/{v1alpha1 => v1}/fake/doc.go (100%)
rename vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/{v1alpha1 => v1}/fake/fake_flowcontrol_client.go (72%)
rename vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/{v1alpha1 => v1}/fake/fake_flowschema.go (67%)
rename vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/{v1alpha1 => v1}/fake/fake_prioritylevelconfiguration.go (64%)
rename vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/{v1alpha1 => v1}/flowcontrol_client.go (64%)
rename vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/{v1alpha1 => v1}/flowschema.go (69%)
rename vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/{v1alpha1 => v1}/generated_expansion.go (97%)
rename vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/{v1alpha1 => v1}/prioritylevelconfiguration.go (69%)
delete mode 100644 vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/clustercidr.go
delete mode 100644 vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_clustercidr.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_servicecidr.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/servicecidr.go
delete mode 100644 vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_podsecuritypolicy.go
delete mode 100644 vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_resourceclaimparameters.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_resourceclassparameters.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_resourceslice.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/resourceclaimparameters.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/resourceclassparameters.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/resourceslice.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattributesclass.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattributesclass.go
rename vendor/k8s.io/client-go/kubernetes/typed/{flowcontrol => storagemigration}/v1alpha1/doc.go (100%)
rename vendor/k8s.io/{apiserver/pkg/apis/config => client-go/kubernetes/typed/storagemigration/v1alpha1/fake}/doc.go (78%)
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/fake_storagemigration_client.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/fake_storageversionmigration.go
rename vendor/k8s.io/{gengo/examples/set-gen/sets/doc.go => client-go/kubernetes/typed/storagemigration/v1alpha1/generated_expansion.go} (83%)
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/storagemigration_client.go
create mode 100644 vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/storageversionmigration.go
create mode 100644 vendor/k8s.io/client-go/listers/admissionregistration/v1/validatingadmissionpolicy.go
create mode 100644 vendor/k8s.io/client-go/listers/admissionregistration/v1/validatingadmissionpolicybinding.go
create mode 100644 vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/validatingadmissionpolicy.go
create mode 100644 vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/validatingadmissionpolicybinding.go
rename vendor/k8s.io/client-go/listers/flowcontrol/{v1alpha1 => v1}/expansion_generated.go (98%)
rename vendor/k8s.io/client-go/listers/flowcontrol/{v1alpha1 => v1}/flowschema.go (79%)
rename vendor/k8s.io/client-go/listers/flowcontrol/{v1alpha1 => v1}/prioritylevelconfiguration.go (79%)
rename vendor/k8s.io/client-go/listers/networking/v1alpha1/{clustercidr.go => servicecidr.go} (54%)
delete mode 100644 vendor/k8s.io/client-go/listers/policy/v1beta1/podsecuritypolicy.go
create mode 100644 vendor/k8s.io/client-go/listers/resource/v1alpha2/resourceclaimparameters.go
create mode 100644 vendor/k8s.io/client-go/listers/resource/v1alpha2/resourceclassparameters.go
create mode 100644 vendor/k8s.io/client-go/listers/resource/v1alpha2/resourceslice.go
create mode 100644 vendor/k8s.io/client-go/listers/storage/v1alpha1/volumeattributesclass.go
rename vendor/k8s.io/{gengo/examples/set-gen/sets/empty.go => client-go/listers/storagemigration/v1alpha1/expansion_generated.go} (68%)
create mode 100644 vendor/k8s.io/client-go/listers/storagemigration/v1alpha1/storageversionmigration.go
create mode 100644 vendor/k8s.io/client-go/openapi/cached/client.go
create mode 100644 vendor/k8s.io/client-go/openapi/cached/groupversion.go
create mode 100644 vendor/k8s.io/client-go/openapi/typeconverter.go
create mode 100644 vendor/k8s.io/client-go/tools/cache/object-names.go
create mode 100644 vendor/k8s.io/client-go/tools/cache/reflector_data_consistency_detector.go
create mode 100644 vendor/k8s.io/client-go/tools/internal/events/interfaces.go
delete mode 100644 vendor/k8s.io/client-go/tools/leaderelection/resourcelock/configmaplock.go
delete mode 100644 vendor/k8s.io/client-go/tools/leaderelection/resourcelock/endpointslock.go
rename vendor/k8s.io/code-generator/cmd/applyconfiguration-gen/generators/{packages.go => targets.go} (64%)
delete mode 100644 vendor/k8s.io/code-generator/cmd/client-gen/path/path.go
rename vendor/k8s.io/{gengo/examples => code-generator/cmd}/deepcopy-gen/generators/deepcopy.go (86%)
rename vendor/k8s.io/{gengo/examples => code-generator/cmd}/defaulter-gen/generators/defaulter.go (73%)
delete mode 100644 vendor/k8s.io/code-generator/cmd/import-boss/.gitignore
delete mode 100644 vendor/k8s.io/code-generator/cmd/import-boss/README.md
delete mode 100644 vendor/k8s.io/code-generator/cmd/import-boss/main.go
rename vendor/k8s.io/code-generator/cmd/informer-gen/generators/{packages.go => targets.go} (56%)
delete mode 100644 vendor/k8s.io/code-generator/cmd/openapi-gen/main.go
rename vendor/k8s.io/code-generator/cmd/register-gen/generators/{packages.go => targets.go} (73%)
delete mode 100644 vendor/k8s.io/code-generator/cmd/set-gen/.gitignore
delete mode 100644 vendor/k8s.io/code-generator/cmd/set-gen/main.go
create mode 100644 vendor/k8s.io/code-generator/kube_codegen.sh
delete mode 100644 vendor/k8s.io/code-generator/pkg/util/build.go
delete mode 100644 vendor/k8s.io/component-base/config/types.go
delete mode 100644 vendor/k8s.io/component-base/config/v1alpha1/conversion.go
delete mode 100644 vendor/k8s.io/component-base/config/v1alpha1/defaults.go
delete mode 100644 vendor/k8s.io/component-base/config/v1alpha1/register.go
delete mode 100644 vendor/k8s.io/component-base/config/v1alpha1/types.go
delete mode 100644 vendor/k8s.io/component-base/config/v1alpha1/zz_generated.conversion.go
delete mode 100644 vendor/k8s.io/component-base/config/v1alpha1/zz_generated.deepcopy.go
delete mode 100644 vendor/k8s.io/component-base/config/zz_generated.deepcopy.go
create mode 100644 vendor/k8s.io/component-base/logs/api/v1/text.go
create mode 100644 vendor/k8s.io/component-base/version/dynamic.go
delete mode 100644 vendor/k8s.io/gengo/args/args.go
delete mode 100644 vendor/k8s.io/gengo/examples/import-boss/generators/import_restrict.go
delete mode 100644 vendor/k8s.io/gengo/examples/set-gen/generators/sets.go
delete mode 100644 vendor/k8s.io/gengo/examples/set-gen/sets/byte.go
delete mode 100644 vendor/k8s.io/gengo/examples/set-gen/sets/int.go
delete mode 100644 vendor/k8s.io/gengo/examples/set-gen/sets/int64.go
delete mode 100644 vendor/k8s.io/gengo/examples/set-gen/sets/string.go
delete mode 100644 vendor/k8s.io/gengo/generator/default_generator.go
delete mode 100644 vendor/k8s.io/gengo/generator/default_package.go
delete mode 100644 vendor/k8s.io/gengo/generator/transitive_closure.go
delete mode 100644 vendor/k8s.io/gengo/parser/parse.go
delete mode 100644 vendor/k8s.io/gengo/types/flatten.go
rename vendor/k8s.io/gengo/{ => v2}/LICENSE (100%)
create mode 100644 vendor/k8s.io/gengo/v2/README.md
rename vendor/k8s.io/gengo/{types => v2}/comments.go (86%)
create mode 100644 vendor/k8s.io/gengo/v2/execute.go
rename vendor/k8s.io/gengo/{ => v2}/generator/doc.go (96%)
rename vendor/k8s.io/gengo/{ => v2}/generator/error_tracker.go (100%)
rename vendor/k8s.io/gengo/{ => v2}/generator/execute.go (54%)
rename vendor/k8s.io/gengo/{ => v2}/generator/generator.go (63%)
create mode 100644 vendor/k8s.io/gengo/v2/generator/go_generator.go
rename vendor/k8s.io/gengo/{ => v2}/generator/import_tracker.go (55%)
create mode 100644 vendor/k8s.io/gengo/v2/generator/simple_target.go
rename vendor/k8s.io/gengo/{ => v2}/generator/snippet_writer.go (88%)
rename vendor/k8s.io/gengo/{ => v2}/namer/doc.go (96%)
rename vendor/k8s.io/gengo/{ => v2}/namer/import_tracker.go (90%)
rename vendor/k8s.io/gengo/{ => v2}/namer/namer.go (99%)
rename vendor/k8s.io/gengo/{ => v2}/namer/order.go (98%)
rename vendor/k8s.io/gengo/{ => v2}/namer/plural_namer.go (99%)
rename vendor/k8s.io/gengo/{ => v2}/parser/doc.go (92%)
create mode 100644 vendor/k8s.io/gengo/v2/parser/parse.go
rename vendor/k8s.io/gengo/{ => v2}/types/doc.go (93%)
rename vendor/k8s.io/gengo/{ => v2}/types/types.go (98%)
create mode 100644 vendor/k8s.io/klog/v2/.golangci.yaml
create mode 100644 vendor/k8s.io/klog/v2/contextual_slog.go
create mode 100644 vendor/k8s.io/klog/v2/format.go
create mode 100644 vendor/k8s.io/klog/v2/internal/serialize/keyvalues_no_slog.go
create mode 100644 vendor/k8s.io/klog/v2/internal/serialize/keyvalues_slog.go
create mode 100644 vendor/k8s.io/klog/v2/internal/sloghandler/sloghandler_slog.go
create mode 100644 vendor/k8s.io/klog/v2/internal/verbosity/verbosity.go
create mode 100644 vendor/k8s.io/klog/v2/k8s_references_slog.go
create mode 100644 vendor/k8s.io/klog/v2/klogr_slog.go
create mode 100644 vendor/k8s.io/klog/v2/safeptr.go
create mode 100644 vendor/k8s.io/klog/v2/textlogger/options.go
create mode 100644 vendor/k8s.io/klog/v2/textlogger/textlogger.go
create mode 100644 vendor/k8s.io/klog/v2/textlogger/textlogger_slog.go
delete mode 100644 vendor/k8s.io/kube-openapi/cmd/openapi-gen/args/args.go
create mode 100644 vendor/k8s.io/kube-openapi/pkg/builder/parameters.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/README.md
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/api_linter.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/config.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/enum.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/extension.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/openapi.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/rules/OWNERS
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/rules/doc.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/rules/idl_tag.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/rules/names_match.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/rules/omitempty_match_case.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/generators/union.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/openapiconv/convert.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/util/sets/empty.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/util/sets/string.go
delete mode 100644 vendor/k8s.io/kube-openapi/pkg/validation/spec/fuzz.go
delete mode 100644 vendor/k8s.io/utils/integer/integer.go
create mode 100644 vendor/k8s.io/utils/ptr/OWNERS
create mode 100644 vendor/k8s.io/utils/ptr/README.md
create mode 100644 vendor/k8s.io/utils/ptr/ptr.go
create mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/cache/delegating_by_gvk_cache.go
delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/cache/internal/transformers.go
create mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/client/apiutil/errors.go
create mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/client/fieldowner.go
delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/config/config.go
delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/register.go
delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/types.go
delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/config/v1alpha1/zz_generated.deepcopy.go
create mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/internal/syncs/syncs.go
delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/metrics/listener.go
create mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/metrics/server/doc.go
create mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/metrics/server/server.go
delete mode 100644 vendor/sigs.k8s.io/controller-runtime/pkg/scheme/scheme.go
create mode 100644 vendor/sigs.k8s.io/structured-merge-diff/v4/typed/compare.go
delete mode 100644 vendor/sigs.k8s.io/structured-merge-diff/v4/typed/union.go
diff --git a/.github/workflows/benchmark-action.yaml b/.github/workflows/benchmark-action.yaml
index d032fab1c..1852d469a 100644
--- a/.github/workflows/benchmark-action.yaml
+++ b/.github/workflows/benchmark-action.yaml
@@ -24,7 +24,7 @@ jobs:
- uses: actions/checkout@v4.1.2
- uses: actions/setup-go@v5 # default version of go is 1.10
with:
- go-version: 1.21.11
+ go-version: 1.22.9
- name: Install Carvel Tools
run: ./hack/install-deps.sh
# Run benchmark with `go test -bench` and stores the output to a file
diff --git a/.github/workflows/dependency-updater.yml b/.github/workflows/dependency-updater.yml
index 4e21030f6..d1eae7406 100644
--- a/.github/workflows/dependency-updater.yml
+++ b/.github/workflows/dependency-updater.yml
@@ -16,7 +16,7 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v5
with:
- go-version: 1.21.11
+ go-version: 1.22.9
- name: Update Dependencies File
run: go run ./hack/dependencies.go update
- name: Create Pull Request
diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml
index ddb4bd0a7..a09bb61dc 100644
--- a/.github/workflows/golangci-lint.yml
+++ b/.github/workflows/golangci-lint.yml
@@ -21,12 +21,12 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v5
with:
- go-version: 1.21.11
+ go-version: 1.22.9
- uses: actions/checkout@v4.1.2
with:
fetch-depth: '0'
- name: golangci-lint
uses: golangci/golangci-lint-action@v6.0.1
with:
- version: v1.52.2
+ version: v1.58.1
args: -v
diff --git a/.github/workflows/kind-action.yml b/.github/workflows/kind-action.yml
index 5170ad54a..480e95512 100644
--- a/.github/workflows/kind-action.yml
+++ b/.github/workflows/kind-action.yml
@@ -27,7 +27,7 @@ jobs:
fetch-depth: 0
- uses: actions/setup-go@v5 # default version of go is 1.10
with:
- go-version: 1.21.11
+ go-version: 1.22.9
- name: Install Carvel Tools
run: ./hack/install-deps.sh
# Run benchmark with `go test -bench` and stores the output to a file
diff --git a/.github/workflows/release-process.yml b/.github/workflows/release-process.yml
index d82e3d607..4a8ff4d16 100644
--- a/.github/workflows/release-process.yml
+++ b/.github/workflows/release-process.yml
@@ -39,7 +39,7 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v5
with:
- go-version: 1.21.11
+ go-version: 1.22.9
- name: Set up Cosign
uses: sigstore/cosign-installer@v3.4.0
diff --git a/.github/workflows/test-gh.yml b/.github/workflows/test-gh.yml
index af7345461..a33592409 100644
--- a/.github/workflows/test-gh.yml
+++ b/.github/workflows/test-gh.yml
@@ -26,7 +26,7 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v5
with:
- go-version: 1.21.11
+ go-version: 1.22.9
- name: Check out code
uses: actions/checkout@v4.1.2
with:
diff --git a/.github/workflows/test-kctrl-gh.yml b/.github/workflows/test-kctrl-gh.yml
index 04a7ab971..636e656b7 100644
--- a/.github/workflows/test-kctrl-gh.yml
+++ b/.github/workflows/test-kctrl-gh.yml
@@ -24,7 +24,7 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v5
with:
- go-version: 1.21.11
+ go-version: 1.22.9
- name: Check out code
uses: actions/checkout@v4.1.2
with:
diff --git a/.github/workflows/trivy-scan.yml b/.github/workflows/trivy-scan.yml
index 827e76092..ba1ece3ee 100644
--- a/.github/workflows/trivy-scan.yml
+++ b/.github/workflows/trivy-scan.yml
@@ -70,7 +70,7 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v5
with:
- go-version: 1.21.11
+ go-version: 1.22.9
- name: Build the kapp-controller artifacts
run: |
./hack/install-deps.sh
diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml
index f0574030e..fff0ed4ff 100644
--- a/.github/workflows/upgrade-testing.yml
+++ b/.github/workflows/upgrade-testing.yml
@@ -26,7 +26,7 @@ jobs:
- name: Set up Go 1.x
uses: actions/setup-go@v5
with:
- go-version: 1.21.11
+ go-version: 1.22.9
- name: Check out code
uses: actions/checkout@v4.1.2
- name: Install Carvel Tools
diff --git a/Dockerfile b/Dockerfile
index 7f5c85497..14245191f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM --platform=$BUILDPLATFORM golang:1.21.11 AS deps
+FROM --platform=$BUILDPLATFORM golang:1.22.9 AS deps
ARG TARGETOS TARGETARCH KCTRL_VER=development
WORKDIR /workspace
diff --git a/cmd/controller/run.go b/cmd/controller/run.go
index 63c7e5a36..f971658a5 100644
--- a/cmd/controller/run.go
+++ b/cmd/controller/run.go
@@ -36,6 +36,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/controller"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/controller-runtime/pkg/manager/signals"
+ metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
)
@@ -67,8 +68,18 @@ func Run(opts Options, runLog logr.Logger) error {
restConfig.Timeout = opts.APIRequestTimeout
}
- mgr, err := manager.New(restConfig, manager.Options{Cache: cache.Options{Namespaces: []string{opts.Namespace}},
- Scheme: kcconfig.Scheme, MetricsBindAddress: opts.MetricsBindAddress})
+ mgrOpts := manager.Options{
+ Scheme: kcconfig.Scheme,
+ Metrics: metricsserver.Options{BindAddress: opts.MetricsBindAddress},
+ }
+
+ if opts.Namespace != "" {
+ // Run in namespaced mode
+ mgrOpts.Cache.DefaultNamespaces = make(map[string]cache.Config)
+ mgrOpts.Cache.DefaultNamespaces[opts.Namespace] = cache.Config{}
+ }
+
+ mgr, err := manager.New(restConfig, mgrOpts)
if err != nil {
return fmt.Errorf("Setting up overall controller manager: %s", err)
}
diff --git a/config-dev/values-schema.yml b/config-dev/values-schema.yml
index 7e41b8e66..1e4ca0cb3 100644
--- a/config-dev/values-schema.yml
+++ b/config-dev/values-schema.yml
@@ -9,7 +9,7 @@ dev:
#@schema/desc "Whether to use the faster deployment type whilst developing (must have deployed to a cluster once fully first)"
rapid_deploy: false
#@schema/desc "Location of kapp-controller image"
- image_repo: docker.io/k14s/kapp-controller-test
+ image_repo: docker.io/rohitagg2020/kapp-controller-test
#@schema/desc "Development version"
version: develop
#@schema/desc "Comma separated list of supported architectures"
diff --git a/config/config/rbac.yml b/config/config/rbac.yml
index 55980498f..46e0576fb 100644
--- a/config/config/rbac.yml
+++ b/config/config/rbac.yml
@@ -55,10 +55,7 @@ rules:
resources: ["namespaces"]
verbs: ["list", "watch", "get", "update"]
- apiGroups: ["admissionregistration.k8s.io"]
- resources: ["mutatingwebhookconfigurations"]
- verbs: ["list", "watch"]
-- apiGroups: ["admissionregistration.k8s.io"]
- resources: ["validatingwebhookconfigurations"]
+ resources: ["mutatingwebhookconfigurations", "validatingwebhookconfigurations", "validatingadmissionpolicies", "validatingadmissionpolicybindings"]
verbs: ["list", "watch"]
- apiGroups: ["authorization.k8s.io"]
resources: ["subjectaccessreviews"]
diff --git a/go.mod b/go.mod
index 2706689f7..70c99aa58 100644
--- a/go.mod
+++ b/go.mod
@@ -1,26 +1,26 @@
module carvel.dev/kapp-controller
-go 1.21
+go 1.22.7
require (
carvel.dev/vendir v0.40.0
github.com/fatih/color v1.15.0 // indirect
github.com/gogo/protobuf v1.3.2
- github.com/google/go-cmp v0.5.9 // indirect
- github.com/prometheus/client_golang v1.15.1
+ github.com/google/go-cmp v0.6.0 // indirect
+ github.com/prometheus/client_golang v1.18.0
github.com/stretchr/testify v1.8.4
golang.org/x/crypto v0.21.0
golang.org/x/text v0.14.0 // indirect
- golang.org/x/tools v0.12.0
+ golang.org/x/tools v0.18.0
gopkg.in/yaml.v3 v3.0.1 // indirect
- k8s.io/api v0.27.7
- k8s.io/apimachinery v0.27.7
- k8s.io/apiserver v0.27.7
- k8s.io/client-go v0.27.7
- k8s.io/code-generator v0.27.7
+ k8s.io/api v0.30.1
+ k8s.io/apimachinery v0.30.1
+ k8s.io/apiserver v0.30.1
+ k8s.io/client-go v0.30.1
+ k8s.io/code-generator v0.30.1
k8s.io/kube-aggregator v0.22.17
- k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f
- sigs.k8s.io/controller-runtime v0.15.3
+ k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340
+ sigs.k8s.io/controller-runtime v0.18.5
sigs.k8s.io/controller-tools v0.7.0
sigs.k8s.io/yaml v1.4.0
)
@@ -28,50 +28,50 @@ require (
require (
github.com/blang/semver v3.5.1+incompatible
github.com/cppforlife/go-cli-ui v0.0.0-20220425131040-94f26b16bc14
- github.com/go-logr/logr v1.2.4
+ github.com/go-logr/logr v1.4.1
github.com/k14s/semver/v4 v4.0.1-0.20210701191048-266d47ac6115
- github.com/prometheus/client_model v0.4.0
+ github.com/prometheus/client_model v0.5.0
github.com/spf13/cobra v1.7.0
- golang.org/x/sync v0.3.0
+ golang.org/x/sync v0.6.0
gopkg.in/yaml.v2 v2.4.0
- k8s.io/component-base v0.27.7
- k8s.io/klog/v2 v2.90.1
- k8s.io/utils v0.0.0-20230209194617-a36077c30491
+ k8s.io/component-base v0.30.1
+ k8s.io/klog/v2 v2.120.1
+ k8s.io/utils v0.0.0-20230726121419-3b25d923346b
)
require (
- cloud.google.com/go v0.110.4 // indirect
+ cloud.google.com/go v0.110.6 // indirect
github.com/NYTimes/gziphandler v1.1.1 // indirect
- github.com/antlr/antlr4/runtime/Go/antlr v1.4.10 // indirect
+ github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df // indirect
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/carvel-dev/semver/v4 v4.0.1-0.20230221220520-8090ce423695 // indirect
- github.com/cenkalti/backoff/v4 v4.1.3 // indirect
+ github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
- github.com/coreos/go-semver v0.3.0 // indirect
- github.com/coreos/go-systemd/v22 v22.4.0 // indirect
+ github.com/coreos/go-semver v0.3.1 // indirect
+ github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/cppforlife/color v1.9.1-0.20200716202919-6706ac40b835 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
- github.com/emicklei/go-restful/v3 v3.10.1 // indirect
- github.com/evanphx/json-patch v4.12.0+incompatible // indirect
- github.com/evanphx/json-patch/v5 v5.6.0 // indirect
+ github.com/emicklei/go-restful/v3 v3.11.0 // indirect
+ github.com/evanphx/json-patch v5.6.0+incompatible // indirect
+ github.com/evanphx/json-patch/v5 v5.9.0 // indirect
github.com/felixge/httpsnoop v1.0.3 // indirect
- github.com/fsnotify/fsnotify v1.6.0 // indirect
+ github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
- github.com/go-logr/zapr v1.2.4 // indirect
+ github.com/go-logr/zapr v1.3.0 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
- github.com/go-openapi/jsonreference v0.20.1 // indirect
+ github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/swag v0.22.3 // indirect
github.com/gobuffalo/flect v0.2.3 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
- github.com/golang/protobuf v1.5.3 // indirect
- github.com/google/cel-go v0.12.7 // indirect
- github.com/google/gnostic v0.5.7-v3refs // indirect
- github.com/google/gofuzz v1.1.0 // indirect
+ github.com/golang/protobuf v1.5.4 // indirect
+ github.com/google/cel-go v0.17.8 // indirect
+ github.com/google/gnostic-models v0.6.8 // indirect
+ github.com/google/gofuzz v1.2.0 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
github.com/hashicorp/go-version v1.2.1 // indirect
github.com/imdario/mergo v0.3.12 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
@@ -80,55 +80,53 @@ require (
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
- github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
- github.com/mitchellh/mapstructure v1.4.1 // indirect
+ github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
- github.com/prometheus/common v0.42.0 // indirect
- github.com/prometheus/procfs v0.9.0 // indirect
+ github.com/prometheus/common v0.45.0 // indirect
+ github.com/prometheus/procfs v0.12.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/stoewer/go-strcase v1.2.0 // indirect
github.com/vito/go-interact v1.0.1 // indirect
- go.etcd.io/etcd/api/v3 v3.5.9 // indirect
- go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect
- go.etcd.io/etcd/client/v3 v3.5.9 // indirect
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.1 // indirect
- go.opentelemetry.io/otel v1.10.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 // indirect
- go.opentelemetry.io/otel/metric v0.31.0 // indirect
- go.opentelemetry.io/otel/sdk v1.10.0 // indirect
- go.opentelemetry.io/otel/trace v1.10.0 // indirect
- go.opentelemetry.io/proto/otlp v0.19.0 // indirect
- go.uber.org/atomic v1.7.0 // indirect
- go.uber.org/multierr v1.6.0 // indirect
- go.uber.org/zap v1.24.0 // indirect
- golang.org/x/mod v0.12.0 // indirect
+ go.etcd.io/etcd/api/v3 v3.5.10 // indirect
+ go.etcd.io/etcd/client/pkg/v3 v3.5.10 // indirect
+ go.etcd.io/etcd/client/v3 v3.5.10 // indirect
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0 // indirect
+ go.opentelemetry.io/otel v1.19.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
+ go.opentelemetry.io/otel/metric v1.19.0 // indirect
+ go.opentelemetry.io/otel/sdk v1.19.0 // indirect
+ go.opentelemetry.io/otel/trace v1.19.0 // indirect
+ go.opentelemetry.io/proto/otlp v1.0.0 // indirect
+ go.uber.org/multierr v1.11.0 // indirect
+ go.uber.org/zap v1.26.0 // indirect
+ golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
+ golang.org/x/mod v0.15.0 // indirect
golang.org/x/net v0.23.0 // indirect
- golang.org/x/oauth2 v0.10.0 // indirect
+ golang.org/x/oauth2 v0.12.0 // indirect
golang.org/x/sys v0.18.0 // indirect
golang.org/x/term v0.18.0 // indirect
golang.org/x/time v0.3.0 // indirect
- gomodules.xyz/jsonpatch/v2 v2.3.0 // indirect
+ gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
- google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
+ google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
google.golang.org/grpc v1.58.3 // indirect
google.golang.org/protobuf v1.33.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
- gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
- k8s.io/apiextensions-apiserver v0.27.7 // indirect
- k8s.io/gengo v0.0.0-20220902162205-c0856e24416d // indirect
- k8s.io/kms v0.27.7 // indirect
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2 // indirect
+ gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
+ k8s.io/apiextensions-apiserver v0.30.1 // indirect
+ k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect
+ k8s.io/kms v0.30.1 // indirect
+ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
- sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
+ sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
)
replace cloud.google.com/go => cloud.google.com/go v0.60.0
diff --git a/go.sum b/go.sum
index b159a32b5..b45587f31 100644
--- a/go.sum
+++ b/go.sum
@@ -25,7 +25,6 @@ github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSY
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
-github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
@@ -40,16 +39,14 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
-github.com/antlr/antlr4/runtime/Go/antlr v1.4.10 h1:yL7+Jz0jTC6yykIK/Wh74gnTJnrGr5AyrNMXuA0gves=
-github.com/antlr/antlr4/runtime/Go/antlr v1.4.10/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df h1:7RFfzj4SSt6nnvCPbCqijJi1nWCd+TqAT3bYCStRC18=
+github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
-github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
-github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -63,8 +60,8 @@ 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/carvel-dev/semver/v4 v4.0.1-0.20230221220520-8090ce423695 h1:naCDnpJeqQq5OHOYR6j01yIVVUk3WI5MuSHpDTy+M1A=
github.com/carvel-dev/semver/v4 v4.0.1-0.20230221220520-8090ce423695/go.mod h1:4cFTBLAr/U11ykiEEQMccu4uJ1i0GS+atJmeETHCFtI=
-github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4=
-github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
+github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
+github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
@@ -78,11 +75,6 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
-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/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
-github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k=
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
@@ -91,12 +83,13 @@ github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u9
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
-github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
+github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
-github.com/coreos/go-systemd/v22 v22.4.0 h1:y9YHcjnjynCd/DVbg5j9L/33jQM3MxJlbj/zWskzfGU=
-github.com/coreos/go-systemd/v22 v22.4.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
+github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cppforlife/color v1.9.1-0.20200716202919-6706ac40b835 h1:mYQweUIBD+TBRjIeQnJmXr0GSVMpI6O0takyb/aaOgo=
github.com/cppforlife/color v1.9.1-0.20200716202919-6706ac40b835/go.mod h1:dYeVsKp1vvK8XjdTPR1gF+uk+9doxKeO3hqQTOCr7T4=
@@ -114,28 +107,27 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
-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/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
+github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
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/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ=
-github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
+github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
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.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/envoyproxy/protoc-gen-validate v1.0.2 h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA=
github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE=
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 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww=
-github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4=
+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.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg=
+github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
@@ -147,8 +139,8 @@ github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoD
github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
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.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
-github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
+github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
+github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
@@ -163,22 +155,21 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG
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 v0.4.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.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
-github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
+github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo=
-github.com/go-logr/zapr v1.2.4/go.mod h1:FyHWQIzQORZ0QVE1BtVHv3cKtNLuXsbNLtpuhNapBOA=
+github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
+github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
-github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=
-github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
+github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
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=
@@ -195,10 +186,9 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-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-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
+github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE=
github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -225,16 +215,16 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
-github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
+github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
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/cel-go v0.12.7 h1:jM6p55R0MKBg79hZjn1zs2OlrywZ1Vk00rxVvad1/O0=
-github.com/google/cel-go v0.12.7/go.mod h1:Jk7ljRzLBhkmiAwBoUxB1sZSCVBAzkqPF25olK/iRDw=
-github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
-github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
+github.com/google/cel-go v0.17.8 h1:j9m730pMZt1Fc4oKhCLUHfjj6527LuhYcYw0Rl8gqto=
+github.com/google/cel-go v0.17.8/go.mod h1:HXZKzB0LXqer5lHHgfWAnlYwJaQBDKMjxjulNQzhwhY=
+github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
+github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
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=
@@ -244,11 +234,13 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
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.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
+github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/pprof v0.0.0-20200507031123-427632fa3b1c/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
@@ -262,8 +254,9 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m
github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU=
github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
-github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
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/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.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
@@ -273,8 +266,8 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -305,7 +298,6 @@ github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
-github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=
github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
@@ -363,8 +355,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
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/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
-github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
-github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
+github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
+github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
@@ -374,7 +366,6 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4
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.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag=
github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A=
@@ -403,14 +394,14 @@ github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1ls
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
-github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q=
-github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k=
+github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8=
+github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs=
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
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.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
-github.com/onsi/gomega v1.27.7 h1:fVih9JD6ogIiHUN6ePK7HJidyEDpWGVB5mzM7cWNXoU=
-github.com/onsi/gomega v1.27.7/go.mod h1:1p8OOlwo2iUUDsHnOrjE5UKYJ+e3W8eQ3qSlRahPmr4=
+github.com/onsi/gomega v1.32.0 h1:JRYU78fJ1LPxlckP6Txi/EYqJvjtMrDC04/MM5XRHPk=
+github.com/onsi/gomega v1.32.0/go.mod h1:a4x4gW6Pz2yK1MAmvluYme5lvYTn61afQ2ETw/8n4Lg=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
@@ -430,34 +421,34 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
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.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI=
-github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk=
+github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk=
+github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/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.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
-github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
+github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
+github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
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.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
-github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=
-github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
+github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM=
+github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
-github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
-github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
+github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
+github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
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-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
-github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
+github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
@@ -525,29 +516,30 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU=
go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4=
+go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA=
+go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw=
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
-go.etcd.io/etcd/api/v3 v3.5.9 h1:4wSsluwyTbGGmyjJktOf3wFQoTBIURXHnq9n/G/JQHs=
-go.etcd.io/etcd/api/v3 v3.5.9/go.mod h1:uyAal843mC8uUVSLWz6eHa/d971iDGnCRpmKd2Z+X8k=
+go.etcd.io/etcd/api/v3 v3.5.10 h1:szRajuUUbLyppkhs9K6BRtjY37l66XQQmw7oZRANE4k=
+go.etcd.io/etcd/api/v3 v3.5.10/go.mod h1:TidfmT4Uycad3NM/o25fG3J07odo4GBB9hoxaodFCtI=
go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
-go.etcd.io/etcd/client/pkg/v3 v3.5.9 h1:oidDC4+YEuSIQbsR94rY9gur91UPL6DnxDCIYd2IGsE=
-go.etcd.io/etcd/client/pkg/v3 v3.5.9/go.mod h1:y+CzeSmkMpWN2Jyu1npecjB9BBnABxGM4pN8cGuJeL4=
+go.etcd.io/etcd/client/pkg/v3 v3.5.10 h1:kfYIdQftBnbAq8pUWFXfpuuxFSKzlmM5cSn76JByiT0=
+go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U=
go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
-go.etcd.io/etcd/client/v2 v2.305.7 h1:AELPkjNR3/igjbO7CjyF1fPuVPjrblliiKj+Y6xSGOU=
-go.etcd.io/etcd/client/v2 v2.305.7/go.mod h1:GQGT5Z3TBuAQGvgPfhR7VPySu/SudxmEkRq9BgzFU6s=
+go.etcd.io/etcd/client/v2 v2.305.10 h1:MrmRktzv/XF8CvtQt+P6wLUlURaNpSDJHFZhe//2QE4=
+go.etcd.io/etcd/client/v2 v2.305.10/go.mod h1:m3CKZi69HzilhVqtPDcjhSGp+kA1OmbNn0qamH80xjA=
go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0=
-go.etcd.io/etcd/client/v3 v3.5.9 h1:r5xghnU7CwbUxD/fbUtRyJGaYNfDun8sp/gTr1hew6E=
-go.etcd.io/etcd/client/v3 v3.5.9/go.mod h1:i/Eo5LrZ5IKqpbtpPDuaUnDOUv471oDg8cjQaUr2MbA=
+go.etcd.io/etcd/client/v3 v3.5.10 h1:W9TXNZ+oB3MCd/8UjxHTWK5J9Nquw9fQBLJd5ne5/Ao=
+go.etcd.io/etcd/client/v3 v3.5.10/go.mod h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc=
go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE=
-go.etcd.io/etcd/pkg/v3 v3.5.7 h1:obOzeVwerFwZ9trMWapU/VjDcYUJb5OfgC1zqEGWO/0=
-go.etcd.io/etcd/pkg/v3 v3.5.7/go.mod h1:kcOfWt3Ov9zgYdOiJ/o1Y9zFfLhQjylTgL4Lru8opRo=
+go.etcd.io/etcd/pkg/v3 v3.5.10 h1:WPR8K0e9kWl1gAhB5A7gEa5ZBTNkT9NdNWrR8Qpo1CM=
+go.etcd.io/etcd/pkg/v3 v3.5.10/go.mod h1:TKTuCKKcF1zxmfKWDkfz5qqYaE3JncKKZPFf8c1nFUs=
go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc=
-go.etcd.io/etcd/raft/v3 v3.5.7 h1:aN79qxLmV3SvIq84aNTliYGmjwsW6NqJSnqmI1HLJKc=
-go.etcd.io/etcd/raft/v3 v3.5.7/go.mod h1:TflkAb/8Uy6JFBxcRaH2Fr6Slm9mCPVdI2efzxY96yU=
+go.etcd.io/etcd/raft/v3 v3.5.10 h1:cgNAYe7xrsrn/5kXMSaH8kM/Ky8mAdMqGOxyYwpP0LA=
+go.etcd.io/etcd/raft/v3 v3.5.10/go.mod h1:odD6kr8XQXTy9oQnyMPBOr0TVe+gT0neQhElQ6jbGRc=
go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4=
-go.etcd.io/etcd/server/v3 v3.5.7 h1:BTBD8IJUV7YFgsczZMHhMTS67XuA4KpRquL0MFOJGRk=
-go.etcd.io/etcd/server/v3 v3.5.7/go.mod h1:gxBgT84issUVBRpZ3XkW1T55NjOb4vZZRI4wVvNhf4A=
+go.etcd.io/etcd/server/v3 v3.5.10 h1:4NOGyOwD5sUZ22PiWYKmfxqoeh72z6EhYjNosKGLmZg=
+go.etcd.io/etcd/server/v3 v3.5.10/go.mod h1:gBplPHfs6YI0L+RpGkTQO7buDbHv5HJGG/Bst0/zIPo=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -555,50 +547,47 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 h1:xFSRQBbXF6VvYRf2lqMJXxoB72XI1K/azav8TekHHSw=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0/go.mod h1:h8TWwRAhQpOd0aM5nYsRD8+flnkj+526GEIVlarH7eY=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0 h1:ZOLJc06r4CB42laIXg/7udr0pbZyuAihN10A/XuiQRY=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0/go.mod h1:5z+/ZWJQKXa9YT34fQNx5K8Hd1EoIhvtUygUQPqEOgQ=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.1 h1:sxoY9kG1s1WpSYNyzm24rlwH4lnRYFXUVVBmKMBfRgw=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.1/go.mod h1:9NiG9I2aHTKkcxqCILhjtyNA1QEiCjdBACv4IvrFQ+c=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0 h1:KfYpVmrjI7JuToy5k8XV3nkapjWx48k4E4JOtVstzQI=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0/go.mod h1:SeQhzAEccGVZVEy7aH87Nh0km+utSpo1pTv6eMMop48=
go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
-go.opentelemetry.io/otel v1.10.0 h1:Y7DTJMR6zs1xkS/upamJYk0SxxN4C9AqRd77jmZnyY4=
-go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ=
+go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs=
+go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY=
go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 h1:TaB+1rQhddO1sF71MpZOZAuSPW1klK2M8XxfrBMfK7Y=
-go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 h1:pDDYmo0QadUPal5fwXoY1pmMpFcdyhXOmL5drCrI3vU=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0/go.mod h1:Krqnjl22jUJ0HgMzw5eveuCvFDXY4nSYb4F8t5gdrag=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 h1:KtiUEhQmj/Pa874bVYKGNVdq8NPKiacPbaRRtgXi+t4=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0/go.mod h1:OfUCyyIiDvNXHWpcWgbF+MWvqPZiNa3YDEnivcnYsV0=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 h1:3d+S281UTjM+AbF31XSOYn1qXn3BgIdWl8HNEpx08Jk=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0/go.mod h1:0+KuTDyKL4gjKCF75pHOX4wuzYDUZYfAQdSu43o+Z2I=
go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU=
-go.opentelemetry.io/otel/metric v0.31.0 h1:6SiklT+gfWAwWUR0meEMxQBtihpiEs4c+vL9spDTqUs=
-go.opentelemetry.io/otel/metric v0.31.0/go.mod h1:ohmwj9KTSIeBnDBm/ZwH2PSZxZzoOaG2xZeekTRzL5A=
+go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE=
+go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8=
go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw=
go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc=
-go.opentelemetry.io/otel/sdk v1.10.0 h1:jZ6K7sVn04kk/3DNUdJ4mqRlGDiXAVuIG+MMENpTNdY=
-go.opentelemetry.io/otel/sdk v1.10.0/go.mod h1:vO06iKzD5baltJz1zarxMCNHFpUlUiOy4s65ECtn6kE=
+go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o=
+go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE=
go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE=
go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
-go.opentelemetry.io/otel/trace v1.10.0 h1:npQMbR8o7mum8uF95yFbOEJffhs1sbCOfDh8zAJiH5E=
-go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM=
+go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg=
+go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
-go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw=
-go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
+go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
+go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
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.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
-go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
+go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
+go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
+go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
-go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
-go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
+go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
+go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -618,6 +607,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
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-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
+golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
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-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -637,8 +628,8 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
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.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
-golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8=
+golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
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=
@@ -683,9 +674,8 @@ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4Iltr
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/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.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8=
-golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
+golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4=
+golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4=
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=
@@ -696,8 +686,8 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/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.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
-golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
+golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
+golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
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=
@@ -750,7 +740,6 @@ golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBc
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-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.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
@@ -812,14 +801,14 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss=
-golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM=
+golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ=
+golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg=
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=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gomodules.xyz/jsonpatch/v2 v2.3.0 h1:8NFhfS6gzxNqjLIYnZxg319wZ5Qjnx4m/CcX+Klzazc=
-gomodules.xyz/jsonpatch/v2 v2.3.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
+gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
+gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
@@ -864,13 +853,12 @@ google.golang.org/genproto v0.0.0-20200626011028-ee7919e894b5/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/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-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
-google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g=
-google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0=
-google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw=
-google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
+google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 h1:L6iMMGrtzgHsWofoFcihmDEMYeDR9KN/ThbPWGrh++g=
+google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8=
+google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e h1:z3vDksarJxsAKM5dmEGv0GHwE2hKJ096wZra71Vs4sw=
+google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -887,8 +875,6 @@ google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG
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.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ=
google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
@@ -903,7 +889,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
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.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
@@ -919,8 +904,9 @@ 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.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
-gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
+gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
+gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
@@ -948,60 +934,60 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
k8s.io/api v0.22.2/go.mod h1:y3ydYpLJAaDI+BbSe2xmGcqxiWHmWjkEeIbiwHvnPR8=
k8s.io/api v0.22.17/go.mod h1:6qVojJ3y+qIq7JSMwTH0BcPHl3dch4HefIC+4nguZhs=
-k8s.io/api v0.27.7 h1:7yG4D3t/q4utJe2ptlRw9aPuxcSmroTsYxsofkQNl/A=
-k8s.io/api v0.27.7/go.mod h1:ZNExI/Lhrs9YrLgVWx6jjHZdoWCTXfBXuFjt1X6olro=
+k8s.io/api v0.30.1 h1:kCm/6mADMdbAxmIh0LBjS54nQBE+U4KmbCfIkF5CpJY=
+k8s.io/api v0.30.1/go.mod h1:ddbN2C0+0DIiPntan/bye3SW3PdwLa11/0yqwvuRrJM=
k8s.io/apiextensions-apiserver v0.22.2/go.mod h1:2E0Ve/isxNl7tWLSUDgi6+cmwHi5fQRdwGVCxbC+KFA=
-k8s.io/apiextensions-apiserver v0.27.7 h1:YqIOwZAUokzxJIjunmUd4zS1v3JhK34EPXn+pP0/bsU=
-k8s.io/apiextensions-apiserver v0.27.7/go.mod h1:x0p+b5a955lfPz9gaDeBy43obM12s+N9dNHK6+dUL+g=
+k8s.io/apiextensions-apiserver v0.30.1 h1:4fAJZ9985BmpJG6PkoxVRpXv9vmPUOVzl614xarePws=
+k8s.io/apiextensions-apiserver v0.30.1/go.mod h1:R4GuSrlhgq43oRY9sF2IToFh7PVlF1JjfWdoG3pixk4=
k8s.io/apimachinery v0.22.2/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0=
k8s.io/apimachinery v0.22.17/go.mod h1:ZvVLP5iLhwVFg2Yx9Gh5W0um0DUauExbRhe+2Z8I1EU=
-k8s.io/apimachinery v0.27.7 h1:Gxgtb7Y/Rsu8ymgmUEaiErkxa6RY4oTd8kNUI6SUR58=
-k8s.io/apimachinery v0.27.7/go.mod h1:jBGQgTjkw99ef6q5hv1YurDd3BqKDk9YRxmX0Ozo0i8=
+k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U=
+k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
k8s.io/apiserver v0.22.2/go.mod h1:vrpMmbyjWrgdyOvZTSpsusQq5iigKNWv9o9KlDAbBHI=
k8s.io/apiserver v0.22.17/go.mod h1:zNXYCtXZ91AkmIUZgQ8lT9vdlDqgSkokJpds/F6DdGU=
-k8s.io/apiserver v0.27.7 h1:E8sDHwfUug82YC1++qvE73QxihaXDqT4tr8XYBOEtc4=
-k8s.io/apiserver v0.27.7/go.mod h1:OrLG9RwCOerutAlo8QJW5EHzUG9Dad7k6rgcDUNSO/w=
+k8s.io/apiserver v0.30.1 h1:BEWEe8bzS12nMtDKXzCF5Q5ovp6LjjYkSp8qOPk8LZ8=
+k8s.io/apiserver v0.30.1/go.mod h1:i87ZnQ+/PGAmSbD/iEKM68bm1D5reX8fO4Ito4B01mo=
k8s.io/client-go v0.22.2/go.mod h1:sAlhrkVDf50ZHx6z4K0S40wISNTarf1r800F+RlCF6U=
k8s.io/client-go v0.22.17/go.mod h1:SQPVpN+E/5Q/aSV7fYDT8VKVdaljhxI/t/84ADVJoC4=
-k8s.io/client-go v0.27.7 h1:+Xgh9OOKv6A3qdD4Dnl/0VOI5EvAv+0s/OseDxVVTwQ=
-k8s.io/client-go v0.27.7/go.mod h1:dZ2kqcalYp5YZ2EV12XIMc77G6PxHWOJp/kclZr4+5Q=
+k8s.io/client-go v0.30.1 h1:uC/Ir6A3R46wdkgCV3vbLyNOYyCJ8oZnjtJGKfytl/Q=
+k8s.io/client-go v0.30.1/go.mod h1:wrAqLNs2trwiCH/wxxmT/x3hKVH9PuV0GGW0oDoHVqc=
k8s.io/code-generator v0.22.2/go.mod h1:eV77Y09IopzeXOJzndrDyCI88UBok2h6WxAlBwpxa+o=
k8s.io/code-generator v0.22.17/go.mod h1:iOZwYADSgFPNGWfqHFfg1V0TNJnl1t0WyZluQp4baqU=
-k8s.io/code-generator v0.27.7 h1:cbMN3+QxMHrQG1rYQOiNEqoLTRnqBW50pjPHgFCFe94=
-k8s.io/code-generator v0.27.7/go.mod h1:w1YF/xQcTg+d9Ag+04xuRqER+q8rDnJ70ynLql8/RLA=
+k8s.io/code-generator v0.30.1 h1:ZsG++q5Vt0ScmKCeLhynUuWgcwFGg1Hl1AGfatqPJBI=
+k8s.io/code-generator v0.30.1/go.mod h1:hFgxRsvOUg79mbpbVKfjJvRhVz1qLoe40yZDJ/hwRH4=
k8s.io/component-base v0.22.2/go.mod h1:5Br2QhI9OTe79p+TzPe9JKNQYvEKbq9rTJDWllunGug=
k8s.io/component-base v0.22.17/go.mod h1:Mrcvmxs+Ctx/xCYGWoFAvfZO9DC4gDgLtUbPJ4PjjUE=
-k8s.io/component-base v0.27.7 h1:kngM58HR9W9Nqpv7e4rpdRyWnKl/ABpUhLAZ+HoliMs=
-k8s.io/component-base v0.27.7/go.mod h1:YGjlCVL1oeKvG3HSciyPHFh+LCjIEqsxz4BDR3cfHRs=
+k8s.io/component-base v0.30.1 h1:bvAtlPh1UrdaZL20D9+sWxsJljMi0QZ3Lmw+kmZAaxQ=
+k8s.io/component-base v0.30.1/go.mod h1:e/X9kDiOebwlI41AvBHuWdqFriSRrX50CdwA9TFaHLI=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/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/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo=
+k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8=
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.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
-k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
-k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
-k8s.io/kms v0.27.7 h1:3iB92lQIH4uEz0V+wQAXvAsgIDhmXg/8lCu01FCjtqI=
-k8s.io/kms v0.27.7/go.mod h1:JspOc8g6+cDlZfgW5GqnHS+OV6tAVyg4iXytCrqfNPw=
+k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw=
+k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
+k8s.io/kms v0.30.1 h1:gEIbEeCbFiaN2tNfp/EUhFdGr5/CSj8Eyq6Mkr7cCiY=
+k8s.io/kms v0.30.1/go.mod h1:GrMurD0qk3G4yNgGcsCEmepqf9KyyIrTXYR2lyUOJC4=
k8s.io/kube-aggregator v0.22.17 h1:E8T1McXbB31Z7L71nR8/lMtWS01bhOE7AF8TF/sqDHw=
k8s.io/kube-aggregator v0.22.17/go.mod h1:J557nueFVurHA1JiDrxT1HlgygNQ+2exsTVUXiz2T7k=
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
-k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg=
-k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg=
+k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
+k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/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-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
-k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
+k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.30/go.mod h1:fEO7lRTdivWO2qYVCVG7dEADOMo/MLDCVr8So2g88Uw=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2 h1:trsWhjU5jZrx6UvFu4WzQDrN7Pga4a7Qg+zcfcj64PA=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2/go.mod h1:+qG7ISXqCDVVcyO8hLn12AKVYYUjM7ftlqsqmrhMZE0=
-sigs.k8s.io/controller-runtime v0.15.3 h1:L+t5heIaI3zeejoIyyvLQs5vTVu/67IU2FfisVzFlBc=
-sigs.k8s.io/controller-runtime v0.15.3/go.mod h1:kp4jckA4vTx281S/0Yk2LFEEQe67mjg+ev/yknv47Ds=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 h1:/U5vjBbQn3RChhv7P11uhYvCSm5G2GaIi5AIGBS6r4c=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0/go.mod h1:z7+wmGM2dfIiLRfrC6jb5kV2Mq/sK1ZP303cxzkV5Y4=
+sigs.k8s.io/controller-runtime v0.18.5 h1:nTHio/W+Q4aBlQMgbnC5hZb4IjIidyrizMai9P6n4Rk=
+sigs.k8s.io/controller-runtime v0.18.5/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg=
sigs.k8s.io/controller-tools v0.7.0 h1:iZIz1vEcavyEfxjcTLs1WH/MPf4vhPCtTKhoHqV8/G0=
sigs.k8s.io/controller-tools v0.7.0/go.mod h1:bpBAo0VcSDDLuWt47evLhMLPxRPxMDInTEH/YbdeMK0=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
@@ -1009,8 +995,8 @@ sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h6
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
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/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
diff --git a/hack/deploy.sh b/hack/deploy.sh
index cdae77a99..eb9869081 100755
--- a/hack/deploy.sh
+++ b/hack/deploy.sh
@@ -5,7 +5,8 @@ set -e
# makes the get_kappctrl_ver function available (scrapes version from git tag)
source $(dirname "$0")/version-util.sh
-./hack/build.sh && ytt -f config/config -f config/values-schema.yml -f config-dev -v dev.version="$(get_kappctrl_ver)+develop" | kbld -f- | kapp deploy -a kc -f- -c -y
+# ./hack/build.sh && ytt -f config/config -f config/values-schema.yml -f config-dev -v dev.version="$(get_kappctrl_ver)+develop" | kbld -f- | kapp deploy -a kc -f- -c -y
+./hack/build.sh && ytt -f config/config -f config/values-schema.yml -f config-dev -v dev.version="$(get_kappctrl_ver)+develop" | kbld -f- > output.yml
source ./hack/secretgen-controller.sh
deploy_secretgen-controller
diff --git a/kc.yml b/kc.yml
new file mode 100644
index 000000000..a4ed62312
--- /dev/null
+++ b/kc.yml
@@ -0,0 +1,2346 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: kapp-controller
+---
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: kapp-controller-packaging-global
+---
+apiVersion: apiregistration.k8s.io/v1
+kind: APIService
+metadata:
+ name: v1alpha1.data.packaging.carvel.dev
+spec:
+ group: data.packaging.carvel.dev
+ groupPriorityMinimum: 100
+ version: v1alpha1
+ versionPriority: 100
+ service:
+ name: packaging-api
+ namespace: kapp-controller
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: packaging-api
+ namespace: kapp-controller
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: api
+ name: main
+ - port: 8080
+ protocol: TCP
+ targetPort: metrics
+ name: metrics
+ selector:
+ app: kapp-controller
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: internalpackagemetadatas.internal.packaging.carvel.dev
+spec:
+ group: internal.packaging.carvel.dev
+ names:
+ kind: InternalPackageMetadata
+ listKind: InternalPackageMetadataList
+ plural: internalpackagemetadatas
+ singular: internalpackagemetadata
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ categories:
+ description: Classifiers of the package (optional; Array of strings)
+ items:
+ type: string
+ type: array
+ displayName:
+ description: Human friendly name of the package (optional; string)
+ type: string
+ iconSVGBase64:
+ description: Base64 encoded icon (optional; string)
+ type: string
+ longDescription:
+ description: Long description of the package (optional; string)
+ type: string
+ maintainers:
+ description: List of maintainer info for the package. Currently only supports the name key. (optional; array of maintner info)
+ items:
+ properties:
+ name:
+ type: string
+ type: object
+ type: array
+ providerName:
+ description: Name of the entity distributing the package (optional; string)
+ type: string
+ shortDescription:
+ description: Short desription of the package (optional; string)
+ type: string
+ supportDescription:
+ description: Description of the support available for the package (optional; string)
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: internalpackages.internal.packaging.carvel.dev
+spec:
+ group: internal.packaging.carvel.dev
+ names:
+ kind: InternalPackage
+ listKind: InternalPackageList
+ plural: internalpackages
+ singular: internalpackage
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ capacityRequirementsDescription:
+ description: 'System requirements needed to install the package. Note: these requirements will not be verified by kapp-controller on installation. (optional; string)'
+ type: string
+ includedSoftware:
+ description: IncludedSoftware can be used to show the software contents of a Package. This is especially useful if the underlying versions do not match the Package version
+ items:
+ description: IncludedSoftware contains the underlying Software Contents of a Package
+ properties:
+ description:
+ type: string
+ displayName:
+ type: string
+ version:
+ type: string
+ type: object
+ type: array
+ kappControllerVersionSelection:
+ description: KappControllerVersionSelection specifies the versions of kapp-controller which can install this package
+ properties:
+ constraints:
+ type: string
+ type: object
+ kubernetesVersionSelection:
+ description: KubernetesVersionSelection specifies the versions of k8s which this package can be installed on
+ properties:
+ constraints:
+ type: string
+ type: object
+ licenses:
+ description: Description of the licenses that apply to the package software (optional; Array of strings)
+ items:
+ type: string
+ type: array
+ refName:
+ description: The name of the PackageMetadata associated with this version Must be a valid PackageMetadata name (see PackageMetadata CR for details) Cannot be empty
+ type: string
+ releaseNotes:
+ description: Version release notes (optional; string)
+ type: string
+ releasedAt:
+ description: Timestamp of release (iso8601 formatted string; optional)
+ format: date-time
+ nullable: true
+ type: string
+ template:
+ properties:
+ spec:
+ properties:
+ canceled:
+ description: Cancels current and future reconciliations (optional; default=false)
+ type: boolean
+ cluster:
+ description: Specifies that app should be deployed to destination cluster; by default, cluster is same as where this resource resides (optional; v0.5.0+)
+ properties:
+ kubeconfigSecretRef:
+ description: Specifies secret containing kubeconfig (required)
+ properties:
+ key:
+ description: Specifies key that contains kubeconfig (optional)
+ type: string
+ name:
+ description: Specifies secret name within app's namespace (required)
+ type: string
+ type: object
+ namespace:
+ description: Specifies namespace in destination cluster (optional)
+ type: string
+ type: object
+ defaultNamespace:
+ description: Specifies the default namespace to install the App resources, by default this is same as the App's namespace (optional; v0.48.0+)
+ type: string
+ deploy:
+ items:
+ properties:
+ kapp:
+ description: Use kapp to deploy resources
+ properties:
+ delete:
+ description: Configuration for delete command (optional)
+ properties:
+ rawOptions:
+ description: Pass through options to kapp delete (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ inspect:
+ description: 'Configuration for inspect command (optional) as of kapp-controller v0.31.0, inspect is disabled by default add rawOptions or use an empty inspect config like `inspect: {}` to enable'
+ properties:
+ rawOptions:
+ description: Pass through options to kapp inspect (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ intoNs:
+ description: Override namespace for all resources (optional)
+ type: string
+ mapNs:
+ description: Provide custom namespace override mapping (optional)
+ items:
+ type: string
+ type: array
+ rawOptions:
+ description: Pass through options to kapp deploy (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: array
+ fetch:
+ items:
+ properties:
+ git:
+ description: Uses git to clone repository
+ properties:
+ depth:
+ description: depth of commits to fetch; 1 (default) means only latest commit, 0 means everything (optional)
+ format: int64
+ type: integer
+ forceHTTPBasicAuth:
+ description: Force the usage of HTTP Basic Auth when Basic Auth is provided (optional)
+ type: boolean
+ lfsSkipSmudge:
+ description: Skip lfs download (optional)
+ type: boolean
+ ref:
+ description: Branch, tag, commit; origin is the name of the remote (optional)
+ type: string
+ refSelection:
+ description: Specifies a strategy to resolve to an explicit ref (optional; v0.24.0+)
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ secretRef:
+ description: 'Secret with auth details. allowed keys: ssh-privatekey, ssh-knownhosts, username, password (optional) (if ssh-knownhosts is not specified, git will not perform strict host checking)'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of repository (optional)
+ type: string
+ url:
+ description: http or ssh urls are supported (required)
+ type: string
+ type: object
+ helmChart:
+ description: Uses helm fetch to fetch specified chart
+ properties:
+ name:
+ description: 'Example: stable/redis'
+ type: string
+ repository:
+ properties:
+ secretRef:
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ url:
+ description: Repository url; scheme of oci:// will fetch experimental helm oci chart (v0.19.0+) (required)
+ type: string
+ type: object
+ version:
+ type: string
+ type: object
+ http:
+ description: Uses http library to fetch file
+ properties:
+ secretRef:
+ description: 'Secret to provide auth details (optional) Secret may include one or more keys: username, password'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ sha256:
+ description: Checksum to verify after download (optional)
+ type: string
+ subPath:
+ description: Grab only portion of download (optional)
+ type: string
+ url:
+ description: 'URL can point to one of following formats: text, tgz, zip http and https url are supported; plain file, tgz and tar types are supported (required)'
+ type: string
+ type: object
+ image:
+ description: Pulls content from Docker/OCI registry
+ properties:
+ secretRef:
+ description: 'Secret may include one or more keys: username, password, token. By default anonymous access is used for authentication.'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of image (optional)
+ type: string
+ tagSelection:
+ description: Specifies a strategy to choose a tag (optional; v0.24.0+) if specified, do not include a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ url:
+ description: 'Docker image url; unqualified, tagged, or digest references supported (required) Example: username/app1-config:v0.1.0'
+ type: string
+ type: object
+ imgpkgBundle:
+ description: Pulls imgpkg bundle from Docker/OCI registry (v0.17.0+)
+ properties:
+ image:
+ description: Docker image url; unqualified, tagged, or digest references supported (required)
+ type: string
+ secretRef:
+ description: 'Secret may include one or more keys: username, password, token. By default anonymous access is used for authentication.'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ tagSelection:
+ description: Specifies a strategy to choose a tag (optional; v0.24.0+) if specified, do not include a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ type: object
+ inline:
+ description: Pulls content from within this resource; or other resources in the cluster
+ properties:
+ paths:
+ additionalProperties:
+ type: string
+ description: Specifies mapping of paths to their content; not recommended for sensitive values as CR is not encrypted (optional)
+ type: object
+ pathsFrom:
+ description: Specifies content via secrets and config maps; data values are recommended to be placed in secrets (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ secretRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ path:
+ description: Relative path to place the fetched artifacts
+ type: string
+ type: object
+ type: array
+ noopDelete:
+ description: Deletion requests for the App will result in the App CR being deleted, but its associated resources will not be deleted (optional; default=false; v0.18.0+)
+ type: boolean
+ paused:
+ description: Pauses _future_ reconciliation; does _not_ affect currently running reconciliation (optional; default=false)
+ type: boolean
+ serviceAccountName:
+ description: Specifies that app should be deployed authenticated via given service account, found in this namespace (optional; v0.6.0+)
+ type: string
+ syncPeriod:
+ description: Specifies the length of time to wait, in time + unit format, before reconciling. Always >= 30s. If value below 30s is specified, 30s will be used. (optional; v0.9.0+; default=30s)
+ type: string
+ template:
+ items:
+ properties:
+ cue:
+ properties:
+ inputExpression:
+ description: Cue expression for single path component, can be used to unify ValuesFrom into a given field (optional)
+ type: string
+ outputExpression:
+ description: Cue expression to output, default will export all visible fields (optional)
+ type: string
+ paths:
+ description: Explicit list of files/directories (optional)
+ items:
+ type: string
+ type: array
+ valuesFrom:
+ description: Provide values (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects a field of the app: only annotations, labels, uid, name and namespace are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running KappController version, defaults (empty) to retrieving the current running version.. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running KubernetesAPIs from cluster, defaults (empty) to retrieving the APIs from the cluster. Can be manually supplied instead, e.g ["group/version", "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running Kubernetes version from cluster, defaults (empty) to retrieving the version from the cluster. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ helmTemplate:
+ description: Use helm template command to render helm chart
+ properties:
+ kubernetesAPIs:
+ description: 'Optional: Use kubernetes group/versions resources available in the live cluster'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get Kubernetes version, defaults (empty) to retrieving the version from the cluster. Can be manually overridden to a value instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ description: Set name explicitly, default is App CR's name (optional; v0.13.0+)
+ type: string
+ namespace:
+ description: Set namespace explicitly, default is App CR's namespace (optional; v0.13.0+)
+ type: string
+ path:
+ description: Path to chart (optional; v0.13.0+)
+ type: string
+ valuesFrom:
+ description: One or more secrets, config maps, paths that provide values (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects a field of the app: only annotations, labels, uid, name and namespace are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running KappController version, defaults (empty) to retrieving the current running version.. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running KubernetesAPIs from cluster, defaults (empty) to retrieving the APIs from the cluster. Can be manually supplied instead, e.g ["group/version", "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running Kubernetes version from cluster, defaults (empty) to retrieving the version from the cluster. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ jsonnet:
+ description: TODO implement jsonnet
+ type: object
+ kbld:
+ description: Use kbld to resolve image references to use digests
+ properties:
+ paths:
+ items:
+ type: string
+ type: array
+ type: object
+ kustomize:
+ description: TODO implement kustomize
+ type: object
+ sops:
+ description: Use sops to decrypt *.sops.yml files (optional; v0.11.0+)
+ properties:
+ age:
+ properties:
+ privateKeysSecretRef:
+ description: Secret with private armored PGP private keys (required)
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ paths:
+ description: Lists paths to decrypt explicitly (optional; v0.13.0+)
+ items:
+ type: string
+ type: array
+ pgp:
+ description: Use PGP to decrypt files (required)
+ properties:
+ privateKeysSecretRef:
+ description: Secret with private armored PGP private keys (required)
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: object
+ ytt:
+ description: Use ytt to template configuration
+ properties:
+ fileMarks:
+ description: Control metadata about input files passed to ytt (optional; v0.18.0+) see https://carvel.dev/ytt/docs/latest/file-marks/ for more details
+ items:
+ type: string
+ type: array
+ ignoreUnknownComments:
+ description: Ignores comments that ytt doesn't recognize (optional; default=false)
+ type: boolean
+ inline:
+ description: Specify additional files, including data values (optional)
+ properties:
+ paths:
+ additionalProperties:
+ type: string
+ description: Specifies mapping of paths to their content; not recommended for sensitive values as CR is not encrypted (optional)
+ type: object
+ pathsFrom:
+ description: Specifies content via secrets and config maps; data values are recommended to be placed in secrets (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ secretRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ paths:
+ description: Lists paths to provide to ytt explicitly (optional)
+ items:
+ type: string
+ type: array
+ strict:
+ description: Forces strict mode https://github.com/k14s/ytt/blob/develop/docs/strict.md (optional; default=false)
+ type: boolean
+ valuesFrom:
+ description: Provide values via ytt's --data-values-file (optional; v0.19.0-alpha.9)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects a field of the app: only annotations, labels, uid, name and namespace are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running KappController version, defaults (empty) to retrieving the current running version.. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running KubernetesAPIs from cluster, defaults (empty) to retrieving the APIs from the cluster. Can be manually supplied instead, e.g ["group/version", "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running Kubernetes version from cluster, defaults (empty) to retrieving the version from the cluster. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ type: object
+ type: array
+ type: object
+ required:
+ - spec
+ type: object
+ valuesSchema:
+ description: valuesSchema can be used to show template values that can be configured by users when a Package is installed in an OpenAPI schema format.
+ properties:
+ openAPIv3:
+ nullable: true
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ version:
+ description: Package version; Referenced by PackageInstall; Must be valid semver (required) Cannot be empty
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: apps.kappctrl.k14s.io
+spec:
+ group: kappctrl.k14s.io
+ names:
+ categories:
+ - carvel
+ kind: App
+ listKind: AppList
+ plural: apps
+ singular: app
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - description: Friendly description
+ jsonPath: .status.friendlyDescription
+ name: Description
+ type: string
+ - description: Last time app started being deployed. Does not mean anything was changed.
+ jsonPath: .status.deploy.startedAt
+ name: Since-Deploy
+ type: date
+ - description: Time since creation
+ jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: 'An App is a set of Kubernetes resources. These resources could span any number of namespaces or could be cluster-wide (e.g. CRDs). An App is represented in kapp-controller using a App CR. The App CR comprises of three main sections: spec.fetch – declare source for fetching configuration and OCI images spec.template – declare templating tool and values spec.deploy – declare deployment tool and any deploy specific configuration'
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ canceled:
+ description: Cancels current and future reconciliations (optional; default=false)
+ type: boolean
+ cluster:
+ description: Specifies that app should be deployed to destination cluster; by default, cluster is same as where this resource resides (optional; v0.5.0+)
+ properties:
+ kubeconfigSecretRef:
+ description: Specifies secret containing kubeconfig (required)
+ properties:
+ key:
+ description: Specifies key that contains kubeconfig (optional)
+ type: string
+ name:
+ description: Specifies secret name within app's namespace (required)
+ type: string
+ type: object
+ namespace:
+ description: Specifies namespace in destination cluster (optional)
+ type: string
+ type: object
+ defaultNamespace:
+ description: Specifies the default namespace to install the App resources, by default this is same as the App's namespace (optional; v0.48.0+)
+ type: string
+ deploy:
+ items:
+ properties:
+ kapp:
+ description: Use kapp to deploy resources
+ properties:
+ delete:
+ description: Configuration for delete command (optional)
+ properties:
+ rawOptions:
+ description: Pass through options to kapp delete (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ inspect:
+ description: 'Configuration for inspect command (optional) as of kapp-controller v0.31.0, inspect is disabled by default add rawOptions or use an empty inspect config like `inspect: {}` to enable'
+ properties:
+ rawOptions:
+ description: Pass through options to kapp inspect (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ intoNs:
+ description: Override namespace for all resources (optional)
+ type: string
+ mapNs:
+ description: Provide custom namespace override mapping (optional)
+ items:
+ type: string
+ type: array
+ rawOptions:
+ description: Pass through options to kapp deploy (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: array
+ fetch:
+ items:
+ properties:
+ git:
+ description: Uses git to clone repository
+ properties:
+ depth:
+ description: depth of commits to fetch; 1 (default) means only latest commit, 0 means everything (optional)
+ format: int64
+ type: integer
+ forceHTTPBasicAuth:
+ description: Force the usage of HTTP Basic Auth when Basic Auth is provided (optional)
+ type: boolean
+ lfsSkipSmudge:
+ description: Skip lfs download (optional)
+ type: boolean
+ ref:
+ description: Branch, tag, commit; origin is the name of the remote (optional)
+ type: string
+ refSelection:
+ description: Specifies a strategy to resolve to an explicit ref (optional; v0.24.0+)
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ secretRef:
+ description: 'Secret with auth details. allowed keys: ssh-privatekey, ssh-knownhosts, username, password (optional) (if ssh-knownhosts is not specified, git will not perform strict host checking)'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of repository (optional)
+ type: string
+ url:
+ description: http or ssh urls are supported (required)
+ type: string
+ type: object
+ helmChart:
+ description: Uses helm fetch to fetch specified chart
+ properties:
+ name:
+ description: 'Example: stable/redis'
+ type: string
+ repository:
+ properties:
+ secretRef:
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ url:
+ description: Repository url; scheme of oci:// will fetch experimental helm oci chart (v0.19.0+) (required)
+ type: string
+ type: object
+ version:
+ type: string
+ type: object
+ http:
+ description: Uses http library to fetch file
+ properties:
+ secretRef:
+ description: 'Secret to provide auth details (optional) Secret may include one or more keys: username, password'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ sha256:
+ description: Checksum to verify after download (optional)
+ type: string
+ subPath:
+ description: Grab only portion of download (optional)
+ type: string
+ url:
+ description: 'URL can point to one of following formats: text, tgz, zip http and https url are supported; plain file, tgz and tar types are supported (required)'
+ type: string
+ type: object
+ image:
+ description: Pulls content from Docker/OCI registry
+ properties:
+ secretRef:
+ description: 'Secret may include one or more keys: username, password, token. By default anonymous access is used for authentication.'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of image (optional)
+ type: string
+ tagSelection:
+ description: Specifies a strategy to choose a tag (optional; v0.24.0+) if specified, do not include a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ url:
+ description: 'Docker image url; unqualified, tagged, or digest references supported (required) Example: username/app1-config:v0.1.0'
+ type: string
+ type: object
+ imgpkgBundle:
+ description: Pulls imgpkg bundle from Docker/OCI registry (v0.17.0+)
+ properties:
+ image:
+ description: Docker image url; unqualified, tagged, or digest references supported (required)
+ type: string
+ secretRef:
+ description: 'Secret may include one or more keys: username, password, token. By default anonymous access is used for authentication.'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ tagSelection:
+ description: Specifies a strategy to choose a tag (optional; v0.24.0+) if specified, do not include a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ type: object
+ inline:
+ description: Pulls content from within this resource; or other resources in the cluster
+ properties:
+ paths:
+ additionalProperties:
+ type: string
+ description: Specifies mapping of paths to their content; not recommended for sensitive values as CR is not encrypted (optional)
+ type: object
+ pathsFrom:
+ description: Specifies content via secrets and config maps; data values are recommended to be placed in secrets (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ secretRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ path:
+ description: Relative path to place the fetched artifacts
+ type: string
+ type: object
+ type: array
+ noopDelete:
+ description: Deletion requests for the App will result in the App CR being deleted, but its associated resources will not be deleted (optional; default=false; v0.18.0+)
+ type: boolean
+ paused:
+ description: Pauses _future_ reconciliation; does _not_ affect currently running reconciliation (optional; default=false)
+ type: boolean
+ serviceAccountName:
+ description: Specifies that app should be deployed authenticated via given service account, found in this namespace (optional; v0.6.0+)
+ type: string
+ syncPeriod:
+ description: Specifies the length of time to wait, in time + unit format, before reconciling. Always >= 30s. If value below 30s is specified, 30s will be used. (optional; v0.9.0+; default=30s)
+ type: string
+ template:
+ items:
+ properties:
+ cue:
+ properties:
+ inputExpression:
+ description: Cue expression for single path component, can be used to unify ValuesFrom into a given field (optional)
+ type: string
+ outputExpression:
+ description: Cue expression to output, default will export all visible fields (optional)
+ type: string
+ paths:
+ description: Explicit list of files/directories (optional)
+ items:
+ type: string
+ type: array
+ valuesFrom:
+ description: Provide values (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects a field of the app: only annotations, labels, uid, name and namespace are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running KappController version, defaults (empty) to retrieving the current running version.. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running KubernetesAPIs from cluster, defaults (empty) to retrieving the APIs from the cluster. Can be manually supplied instead, e.g ["group/version", "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running Kubernetes version from cluster, defaults (empty) to retrieving the version from the cluster. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ helmTemplate:
+ description: Use helm template command to render helm chart
+ properties:
+ kubernetesAPIs:
+ description: 'Optional: Use kubernetes group/versions resources available in the live cluster'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get Kubernetes version, defaults (empty) to retrieving the version from the cluster. Can be manually overridden to a value instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ description: Set name explicitly, default is App CR's name (optional; v0.13.0+)
+ type: string
+ namespace:
+ description: Set namespace explicitly, default is App CR's namespace (optional; v0.13.0+)
+ type: string
+ path:
+ description: Path to chart (optional; v0.13.0+)
+ type: string
+ valuesFrom:
+ description: One or more secrets, config maps, paths that provide values (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects a field of the app: only annotations, labels, uid, name and namespace are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running KappController version, defaults (empty) to retrieving the current running version.. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running KubernetesAPIs from cluster, defaults (empty) to retrieving the APIs from the cluster. Can be manually supplied instead, e.g ["group/version", "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running Kubernetes version from cluster, defaults (empty) to retrieving the version from the cluster. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ jsonnet:
+ description: TODO implement jsonnet
+ type: object
+ kbld:
+ description: Use kbld to resolve image references to use digests
+ properties:
+ paths:
+ items:
+ type: string
+ type: array
+ type: object
+ kustomize:
+ description: TODO implement kustomize
+ type: object
+ sops:
+ description: Use sops to decrypt *.sops.yml files (optional; v0.11.0+)
+ properties:
+ age:
+ properties:
+ privateKeysSecretRef:
+ description: Secret with private armored PGP private keys (required)
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ paths:
+ description: Lists paths to decrypt explicitly (optional; v0.13.0+)
+ items:
+ type: string
+ type: array
+ pgp:
+ description: Use PGP to decrypt files (required)
+ properties:
+ privateKeysSecretRef:
+ description: Secret with private armored PGP private keys (required)
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: object
+ ytt:
+ description: Use ytt to template configuration
+ properties:
+ fileMarks:
+ description: Control metadata about input files passed to ytt (optional; v0.18.0+) see https://carvel.dev/ytt/docs/latest/file-marks/ for more details
+ items:
+ type: string
+ type: array
+ ignoreUnknownComments:
+ description: Ignores comments that ytt doesn't recognize (optional; default=false)
+ type: boolean
+ inline:
+ description: Specify additional files, including data values (optional)
+ properties:
+ paths:
+ additionalProperties:
+ type: string
+ description: Specifies mapping of paths to their content; not recommended for sensitive values as CR is not encrypted (optional)
+ type: object
+ pathsFrom:
+ description: Specifies content via secrets and config maps; data values are recommended to be placed in secrets (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ secretRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ paths:
+ description: Lists paths to provide to ytt explicitly (optional)
+ items:
+ type: string
+ type: array
+ strict:
+ description: Forces strict mode https://github.com/k14s/ytt/blob/develop/docs/strict.md (optional; default=false)
+ type: boolean
+ valuesFrom:
+ description: Provide values via ytt's --data-values-file (optional; v0.19.0-alpha.9)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects a field of the app: only annotations, labels, uid, name and namespace are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running KappController version, defaults (empty) to retrieving the current running version.. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running KubernetesAPIs from cluster, defaults (empty) to retrieving the APIs from the cluster. Can be manually supplied instead, e.g ["group/version", "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running Kubernetes version from cluster, defaults (empty) to retrieving the version from the cluster. Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ type: object
+ type: array
+ type: object
+ status:
+ properties:
+ conditions:
+ items:
+ properties:
+ message:
+ description: Human-readable message indicating details about last transition.
+ type: string
+ reason:
+ description: Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
+ type: string
+ status:
+ type: string
+ type:
+ description: ConditionType represents reconciler state
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ consecutiveReconcileFailures:
+ type: integer
+ consecutiveReconcileSuccesses:
+ type: integer
+ deploy:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ finished:
+ type: boolean
+ kapp:
+ description: KappDeployStatus contains the associated AppCR deployed resources
+ properties:
+ associatedResources:
+ description: AssociatedResources contains the associated App label, namespaces and GKs
+ properties:
+ groupKinds:
+ items:
+ description: GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ required:
+ - group
+ - kind
+ type: object
+ type: array
+ label:
+ type: string
+ namespaces:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ startedAt:
+ format: date-time
+ type: string
+ stderr:
+ type: string
+ stdout:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ fetch:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ startedAt:
+ format: date-time
+ type: string
+ stderr:
+ type: string
+ stdout:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ friendlyDescription:
+ type: string
+ inspect:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ stderr:
+ type: string
+ stdout:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ managedAppName:
+ type: string
+ observedGeneration:
+ description: Populated based on metadata.generation when controller observes a change to the resource; if this value is out of data, other status fields do not reflect latest state
+ format: int64
+ type: integer
+ template:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ stderr:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ usefulErrorMessage:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: packageinstalls.packaging.carvel.dev
+spec:
+ group: packaging.carvel.dev
+ names:
+ categories:
+ - carvel
+ kind: PackageInstall
+ listKind: PackageInstallList
+ plural: packageinstalls
+ shortNames:
+ - pkgi
+ singular: packageinstall
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - description: PackageMetadata name
+ jsonPath: .spec.packageRef.refName
+ name: Package name
+ type: string
+ - description: PackageMetadata version
+ jsonPath: .status.version
+ name: Package version
+ type: string
+ - description: Friendly description
+ jsonPath: .status.friendlyDescription
+ name: Description
+ type: string
+ - description: Time since creation
+ jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: A Package Install is an actual installation of a package and its underlying resources on a Kubernetes cluster. It is represented in kapp-controller by a PackageInstall CR. A PackageInstall CR must reference a Package CR.
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ canceled:
+ description: Canceled when set to true will stop all active changes
+ type: boolean
+ cluster:
+ description: Specifies that Package should be deployed to destination cluster; by default, cluster is same as where this resource resides (optional)
+ properties:
+ kubeconfigSecretRef:
+ description: Specifies secret containing kubeconfig (required)
+ properties:
+ key:
+ description: Specifies key that contains kubeconfig (optional)
+ type: string
+ name:
+ description: Specifies secret name within app's namespace (required)
+ type: string
+ type: object
+ namespace:
+ description: Specifies namespace in destination cluster (optional)
+ type: string
+ type: object
+ defaultNamespace:
+ description: Specifies the default namespace to install the Package resources, by default this is same as the PackageInstall namespace (optional; v0.48.0+)
+ type: string
+ noopDelete:
+ description: When NoopDelete set to true, PackageInstall deletion should delete PackageInstall/App CR but preserve App's associated resources.
+ type: boolean
+ packageRef:
+ description: Specifies the name of the package to install (required)
+ properties:
+ refName:
+ type: string
+ versionSelection:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ paused:
+ description: Paused when set to true will ignore all pending changes, once it set back to false, pending changes will be applied
+ type: boolean
+ serviceAccountName:
+ description: Specifies service account that will be used to install underlying package contents
+ type: string
+ syncPeriod:
+ description: Controls frequency of App reconciliation in time + unit format. Always >= 30s. If value below 30s is specified, 30s will be used.
+ type: string
+ values:
+ description: Values to be included in package's templating step (currently only included in the first templating step) (optional)
+ items:
+ properties:
+ secretRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ status:
+ properties:
+ conditions:
+ items:
+ properties:
+ message:
+ description: Human-readable message indicating details about last transition.
+ type: string
+ reason:
+ description: Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
+ type: string
+ status:
+ type: string
+ type:
+ description: ConditionType represents reconciler state
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ friendlyDescription:
+ type: string
+ lastAttemptedVersion:
+ description: LastAttemptedVersion specifies what version was last attempted to be installed. It does _not_ indicate it was successfully installed.
+ type: string
+ observedGeneration:
+ description: Populated based on metadata.generation when controller observes a change to the resource; if this value is out of data, other status fields do not reflect latest state
+ format: int64
+ type: integer
+ usefulErrorMessage:
+ type: string
+ version:
+ description: TODO this is desired resolved version (not actually deployed)
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: packagerepositories.packaging.carvel.dev
+ annotations:
+ packaging.carvel.dev/global-namespace: kapp-controller-packaging-global
+spec:
+ group: packaging.carvel.dev
+ names:
+ categories:
+ - carvel
+ kind: PackageRepository
+ listKind: PackageRepositoryList
+ plural: packagerepositories
+ shortNames:
+ - pkgr
+ singular: packagerepository
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - description: Time since creation
+ jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - description: Friendly description
+ jsonPath: .status.friendlyDescription
+ name: Description
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: A package repository is a collection of packages and their metadata. Similar to a maven repository or a rpm repository, adding a package repository to a cluster gives users of that cluster the ability to install any of the packages from that repository.
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ fetch:
+ properties:
+ git:
+ description: Uses git to clone repository containing package list
+ properties:
+ depth:
+ description: depth of commits to fetch; 1 (default) means only latest commit, 0 means everything (optional)
+ format: int64
+ type: integer
+ forceHTTPBasicAuth:
+ description: Force the usage of HTTP Basic Auth when Basic Auth is provided (optional)
+ type: boolean
+ lfsSkipSmudge:
+ description: Skip lfs download (optional)
+ type: boolean
+ ref:
+ description: Branch, tag, commit; origin is the name of the remote (optional)
+ type: string
+ refSelection:
+ description: Specifies a strategy to resolve to an explicit ref (optional; v0.24.0+)
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ secretRef:
+ description: 'Secret with auth details. allowed keys: ssh-privatekey, ssh-knownhosts, username, password (optional) (if ssh-knownhosts is not specified, git will not perform strict host checking)'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of repository (optional)
+ type: string
+ url:
+ description: http or ssh urls are supported (required)
+ type: string
+ type: object
+ http:
+ description: Uses http library to fetch file containing packages
+ properties:
+ secretRef:
+ description: 'Secret to provide auth details (optional) Secret may include one or more keys: username, password'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ sha256:
+ description: Checksum to verify after download (optional)
+ type: string
+ subPath:
+ description: Grab only portion of download (optional)
+ type: string
+ url:
+ description: 'URL can point to one of following formats: text, tgz, zip http and https url are supported; plain file, tgz and tar types are supported (required)'
+ type: string
+ type: object
+ image:
+ description: Image url; unqualified, tagged, or digest references supported (required)
+ properties:
+ secretRef:
+ description: 'Secret may include one or more keys: username, password, token. By default anonymous access is used for authentication.'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of image (optional)
+ type: string
+ tagSelection:
+ description: Specifies a strategy to choose a tag (optional; v0.24.0+) if specified, do not include a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ url:
+ description: 'Docker image url; unqualified, tagged, or digest references supported (required) Example: username/app1-config:v0.1.0'
+ type: string
+ type: object
+ imgpkgBundle:
+ description: Pulls imgpkg bundle from Docker/OCI registry
+ properties:
+ image:
+ description: Docker image url; unqualified, tagged, or digest references supported (required)
+ type: string
+ secretRef:
+ description: 'Secret may include one or more keys: username, password, token. By default anonymous access is used for authentication.'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ tagSelection:
+ description: Specifies a strategy to choose a tag (optional; v0.24.0+) if specified, do not include a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ type: object
+ inline:
+ description: Pull content from within this resource; or other resources in the cluster
+ properties:
+ paths:
+ additionalProperties:
+ type: string
+ description: Specifies mapping of paths to their content; not recommended for sensitive values as CR is not encrypted (optional)
+ type: object
+ pathsFrom:
+ description: Specifies content via secrets and config maps; data values are recommended to be placed in secrets (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ secretRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ type: object
+ paused:
+ description: Paused when set to true will ignore all pending changes, once it set back to false, pending changes will be applied
+ type: boolean
+ syncPeriod:
+ description: Controls frequency of PackageRepository reconciliation
+ type: string
+ required:
+ - fetch
+ type: object
+ status:
+ properties:
+ conditions:
+ items:
+ properties:
+ message:
+ description: Human-readable message indicating details about last transition.
+ type: string
+ reason:
+ description: Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
+ type: string
+ status:
+ type: string
+ type:
+ description: ConditionType represents reconciler state
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ consecutiveReconcileFailures:
+ type: integer
+ consecutiveReconcileSuccesses:
+ type: integer
+ deploy:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ finished:
+ type: boolean
+ kapp:
+ description: KappDeployStatus contains the associated AppCR deployed resources
+ properties:
+ associatedResources:
+ description: AssociatedResources contains the associated App label, namespaces and GKs
+ properties:
+ groupKinds:
+ items:
+ description: GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ required:
+ - group
+ - kind
+ type: object
+ type: array
+ label:
+ type: string
+ namespaces:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ startedAt:
+ format: date-time
+ type: string
+ stderr:
+ type: string
+ stdout:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ fetch:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ startedAt:
+ format: date-time
+ type: string
+ stderr:
+ type: string
+ stdout:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ friendlyDescription:
+ type: string
+ observedGeneration:
+ description: Populated based on metadata.generation when controller observes a change to the resource; if this value is out of data, other status fields do not reflect latest state
+ format: int64
+ type: integer
+ template:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ stderr:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ usefulErrorMessage:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: kapp-controller
+ namespace: kapp-controller
+ annotations:
+ kapp-controller.carvel.dev/version: v0.0.0
+spec:
+ selector:
+ matchLabels:
+ app: kapp-controller
+ replicas: 1
+ revisionHistoryLimit: 0
+ template:
+ metadata:
+ labels:
+ app: kapp-controller
+ spec:
+ serviceAccount: kapp-controller-sa
+ containers:
+ - name: kapp-controller
+ image: docker.io/rohitagg2020/kapp-controller-test:rand-1731671583192097000-49157684187-kapp-controller
+ args:
+ - -packaging-global-namespace=kapp-controller-packaging-global
+ - -enable-api-priority-and-fairness=True
+ - -tls-cipher-suites=
+ env:
+ - name: KAPPCTRL_MEM_TMP_DIR
+ value: /etc/kappctrl-mem-tmp
+ - name: KAPPCTRL_SIDECAREXEC_SOCK
+ value: /etc/kappctrl-mem-tmp/sidecarexec.sock
+ - name: KAPPCTRL_SYSTEM_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: KAPPCTRL_API_PORT
+ value: "8443"
+ resources:
+ requests:
+ cpu: 120m
+ memory: 100Mi
+ volumeMounts:
+ - name: template-fs
+ mountPath: /etc/kappctrl-mem-tmp
+ - name: home
+ mountPath: /home/kapp-controller
+ ports:
+ - containerPort: 8443
+ name: api
+ protocol: TCP
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ securityContext:
+ allowPrivilegeEscalation: false
+ readOnlyRootFilesystem: true
+ runAsNonRoot: true
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
+ - name: kapp-controller-sidecarexec
+ image: docker.io/rohitagg2020/kapp-controller-test:rand-1731671583192097000-49157684187-kapp-controller
+ args:
+ - --sidecarexec
+ resources:
+ requests:
+ cpu: 120m
+ memory: 100Mi
+ env:
+ - name: KAPPCTRL_SIDECAREXEC_SOCK
+ value: /etc/kappctrl-mem-tmp/sidecarexec.sock
+ - name: IMGPKG_ACTIVE_KEYCHAINS
+ value: gke,aks,ecr
+ volumeMounts:
+ - name: template-fs
+ mountPath: /etc/kappctrl-mem-tmp
+ - name: home
+ mountPath: /home/kapp-controller
+ - name: empty-sa
+ mountPath: /var/run/secrets/kubernetes.io/serviceaccount
+ securityContext:
+ allowPrivilegeEscalation: false
+ readOnlyRootFilesystem: false
+ runAsNonRoot: true
+ capabilities:
+ drop:
+ - ALL
+ seccompProfile:
+ type: RuntimeDefault
+ volumes:
+ - name: template-fs
+ emptyDir:
+ medium: Memory
+ - name: home
+ emptyDir:
+ medium: Memory
+ - name: empty-sa
+ emptyDir: {}
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: kapp-controller-sa
+ namespace: kapp-controller
+---
+kind: ClusterRole
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+ name: kapp-controller-cluster-role
+rules:
+- apiGroups:
+ - ""
+ resources:
+ - secrets
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+- apiGroups:
+ - ""
+ resources:
+ - serviceaccounts
+ verbs:
+ - get
+- apiGroups:
+ - ""
+ resources:
+ - serviceaccounts/token
+ verbs:
+ - create
+- apiGroups:
+ - kappctrl.k14s.io
+ resources:
+ - apps
+ - apps/status
+ verbs:
+ - '*'
+- apiGroups:
+ - packaging.carvel.dev
+ resources:
+ - packageinstalls
+ - packageinstalls/status
+ - packageinstalls/finalizers
+ verbs:
+ - '*'
+- apiGroups:
+ - packaging.carvel.dev
+ resources:
+ - packagerepositories
+ - packagerepositories/status
+ verbs:
+ - '*'
+- apiGroups:
+ - internal.packaging.carvel.dev
+ resources:
+ - internalpackagemetadatas
+ verbs:
+ - '*'
+- apiGroups:
+ - data.packaging.carvel.dev
+ resources:
+ - packagemetadatas
+ - packagemetadatas/status
+ verbs:
+ - '*'
+- apiGroups:
+ - internal.packaging.carvel.dev
+ resources:
+ - internalpackages
+ verbs:
+ - '*'
+- apiGroups:
+ - data.packaging.carvel.dev
+ resources:
+ - packages
+ - packages/status
+ verbs:
+ - '*'
+- apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - '*'
+- apiGroups:
+ - apiregistration.k8s.io
+ resources:
+ - apiservices
+ verbs:
+ - update
+ - get
+- apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - get
+ - update
+- apiGroups:
+ - admissionregistration.k8s.io
+ resources:
+ - mutatingwebhookconfigurations
+ - validatingwebhookconfigurations
+ - validatingadmissionpolicies
+ - validatingadmissionpolicybindings
+ verbs:
+ - list
+ - watch
+- apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+- apiGroups:
+ - flowcontrol.apiserver.k8s.io
+ resources:
+ - prioritylevelconfigurations
+ - flowschemas
+ verbs:
+ - list
+ - watch
+---
+kind: ClusterRole
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+ name: kapp-controller-user-role
+rules:
+- apiGroups:
+ - ""
+ resources:
+ - secrets
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+- apiGroups:
+ - ""
+ resources:
+ - serviceaccounts
+ verbs:
+ - get
+- apiGroups:
+ - ""
+ resources:
+ - serviceaccounts/token
+ verbs:
+ - create
+- apiGroups:
+ - kappctrl.k14s.io
+ resources:
+ - apps
+ - apps/status
+ verbs:
+ - '*'
+- apiGroups:
+ - packaging.carvel.dev
+ resources:
+ - packageinstalls
+ - packageinstalls/status
+ - packageinstalls/finalizers
+ verbs:
+ - '*'
+- apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - '*'
+- apiGroups:
+ - packaging.carvel.dev
+ resources:
+ - packagerepositories
+ - packagerepositories/status
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - internal.packaging.carvel.dev
+ resources:
+ - internalpackagemetadatas
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - data.packaging.carvel.dev
+ resources:
+ - packagemetadatas
+ - packagemetadatas/status
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - internal.packaging.carvel.dev
+ resources:
+ - internalpackages
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - data.packaging.carvel.dev
+ resources:
+ - packages
+ - packages/status
+ verbs:
+ - get
+ - list
+ - watch
+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+ name: kapp-controller-cluster-role-binding
+subjects:
+- kind: ServiceAccount
+ name: kapp-controller-sa
+ namespace: kapp-controller
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: kapp-controller-cluster-role
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: pkg-apiserver:system:auth-delegator
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: system:auth-delegator
+subjects:
+- kind: ServiceAccount
+ name: kapp-controller-sa
+ namespace: kapp-controller
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: pkgserver-auth-reader
+ namespace: kube-system
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: extension-apiserver-authentication-reader
+subjects:
+- kind: ServiceAccount
+ name: kapp-controller-sa
+ namespace: kapp-controller
diff --git a/output.yml b/output.yml
new file mode 100644
index 000000000..cbdb2d8b9
--- /dev/null
+++ b/output.yml
@@ -0,0 +1,2709 @@
+---
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: kapp-controller
+---
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: kapp-controller-packaging-global
+---
+apiVersion: apiregistration.k8s.io/v1
+kind: APIService
+metadata:
+ name: v1alpha1.data.packaging.carvel.dev
+spec:
+ group: data.packaging.carvel.dev
+ groupPriorityMinimum: 100
+ service:
+ name: packaging-api
+ namespace: kapp-controller
+ version: v1alpha1
+ versionPriority: 100
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: packaging-api
+ namespace: kapp-controller
+spec:
+ ports:
+ - name: main
+ port: 443
+ protocol: TCP
+ targetPort: api
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app: kapp-controller
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: internalpackagemetadatas.internal.packaging.carvel.dev
+spec:
+ group: internal.packaging.carvel.dev
+ names:
+ kind: InternalPackageMetadata
+ listKind: InternalPackageMetadataList
+ plural: internalpackagemetadatas
+ singular: internalpackagemetadata
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ categories:
+ description: Classifiers of the package (optional; Array of strings)
+ items:
+ type: string
+ type: array
+ displayName:
+ description: Human friendly name of the package (optional; string)
+ type: string
+ iconSVGBase64:
+ description: Base64 encoded icon (optional; string)
+ type: string
+ longDescription:
+ description: Long description of the package (optional; string)
+ type: string
+ maintainers:
+ description: List of maintainer info for the package. Currently only
+ supports the name key. (optional; array of maintner info)
+ items:
+ properties:
+ name:
+ type: string
+ type: object
+ type: array
+ providerName:
+ description: Name of the entity distributing the package (optional;
+ string)
+ type: string
+ shortDescription:
+ description: Short desription of the package (optional; string)
+ type: string
+ supportDescription:
+ description: Description of the support available for the package
+ (optional; string)
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: internalpackages.internal.packaging.carvel.dev
+spec:
+ group: internal.packaging.carvel.dev
+ names:
+ kind: InternalPackage
+ listKind: InternalPackageList
+ plural: internalpackages
+ singular: internalpackage
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ capacityRequirementsDescription:
+ description: 'System requirements needed to install the package. Note:
+ these requirements will not be verified by kapp-controller on installation.
+ (optional; string)'
+ type: string
+ includedSoftware:
+ description: IncludedSoftware can be used to show the software contents
+ of a Package. This is especially useful if the underlying versions
+ do not match the Package version
+ items:
+ description: IncludedSoftware contains the underlying Software Contents
+ of a Package
+ properties:
+ description:
+ type: string
+ displayName:
+ type: string
+ version:
+ type: string
+ type: object
+ type: array
+ kappControllerVersionSelection:
+ description: KappControllerVersionSelection specifies the versions
+ of kapp-controller which can install this package
+ properties:
+ constraints:
+ type: string
+ type: object
+ kubernetesVersionSelection:
+ description: KubernetesVersionSelection specifies the versions of
+ k8s which this package can be installed on
+ properties:
+ constraints:
+ type: string
+ type: object
+ licenses:
+ description: Description of the licenses that apply to the package
+ software (optional; Array of strings)
+ items:
+ type: string
+ type: array
+ refName:
+ description: The name of the PackageMetadata associated with this
+ version Must be a valid PackageMetadata name (see PackageMetadata
+ CR for details) Cannot be empty
+ type: string
+ releaseNotes:
+ description: Version release notes (optional; string)
+ type: string
+ releasedAt:
+ description: Timestamp of release (iso8601 formatted string; optional)
+ format: date-time
+ nullable: true
+ type: string
+ template:
+ properties:
+ spec:
+ properties:
+ canceled:
+ description: Cancels current and future reconciliations (optional;
+ default=false)
+ type: boolean
+ cluster:
+ description: Specifies that app should be deployed to destination
+ cluster; by default, cluster is same as where this resource
+ resides (optional; v0.5.0+)
+ properties:
+ kubeconfigSecretRef:
+ description: Specifies secret containing kubeconfig (required)
+ properties:
+ key:
+ description: Specifies key that contains kubeconfig
+ (optional)
+ type: string
+ name:
+ description: Specifies secret name within app's namespace
+ (required)
+ type: string
+ type: object
+ namespace:
+ description: Specifies namespace in destination cluster
+ (optional)
+ type: string
+ type: object
+ defaultNamespace:
+ description: Specifies the default namespace to install the
+ App resources, by default this is same as the App's namespace
+ (optional; v0.48.0+)
+ type: string
+ deploy:
+ items:
+ properties:
+ kapp:
+ description: Use kapp to deploy resources
+ properties:
+ delete:
+ description: Configuration for delete command (optional)
+ properties:
+ rawOptions:
+ description: Pass through options to kapp delete
+ (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ inspect:
+ description: 'Configuration for inspect command
+ (optional) as of kapp-controller v0.31.0, inspect
+ is disabled by default add rawOptions or use an
+ empty inspect config like `inspect: {}` to enable'
+ properties:
+ rawOptions:
+ description: Pass through options to kapp inspect
+ (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ intoNs:
+ description: Override namespace for all resources
+ (optional)
+ type: string
+ mapNs:
+ description: Provide custom namespace override mapping
+ (optional)
+ items:
+ type: string
+ type: array
+ rawOptions:
+ description: Pass through options to kapp deploy
+ (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: array
+ fetch:
+ items:
+ properties:
+ git:
+ description: Uses git to clone repository
+ properties:
+ depth:
+ description: depth of commits to fetch; 1 (default)
+ means only latest commit, 0 means everything (optional)
+ format: int64
+ type: integer
+ forceHTTPBasicAuth:
+ description: Force the usage of HTTP Basic Auth
+ when Basic Auth is provided (optional)
+ type: boolean
+ lfsSkipSmudge:
+ description: Skip lfs download (optional)
+ type: boolean
+ ref:
+ description: Branch, tag, commit; origin is the
+ name of the remote (optional)
+ type: string
+ refSelection:
+ description: Specifies a strategy to resolve to
+ an explicit ref (optional; v0.24.0+)
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ secretRef:
+ description: 'Secret with auth details. allowed
+ keys: ssh-privatekey, ssh-knownhosts, username,
+ password (optional) (if ssh-knownhosts is not
+ specified, git will not perform strict host checking)'
+ properties:
+ name:
+ description: Object is expected to be within
+ same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of repository (optional)
+ type: string
+ url:
+ description: http or ssh urls are supported (required)
+ type: string
+ type: object
+ helmChart:
+ description: Uses helm fetch to fetch specified chart
+ properties:
+ name:
+ description: 'Example: stable/redis'
+ type: string
+ repository:
+ properties:
+ secretRef:
+ properties:
+ name:
+ description: Object is expected to be within
+ same namespace
+ type: string
+ type: object
+ url:
+ description: Repository url; scheme of oci://
+ will fetch experimental helm oci chart (v0.19.0+)
+ (required)
+ type: string
+ type: object
+ version:
+ type: string
+ type: object
+ http:
+ description: Uses http library to fetch file
+ properties:
+ secretRef:
+ description: 'Secret to provide auth details (optional)
+ Secret may include one or more keys: username,
+ password'
+ properties:
+ name:
+ description: Object is expected to be within
+ same namespace
+ type: string
+ type: object
+ sha256:
+ description: Checksum to verify after download (optional)
+ type: string
+ subPath:
+ description: Grab only portion of download (optional)
+ type: string
+ url:
+ description: 'URL can point to one of following
+ formats: text, tgz, zip http and https url are
+ supported; plain file, tgz and tar types are supported
+ (required)'
+ type: string
+ type: object
+ image:
+ description: Pulls content from Docker/OCI registry
+ properties:
+ secretRef:
+ description: 'Secret may include one or more keys:
+ username, password, token. By default anonymous
+ access is used for authentication.'
+ properties:
+ name:
+ description: Object is expected to be within
+ same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of image (optional)
+ type: string
+ tagSelection:
+ description: Specifies a strategy to choose a tag
+ (optional; v0.24.0+) if specified, do not include
+ a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ url:
+ description: 'Docker image url; unqualified, tagged,
+ or digest references supported (required) Example:
+ username/app1-config:v0.1.0'
+ type: string
+ type: object
+ imgpkgBundle:
+ description: Pulls imgpkg bundle from Docker/OCI registry
+ (v0.17.0+)
+ properties:
+ image:
+ description: Docker image url; unqualified, tagged,
+ or digest references supported (required)
+ type: string
+ secretRef:
+ description: 'Secret may include one or more keys:
+ username, password, token. By default anonymous
+ access is used for authentication.'
+ properties:
+ name:
+ description: Object is expected to be within
+ same namespace
+ type: string
+ type: object
+ tagSelection:
+ description: Specifies a strategy to choose a tag
+ (optional; v0.24.0+) if specified, do not include
+ a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ type: object
+ inline:
+ description: Pulls content from within this resource;
+ or other resources in the cluster
+ properties:
+ paths:
+ additionalProperties:
+ type: string
+ description: Specifies mapping of paths to their
+ content; not recommended for sensitive values
+ as CR is not encrypted (optional)
+ type: object
+ pathsFrom:
+ description: Specifies content via secrets and config
+ maps; data values are recommended to be placed
+ in secrets (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place
+ files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ secretRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place
+ files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ path:
+ description: Relative path to place the fetched artifacts
+ type: string
+ type: object
+ type: array
+ noopDelete:
+ description: Deletion requests for the App will result in
+ the App CR being deleted, but its associated resources will
+ not be deleted (optional; default=false; v0.18.0+)
+ type: boolean
+ paused:
+ description: Pauses _future_ reconciliation; does _not_ affect
+ currently running reconciliation (optional; default=false)
+ type: boolean
+ serviceAccountName:
+ description: Specifies that app should be deployed authenticated
+ via given service account, found in this namespace (optional;
+ v0.6.0+)
+ type: string
+ syncPeriod:
+ description: Specifies the length of time to wait, in time
+ + unit format, before reconciling. Always >= 30s. If value
+ below 30s is specified, 30s will be used. (optional; v0.9.0+;
+ default=30s)
+ type: string
+ template:
+ items:
+ properties:
+ cue:
+ properties:
+ inputExpression:
+ description: Cue expression for single path component,
+ can be used to unify ValuesFrom into a given field
+ (optional)
+ type: string
+ outputExpression:
+ description: Cue expression to output, default will
+ export all visible fields (optional)
+ type: string
+ paths:
+ description: Explicit list of files/directories
+ (optional)
+ items:
+ type: string
+ type: array
+ valuesFrom:
+ description: Provide values (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects
+ a field of the app: only annotations,
+ labels, uid, name and namespace
+ are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running
+ KappController version, defaults
+ (empty) to retrieving the current
+ running version.. Can be manually
+ supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running
+ KubernetesAPIs from cluster, defaults
+ (empty) to retrieving the APIs
+ from the cluster. Can be manually
+ supplied instead, e.g ["group/version",
+ "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running
+ Kubernetes version from cluster,
+ defaults (empty) to retrieving
+ the version from the cluster.
+ Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ helmTemplate:
+ description: Use helm template command to render helm
+ chart
+ properties:
+ kubernetesAPIs:
+ description: 'Optional: Use kubernetes group/versions
+ resources available in the live cluster'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get Kubernetes version,
+ defaults (empty) to retrieving the version from
+ the cluster. Can be manually overridden to a value
+ instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ description: Set name explicitly, default is App
+ CR's name (optional; v0.13.0+)
+ type: string
+ namespace:
+ description: Set namespace explicitly, default is
+ App CR's namespace (optional; v0.13.0+)
+ type: string
+ path:
+ description: Path to chart (optional; v0.13.0+)
+ type: string
+ valuesFrom:
+ description: One or more secrets, config maps, paths
+ that provide values (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects
+ a field of the app: only annotations,
+ labels, uid, name and namespace
+ are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running
+ KappController version, defaults
+ (empty) to retrieving the current
+ running version.. Can be manually
+ supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running
+ KubernetesAPIs from cluster, defaults
+ (empty) to retrieving the APIs
+ from the cluster. Can be manually
+ supplied instead, e.g ["group/version",
+ "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running
+ Kubernetes version from cluster,
+ defaults (empty) to retrieving
+ the version from the cluster.
+ Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ jsonnet:
+ description: TODO implement jsonnet
+ type: object
+ kbld:
+ description: Use kbld to resolve image references to
+ use digests
+ properties:
+ paths:
+ items:
+ type: string
+ type: array
+ type: object
+ kustomize:
+ description: TODO implement kustomize
+ type: object
+ sops:
+ description: Use sops to decrypt *.sops.yml files (optional;
+ v0.11.0+)
+ properties:
+ age:
+ properties:
+ privateKeysSecretRef:
+ description: Secret with private armored PGP
+ private keys (required)
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ paths:
+ description: Lists paths to decrypt explicitly (optional;
+ v0.13.0+)
+ items:
+ type: string
+ type: array
+ pgp:
+ description: Use PGP to decrypt files (required)
+ properties:
+ privateKeysSecretRef:
+ description: Secret with private armored PGP
+ private keys (required)
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: object
+ ytt:
+ description: Use ytt to template configuration
+ properties:
+ fileMarks:
+ description: Control metadata about input files
+ passed to ytt (optional; v0.18.0+) see https://carvel.dev/ytt/docs/latest/file-marks/
+ for more details
+ items:
+ type: string
+ type: array
+ ignoreUnknownComments:
+ description: Ignores comments that ytt doesn't recognize
+ (optional; default=false)
+ type: boolean
+ inline:
+ description: Specify additional files, including
+ data values (optional)
+ properties:
+ paths:
+ additionalProperties:
+ type: string
+ description: Specifies mapping of paths to their
+ content; not recommended for sensitive values
+ as CR is not encrypted (optional)
+ type: object
+ pathsFrom:
+ description: Specifies content via secrets and
+ config maps; data values are recommended to
+ be placed in secrets (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place
+ files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ secretRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place
+ files found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ paths:
+ description: Lists paths to provide to ytt explicitly
+ (optional)
+ items:
+ type: string
+ type: array
+ strict:
+ description: Forces strict mode https://github.com/k14s/ytt/blob/develop/docs/strict.md
+ (optional; default=false)
+ type: boolean
+ valuesFrom:
+ description: Provide values via ytt's --data-values-file
+ (optional; v0.19.0-alpha.9)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects
+ a field of the app: only annotations,
+ labels, uid, name and namespace
+ are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running
+ KappController version, defaults
+ (empty) to retrieving the current
+ running version.. Can be manually
+ supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running
+ KubernetesAPIs from cluster, defaults
+ (empty) to retrieving the APIs
+ from the cluster. Can be manually
+ supplied instead, e.g ["group/version",
+ "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running
+ Kubernetes version from cluster,
+ defaults (empty) to retrieving
+ the version from the cluster.
+ Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ type: object
+ type: array
+ type: object
+ required:
+ - spec
+ type: object
+ valuesSchema:
+ description: valuesSchema can be used to show template values that
+ can be configured by users when a Package is installed in an OpenAPI
+ schema format.
+ properties:
+ openAPIv3:
+ nullable: true
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ version:
+ description: Package version; Referenced by PackageInstall; Must be
+ valid semver (required) Cannot be empty
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: apps.kappctrl.k14s.io
+spec:
+ group: kappctrl.k14s.io
+ names:
+ categories:
+ - carvel
+ kind: App
+ listKind: AppList
+ plural: apps
+ singular: app
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - description: Friendly description
+ jsonPath: .status.friendlyDescription
+ name: Description
+ type: string
+ - description: Last time app started being deployed. Does not mean anything was
+ changed.
+ jsonPath: .status.deploy.startedAt
+ name: Since-Deploy
+ type: date
+ - description: Time since creation
+ jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: 'An App is a set of Kubernetes resources. These resources could
+ span any number of namespaces or could be cluster-wide (e.g. CRDs). An App
+ is represented in kapp-controller using a App CR. The App CR comprises of
+ three main sections: spec.fetch – declare source for fetching configuration
+ and OCI images spec.template – declare templating tool and values spec.deploy
+ – declare deployment tool and any deploy specific configuration'
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ canceled:
+ description: Cancels current and future reconciliations (optional;
+ default=false)
+ type: boolean
+ cluster:
+ description: Specifies that app should be deployed to destination
+ cluster; by default, cluster is same as where this resource resides
+ (optional; v0.5.0+)
+ properties:
+ kubeconfigSecretRef:
+ description: Specifies secret containing kubeconfig (required)
+ properties:
+ key:
+ description: Specifies key that contains kubeconfig (optional)
+ type: string
+ name:
+ description: Specifies secret name within app's namespace
+ (required)
+ type: string
+ type: object
+ namespace:
+ description: Specifies namespace in destination cluster (optional)
+ type: string
+ type: object
+ defaultNamespace:
+ description: Specifies the default namespace to install the App resources,
+ by default this is same as the App's namespace (optional; v0.48.0+)
+ type: string
+ deploy:
+ items:
+ properties:
+ kapp:
+ description: Use kapp to deploy resources
+ properties:
+ delete:
+ description: Configuration for delete command (optional)
+ properties:
+ rawOptions:
+ description: Pass through options to kapp delete (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ inspect:
+ description: 'Configuration for inspect command (optional)
+ as of kapp-controller v0.31.0, inspect is disabled by
+ default add rawOptions or use an empty inspect config
+ like `inspect: {}` to enable'
+ properties:
+ rawOptions:
+ description: Pass through options to kapp inspect (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ intoNs:
+ description: Override namespace for all resources (optional)
+ type: string
+ mapNs:
+ description: Provide custom namespace override mapping (optional)
+ items:
+ type: string
+ type: array
+ rawOptions:
+ description: Pass through options to kapp deploy (optional)
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: array
+ fetch:
+ items:
+ properties:
+ git:
+ description: Uses git to clone repository
+ properties:
+ depth:
+ description: depth of commits to fetch; 1 (default) means
+ only latest commit, 0 means everything (optional)
+ format: int64
+ type: integer
+ forceHTTPBasicAuth:
+ description: Force the usage of HTTP Basic Auth when Basic
+ Auth is provided (optional)
+ type: boolean
+ lfsSkipSmudge:
+ description: Skip lfs download (optional)
+ type: boolean
+ ref:
+ description: Branch, tag, commit; origin is the name of
+ the remote (optional)
+ type: string
+ refSelection:
+ description: Specifies a strategy to resolve to an explicit
+ ref (optional; v0.24.0+)
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ secretRef:
+ description: 'Secret with auth details. allowed keys: ssh-privatekey,
+ ssh-knownhosts, username, password (optional) (if ssh-knownhosts
+ is not specified, git will not perform strict host checking)'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of repository (optional)
+ type: string
+ url:
+ description: http or ssh urls are supported (required)
+ type: string
+ type: object
+ helmChart:
+ description: Uses helm fetch to fetch specified chart
+ properties:
+ name:
+ description: 'Example: stable/redis'
+ type: string
+ repository:
+ properties:
+ secretRef:
+ properties:
+ name:
+ description: Object is expected to be within same
+ namespace
+ type: string
+ type: object
+ url:
+ description: Repository url; scheme of oci:// will fetch
+ experimental helm oci chart (v0.19.0+) (required)
+ type: string
+ type: object
+ version:
+ type: string
+ type: object
+ http:
+ description: Uses http library to fetch file
+ properties:
+ secretRef:
+ description: 'Secret to provide auth details (optional)
+ Secret may include one or more keys: username, password'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ sha256:
+ description: Checksum to verify after download (optional)
+ type: string
+ subPath:
+ description: Grab only portion of download (optional)
+ type: string
+ url:
+ description: 'URL can point to one of following formats:
+ text, tgz, zip http and https url are supported; plain
+ file, tgz and tar types are supported (required)'
+ type: string
+ type: object
+ image:
+ description: Pulls content from Docker/OCI registry
+ properties:
+ secretRef:
+ description: 'Secret may include one or more keys: username,
+ password, token. By default anonymous access is used for
+ authentication.'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of image (optional)
+ type: string
+ tagSelection:
+ description: Specifies a strategy to choose a tag (optional;
+ v0.24.0+) if specified, do not include a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ url:
+ description: 'Docker image url; unqualified, tagged, or
+ digest references supported (required) Example: username/app1-config:v0.1.0'
+ type: string
+ type: object
+ imgpkgBundle:
+ description: Pulls imgpkg bundle from Docker/OCI registry (v0.17.0+)
+ properties:
+ image:
+ description: Docker image url; unqualified, tagged, or digest
+ references supported (required)
+ type: string
+ secretRef:
+ description: 'Secret may include one or more keys: username,
+ password, token. By default anonymous access is used for
+ authentication.'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ tagSelection:
+ description: Specifies a strategy to choose a tag (optional;
+ v0.24.0+) if specified, do not include a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ type: object
+ inline:
+ description: Pulls content from within this resource; or other
+ resources in the cluster
+ properties:
+ paths:
+ additionalProperties:
+ type: string
+ description: Specifies mapping of paths to their content;
+ not recommended for sensitive values as CR is not encrypted
+ (optional)
+ type: object
+ pathsFrom:
+ description: Specifies content via secrets and config maps;
+ data values are recommended to be placed in secrets (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found
+ in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ secretRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found
+ in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ path:
+ description: Relative path to place the fetched artifacts
+ type: string
+ type: object
+ type: array
+ noopDelete:
+ description: Deletion requests for the App will result in the App
+ CR being deleted, but its associated resources will not be deleted
+ (optional; default=false; v0.18.0+)
+ type: boolean
+ paused:
+ description: Pauses _future_ reconciliation; does _not_ affect currently
+ running reconciliation (optional; default=false)
+ type: boolean
+ serviceAccountName:
+ description: Specifies that app should be deployed authenticated via
+ given service account, found in this namespace (optional; v0.6.0+)
+ type: string
+ syncPeriod:
+ description: Specifies the length of time to wait, in time + unit
+ format, before reconciling. Always >= 30s. If value below 30s is
+ specified, 30s will be used. (optional; v0.9.0+; default=30s)
+ type: string
+ template:
+ items:
+ properties:
+ cue:
+ properties:
+ inputExpression:
+ description: Cue expression for single path component, can
+ be used to unify ValuesFrom into a given field (optional)
+ type: string
+ outputExpression:
+ description: Cue expression to output, default will export
+ all visible fields (optional)
+ type: string
+ paths:
+ description: Explicit list of files/directories (optional)
+ items:
+ type: string
+ type: array
+ valuesFrom:
+ description: Provide values (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects a field
+ of the app: only annotations, labels,
+ uid, name and namespace are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running KappController
+ version, defaults (empty) to retrieving
+ the current running version.. Can be manually
+ supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running KubernetesAPIs
+ from cluster, defaults (empty) to retrieving
+ the APIs from the cluster. Can be manually
+ supplied instead, e.g ["group/version",
+ "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running Kubernetes
+ version from cluster, defaults (empty)
+ to retrieving the version from the cluster.
+ Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ helmTemplate:
+ description: Use helm template command to render helm chart
+ properties:
+ kubernetesAPIs:
+ description: 'Optional: Use kubernetes group/versions resources
+ available in the live cluster'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get Kubernetes version, defaults
+ (empty) to retrieving the version from the cluster. Can
+ be manually overridden to a value instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ description: Set name explicitly, default is App CR's name
+ (optional; v0.13.0+)
+ type: string
+ namespace:
+ description: Set namespace explicitly, default is App CR's
+ namespace (optional; v0.13.0+)
+ type: string
+ path:
+ description: Path to chart (optional; v0.13.0+)
+ type: string
+ valuesFrom:
+ description: One or more secrets, config maps, paths that
+ provide values (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects a field
+ of the app: only annotations, labels,
+ uid, name and namespace are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running KappController
+ version, defaults (empty) to retrieving
+ the current running version.. Can be manually
+ supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running KubernetesAPIs
+ from cluster, defaults (empty) to retrieving
+ the APIs from the cluster. Can be manually
+ supplied instead, e.g ["group/version",
+ "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running Kubernetes
+ version from cluster, defaults (empty)
+ to retrieving the version from the cluster.
+ Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ jsonnet:
+ description: TODO implement jsonnet
+ type: object
+ kbld:
+ description: Use kbld to resolve image references to use digests
+ properties:
+ paths:
+ items:
+ type: string
+ type: array
+ type: object
+ kustomize:
+ description: TODO implement kustomize
+ type: object
+ sops:
+ description: Use sops to decrypt *.sops.yml files (optional;
+ v0.11.0+)
+ properties:
+ age:
+ properties:
+ privateKeysSecretRef:
+ description: Secret with private armored PGP private
+ keys (required)
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ paths:
+ description: Lists paths to decrypt explicitly (optional;
+ v0.13.0+)
+ items:
+ type: string
+ type: array
+ pgp:
+ description: Use PGP to decrypt files (required)
+ properties:
+ privateKeysSecretRef:
+ description: Secret with private armored PGP private
+ keys (required)
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: object
+ ytt:
+ description: Use ytt to template configuration
+ properties:
+ fileMarks:
+ description: Control metadata about input files passed to
+ ytt (optional; v0.18.0+) see https://carvel.dev/ytt/docs/latest/file-marks/
+ for more details
+ items:
+ type: string
+ type: array
+ ignoreUnknownComments:
+ description: Ignores comments that ytt doesn't recognize
+ (optional; default=false)
+ type: boolean
+ inline:
+ description: Specify additional files, including data values
+ (optional)
+ properties:
+ paths:
+ additionalProperties:
+ type: string
+ description: Specifies mapping of paths to their content;
+ not recommended for sensitive values as CR is not
+ encrypted (optional)
+ type: object
+ pathsFrom:
+ description: Specifies content via secrets and config
+ maps; data values are recommended to be placed in
+ secrets (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files
+ found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ secretRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files
+ found in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ paths:
+ description: Lists paths to provide to ytt explicitly (optional)
+ items:
+ type: string
+ type: array
+ strict:
+ description: Forces strict mode https://github.com/k14s/ytt/blob/develop/docs/strict.md
+ (optional; default=false)
+ type: boolean
+ valuesFrom:
+ description: Provide values via ytt's --data-values-file
+ (optional; v0.19.0-alpha.9)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ type: string
+ type: object
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldPath:
+ description: 'Required: Selects a field
+ of the app: only annotations, labels,
+ uid, name and namespace are supported.'
+ type: string
+ kappControllerVersion:
+ description: 'Optional: Get running KappController
+ version, defaults (empty) to retrieving
+ the current running version.. Can be manually
+ supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ kubernetesAPIs:
+ description: 'Optional: Get running KubernetesAPIs
+ from cluster, defaults (empty) to retrieving
+ the APIs from the cluster. Can be manually
+ supplied instead, e.g ["group/version",
+ "group2/version2"]'
+ properties:
+ groupVersions:
+ items:
+ type: string
+ type: array
+ type: object
+ kubernetesVersion:
+ description: 'Optional: Get running Kubernetes
+ version from cluster, defaults (empty)
+ to retrieving the version from the cluster.
+ Can be manually supplied instead.'
+ properties:
+ version:
+ type: string
+ type: object
+ name:
+ type: string
+ type: object
+ type: array
+ type: object
+ path:
+ type: string
+ secretRef:
+ properties:
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ type: object
+ type: array
+ type: object
+ status:
+ properties:
+ conditions:
+ items:
+ properties:
+ message:
+ description: Human-readable message indicating details about
+ last transition.
+ type: string
+ reason:
+ description: Unique, this should be a short, machine understandable
+ string that gives the reason for condition's last transition.
+ If it reports "ResizeStarted" that means the underlying persistent
+ volume is being resized.
+ type: string
+ status:
+ type: string
+ type:
+ description: ConditionType represents reconciler state
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ consecutiveReconcileFailures:
+ type: integer
+ consecutiveReconcileSuccesses:
+ type: integer
+ deploy:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ finished:
+ type: boolean
+ kapp:
+ description: KappDeployStatus contains the associated AppCR deployed
+ resources
+ properties:
+ associatedResources:
+ description: AssociatedResources contains the associated App
+ label, namespaces and GKs
+ properties:
+ groupKinds:
+ items:
+ description: GroupKind specifies a Group and a Kind,
+ but does not force a version. This is useful for
+ identifying concepts during lookup stages without
+ having partially valid types
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ required:
+ - group
+ - kind
+ type: object
+ type: array
+ label:
+ type: string
+ namespaces:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ startedAt:
+ format: date-time
+ type: string
+ stderr:
+ type: string
+ stdout:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ fetch:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ startedAt:
+ format: date-time
+ type: string
+ stderr:
+ type: string
+ stdout:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ friendlyDescription:
+ type: string
+ inspect:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ stderr:
+ type: string
+ stdout:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ managedAppName:
+ type: string
+ observedGeneration:
+ description: Populated based on metadata.generation when controller
+ observes a change to the resource; if this value is out of data,
+ other status fields do not reflect latest state
+ format: int64
+ type: integer
+ template:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ stderr:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ usefulErrorMessage:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: packageinstalls.packaging.carvel.dev
+spec:
+ group: packaging.carvel.dev
+ names:
+ categories:
+ - carvel
+ kind: PackageInstall
+ listKind: PackageInstallList
+ plural: packageinstalls
+ shortNames:
+ - pkgi
+ singular: packageinstall
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - description: PackageMetadata name
+ jsonPath: .spec.packageRef.refName
+ name: Package name
+ type: string
+ - description: PackageMetadata version
+ jsonPath: .status.version
+ name: Package version
+ type: string
+ - description: Friendly description
+ jsonPath: .status.friendlyDescription
+ name: Description
+ type: string
+ - description: Time since creation
+ jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: A Package Install is an actual installation of a package and
+ its underlying resources on a Kubernetes cluster. It is represented in kapp-controller
+ by a PackageInstall CR. A PackageInstall CR must reference a Package CR.
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ canceled:
+ description: Canceled when set to true will stop all active changes
+ type: boolean
+ cluster:
+ description: Specifies that Package should be deployed to destination
+ cluster; by default, cluster is same as where this resource resides
+ (optional)
+ properties:
+ kubeconfigSecretRef:
+ description: Specifies secret containing kubeconfig (required)
+ properties:
+ key:
+ description: Specifies key that contains kubeconfig (optional)
+ type: string
+ name:
+ description: Specifies secret name within app's namespace
+ (required)
+ type: string
+ type: object
+ namespace:
+ description: Specifies namespace in destination cluster (optional)
+ type: string
+ type: object
+ defaultNamespace:
+ description: Specifies the default namespace to install the Package
+ resources, by default this is same as the PackageInstall namespace
+ (optional; v0.48.0+)
+ type: string
+ noopDelete:
+ description: When NoopDelete set to true, PackageInstall deletion
+ should delete PackageInstall/App CR but preserve App's associated
+ resources.
+ type: boolean
+ packageRef:
+ description: Specifies the name of the package to install (required)
+ properties:
+ refName:
+ type: string
+ versionSelection:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ paused:
+ description: Paused when set to true will ignore all pending changes,
+ once it set back to false, pending changes will be applied
+ type: boolean
+ serviceAccountName:
+ description: Specifies service account that will be used to install
+ underlying package contents
+ type: string
+ syncPeriod:
+ description: Controls frequency of App reconciliation in time + unit
+ format. Always >= 30s. If value below 30s is specified, 30s will
+ be used.
+ type: string
+ values:
+ description: Values to be included in package's templating step (currently
+ only included in the first templating step) (optional)
+ items:
+ properties:
+ secretRef:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ status:
+ properties:
+ conditions:
+ items:
+ properties:
+ message:
+ description: Human-readable message indicating details about
+ last transition.
+ type: string
+ reason:
+ description: Unique, this should be a short, machine understandable
+ string that gives the reason for condition's last transition.
+ If it reports "ResizeStarted" that means the underlying persistent
+ volume is being resized.
+ type: string
+ status:
+ type: string
+ type:
+ description: ConditionType represents reconciler state
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ friendlyDescription:
+ type: string
+ lastAttemptedVersion:
+ description: LastAttemptedVersion specifies what version was last
+ attempted to be installed. It does _not_ indicate it was successfully
+ installed.
+ type: string
+ observedGeneration:
+ description: Populated based on metadata.generation when controller
+ observes a change to the resource; if this value is out of data,
+ other status fields do not reflect latest state
+ format: int64
+ type: integer
+ usefulErrorMessage:
+ type: string
+ version:
+ description: TODO this is desired resolved version (not actually deployed)
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ packaging.carvel.dev/global-namespace: kapp-controller-packaging-global
+ name: packagerepositories.packaging.carvel.dev
+spec:
+ group: packaging.carvel.dev
+ names:
+ categories:
+ - carvel
+ kind: PackageRepository
+ listKind: PackageRepositoryList
+ plural: packagerepositories
+ shortNames:
+ - pkgr
+ singular: packagerepository
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - description: Time since creation
+ jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - description: Friendly description
+ jsonPath: .status.friendlyDescription
+ name: Description
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: A package repository is a collection of packages and their metadata.
+ Similar to a maven repository or a rpm repository, adding a package repository
+ to a cluster gives users of that cluster the ability to install any of the
+ packages from that repository.
+ properties:
+ apiVersion:
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ type: string
+ kind:
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ fetch:
+ properties:
+ git:
+ description: Uses git to clone repository containing package list
+ properties:
+ depth:
+ description: depth of commits to fetch; 1 (default) means
+ only latest commit, 0 means everything (optional)
+ format: int64
+ type: integer
+ forceHTTPBasicAuth:
+ description: Force the usage of HTTP Basic Auth when Basic
+ Auth is provided (optional)
+ type: boolean
+ lfsSkipSmudge:
+ description: Skip lfs download (optional)
+ type: boolean
+ ref:
+ description: Branch, tag, commit; origin is the name of the
+ remote (optional)
+ type: string
+ refSelection:
+ description: Specifies a strategy to resolve to an explicit
+ ref (optional; v0.24.0+)
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ secretRef:
+ description: 'Secret with auth details. allowed keys: ssh-privatekey,
+ ssh-knownhosts, username, password (optional) (if ssh-knownhosts
+ is not specified, git will not perform strict host checking)'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of repository (optional)
+ type: string
+ url:
+ description: http or ssh urls are supported (required)
+ type: string
+ type: object
+ http:
+ description: Uses http library to fetch file containing packages
+ properties:
+ secretRef:
+ description: 'Secret to provide auth details (optional) Secret
+ may include one or more keys: username, password'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ sha256:
+ description: Checksum to verify after download (optional)
+ type: string
+ subPath:
+ description: Grab only portion of download (optional)
+ type: string
+ url:
+ description: 'URL can point to one of following formats: text,
+ tgz, zip http and https url are supported; plain file, tgz
+ and tar types are supported (required)'
+ type: string
+ type: object
+ image:
+ description: Image url; unqualified, tagged, or digest references
+ supported (required)
+ properties:
+ secretRef:
+ description: 'Secret may include one or more keys: username,
+ password, token. By default anonymous access is used for
+ authentication.'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ subPath:
+ description: Grab only portion of image (optional)
+ type: string
+ tagSelection:
+ description: Specifies a strategy to choose a tag (optional;
+ v0.24.0+) if specified, do not include a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ url:
+ description: 'Docker image url; unqualified, tagged, or digest
+ references supported (required) Example: username/app1-config:v0.1.0'
+ type: string
+ type: object
+ imgpkgBundle:
+ description: Pulls imgpkg bundle from Docker/OCI registry
+ properties:
+ image:
+ description: Docker image url; unqualified, tagged, or digest
+ references supported (required)
+ type: string
+ secretRef:
+ description: 'Secret may include one or more keys: username,
+ password, token. By default anonymous access is used for
+ authentication.'
+ properties:
+ name:
+ description: Object is expected to be within same namespace
+ type: string
+ type: object
+ tagSelection:
+ description: Specifies a strategy to choose a tag (optional;
+ v0.24.0+) if specified, do not include a tag in url key
+ properties:
+ semver:
+ properties:
+ constraints:
+ type: string
+ prereleases:
+ properties:
+ identifiers:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ type: object
+ type: object
+ inline:
+ description: Pull content from within this resource; or other
+ resources in the cluster
+ properties:
+ paths:
+ additionalProperties:
+ type: string
+ description: Specifies mapping of paths to their content;
+ not recommended for sensitive values as CR is not encrypted
+ (optional)
+ type: object
+ pathsFrom:
+ description: Specifies content via secrets and config maps;
+ data values are recommended to be placed in secrets (optional)
+ items:
+ properties:
+ configMapRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found
+ in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ secretRef:
+ properties:
+ directoryPath:
+ description: Specifies where to place files found
+ in secret (optional)
+ type: string
+ name:
+ type: string
+ type: object
+ type: object
+ type: array
+ type: object
+ type: object
+ paused:
+ description: Paused when set to true will ignore all pending changes,
+ once it set back to false, pending changes will be applied
+ type: boolean
+ syncPeriod:
+ description: Controls frequency of PackageRepository reconciliation
+ type: string
+ required:
+ - fetch
+ type: object
+ status:
+ properties:
+ conditions:
+ items:
+ properties:
+ message:
+ description: Human-readable message indicating details about
+ last transition.
+ type: string
+ reason:
+ description: Unique, this should be a short, machine understandable
+ string that gives the reason for condition's last transition.
+ If it reports "ResizeStarted" that means the underlying persistent
+ volume is being resized.
+ type: string
+ status:
+ type: string
+ type:
+ description: ConditionType represents reconciler state
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ consecutiveReconcileFailures:
+ type: integer
+ consecutiveReconcileSuccesses:
+ type: integer
+ deploy:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ finished:
+ type: boolean
+ kapp:
+ description: KappDeployStatus contains the associated AppCR deployed
+ resources
+ properties:
+ associatedResources:
+ description: AssociatedResources contains the associated App
+ label, namespaces and GKs
+ properties:
+ groupKinds:
+ items:
+ description: GroupKind specifies a Group and a Kind,
+ but does not force a version. This is useful for
+ identifying concepts during lookup stages without
+ having partially valid types
+ properties:
+ group:
+ type: string
+ kind:
+ type: string
+ required:
+ - group
+ - kind
+ type: object
+ type: array
+ label:
+ type: string
+ namespaces:
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ startedAt:
+ format: date-time
+ type: string
+ stderr:
+ type: string
+ stdout:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ fetch:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ startedAt:
+ format: date-time
+ type: string
+ stderr:
+ type: string
+ stdout:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ friendlyDescription:
+ type: string
+ observedGeneration:
+ description: Populated based on metadata.generation when controller
+ observes a change to the resource; if this value is out of data,
+ other status fields do not reflect latest state
+ format: int64
+ type: integer
+ template:
+ properties:
+ error:
+ type: string
+ exitCode:
+ type: integer
+ stderr:
+ type: string
+ updatedAt:
+ format: date-time
+ type: string
+ type: object
+ usefulErrorMessage:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ annotations:
+ kapp-controller.carvel.dev/version: v0.0.0
+ kbld.k14s.io/images: |
+ - origins:
+ - local:
+ path: /Users/roaggarwal/git/fork/kapp-controller
+ - git:
+ dirty: true
+ remoteURL: git@github.com:rohitagg2020/kapp-controller.git
+ sha: e4b4822224f7bd06e27787a013e3c3e997beb043
+ url: kbld:kapp-controller-sha256-b5445b2e430d37f3960e3a347a3b89a676a36456a5f5c36a24172a998de2dcdd
+ name: kapp-controller
+ namespace: kapp-controller
+spec:
+ replicas: 1
+ revisionHistoryLimit: 0
+ selector:
+ matchLabels:
+ app: kapp-controller
+ template:
+ metadata:
+ labels:
+ app: kapp-controller
+ spec:
+ containers:
+ - args:
+ - -packaging-global-namespace=kapp-controller-packaging-global
+ - -enable-api-priority-and-fairness=True
+ - -tls-cipher-suites=
+ env:
+ - name: KAPPCTRL_MEM_TMP_DIR
+ value: /etc/kappctrl-mem-tmp
+ - name: KAPPCTRL_SIDECAREXEC_SOCK
+ value: /etc/kappctrl-mem-tmp/sidecarexec.sock
+ - name: KAPPCTRL_SYSTEM_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ - name: KAPPCTRL_API_PORT
+ value: "8443"
+ image: kbld:kapp-controller-sha256-b5445b2e430d37f3960e3a347a3b89a676a36456a5f5c36a24172a998de2dcdd
+ name: kapp-controller
+ ports:
+ - containerPort: 8443
+ name: api
+ protocol: TCP
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ resources:
+ requests:
+ cpu: 120m
+ memory: 100Mi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ volumeMounts:
+ - mountPath: /etc/kappctrl-mem-tmp
+ name: template-fs
+ - mountPath: /home/kapp-controller
+ name: home
+ - args:
+ - --sidecarexec
+ env:
+ - name: KAPPCTRL_SIDECAREXEC_SOCK
+ value: /etc/kappctrl-mem-tmp/sidecarexec.sock
+ - name: IMGPKG_ACTIVE_KEYCHAINS
+ value: gke,aks,ecr
+ image: kbld:kapp-controller-sha256-b5445b2e430d37f3960e3a347a3b89a676a36456a5f5c36a24172a998de2dcdd
+ name: kapp-controller-sidecarexec
+ resources:
+ requests:
+ cpu: 120m
+ memory: 100Mi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: false
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ volumeMounts:
+ - mountPath: /etc/kappctrl-mem-tmp
+ name: template-fs
+ - mountPath: /home/kapp-controller
+ name: home
+ - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
+ name: empty-sa
+ serviceAccount: kapp-controller-sa
+ volumes:
+ - emptyDir:
+ medium: Memory
+ name: template-fs
+ - emptyDir:
+ medium: Memory
+ name: home
+ - emptyDir: {}
+ name: empty-sa
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: kapp-controller-sa
+ namespace: kapp-controller
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: kapp-controller-cluster-role
+rules:
+- apiGroups:
+ - ""
+ resources:
+ - secrets
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+- apiGroups:
+ - ""
+ resources:
+ - serviceaccounts
+ verbs:
+ - get
+- apiGroups:
+ - ""
+ resources:
+ - serviceaccounts/token
+ verbs:
+ - create
+- apiGroups:
+ - kappctrl.k14s.io
+ resources:
+ - apps
+ - apps/status
+ verbs:
+ - '*'
+- apiGroups:
+ - packaging.carvel.dev
+ resources:
+ - packageinstalls
+ - packageinstalls/status
+ - packageinstalls/finalizers
+ verbs:
+ - '*'
+- apiGroups:
+ - packaging.carvel.dev
+ resources:
+ - packagerepositories
+ - packagerepositories/status
+ verbs:
+ - '*'
+- apiGroups:
+ - internal.packaging.carvel.dev
+ resources:
+ - internalpackagemetadatas
+ verbs:
+ - '*'
+- apiGroups:
+ - data.packaging.carvel.dev
+ resources:
+ - packagemetadatas
+ - packagemetadatas/status
+ verbs:
+ - '*'
+- apiGroups:
+ - internal.packaging.carvel.dev
+ resources:
+ - internalpackages
+ verbs:
+ - '*'
+- apiGroups:
+ - data.packaging.carvel.dev
+ resources:
+ - packages
+ - packages/status
+ verbs:
+ - '*'
+- apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - '*'
+- apiGroups:
+ - apiregistration.k8s.io
+ resources:
+ - apiservices
+ verbs:
+ - update
+ - get
+- apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - get
+ - update
+- apiGroups:
+ - admissionregistration.k8s.io
+ resources:
+ - mutatingwebhookconfigurations
+ - validatingwebhookconfigurations
+ - validatingadmissionpolicies
+ - validatingadmissionpolicybindings
+ verbs:
+ - list
+ - watch
+- apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+- apiGroups:
+ - flowcontrol.apiserver.k8s.io
+ resources:
+ - prioritylevelconfigurations
+ - flowschemas
+ verbs:
+ - list
+ - watch
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: kapp-controller-user-role
+rules:
+- apiGroups:
+ - ""
+ resources:
+ - secrets
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+- apiGroups:
+ - ""
+ resources:
+ - serviceaccounts
+ verbs:
+ - get
+- apiGroups:
+ - ""
+ resources:
+ - serviceaccounts/token
+ verbs:
+ - create
+- apiGroups:
+ - kappctrl.k14s.io
+ resources:
+ - apps
+ - apps/status
+ verbs:
+ - '*'
+- apiGroups:
+ - packaging.carvel.dev
+ resources:
+ - packageinstalls
+ - packageinstalls/status
+ - packageinstalls/finalizers
+ verbs:
+ - '*'
+- apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - '*'
+- apiGroups:
+ - packaging.carvel.dev
+ resources:
+ - packagerepositories
+ - packagerepositories/status
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - internal.packaging.carvel.dev
+ resources:
+ - internalpackagemetadatas
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - data.packaging.carvel.dev
+ resources:
+ - packagemetadatas
+ - packagemetadatas/status
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - internal.packaging.carvel.dev
+ resources:
+ - internalpackages
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - data.packaging.carvel.dev
+ resources:
+ - packages
+ - packages/status
+ verbs:
+ - get
+ - list
+ - watch
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: kapp-controller-cluster-role-binding
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: kapp-controller-cluster-role
+subjects:
+- kind: ServiceAccount
+ name: kapp-controller-sa
+ namespace: kapp-controller
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: pkg-apiserver:system:auth-delegator
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: system:auth-delegator
+subjects:
+- kind: ServiceAccount
+ name: kapp-controller-sa
+ namespace: kapp-controller
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: pkgserver-auth-reader
+ namespace: kube-system
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: extension-apiserver-authentication-reader
+subjects:
+- kind: ServiceAccount
+ name: kapp-controller-sa
+ namespace: kapp-controller
diff --git a/pkg/apiserver/apiserver.go b/pkg/apiserver/apiserver.go
index c1414bef0..b5db764dd 100644
--- a/pkg/apiserver/apiserver.go
+++ b/pkg/apiserver/apiserver.go
@@ -24,12 +24,14 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/apimachinery/pkg/util/wait"
+ "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle"
+ mutatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/mutating"
+ validatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/validating"
genericopenapi "k8s.io/apiserver/pkg/endpoints/openapi"
apirest "k8s.io/apiserver/pkg/registry/rest"
genericapiserver "k8s.io/apiserver/pkg/server"
"k8s.io/apiserver/pkg/server/dynamiccertificates"
genericoptions "k8s.io/apiserver/pkg/server/options"
- "k8s.io/apiserver/pkg/util/feature"
"k8s.io/client-go/discovery"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
@@ -167,6 +169,7 @@ func (as *APIServer) isReady() (bool, error) {
}
func newServerConfig(aggClient aggregatorclient.Interface, opts NewAPIServerOpts) (*genericapiserver.RecommendedConfig, error) {
+
recommendedOptions := genericoptions.NewRecommendedOptions("", Codecs.LegacyCodec(v1alpha1.SchemeGroupVersion))
recommendedOptions.Etcd = nil
@@ -198,31 +201,42 @@ func newServerConfig(aggClient aggregatorclient.Interface, opts NewAPIServerOpts
if err != nil {
return nil, err
}
- // this feature gate is not enabled in k8s <1.26 as the
- // APIs it relies on were in v1beta2/v1beta1/alpha.
- // the apiserver library hardcodes the v1beta3 version of the resource
+
+ // this feature gate is not enabled in k8s <1.29 as the
+ // APIs it relies on were in v1beta3/v1beta2/v1beta1/alpha.
+ // the apiserver library hardcodes the v1 version of the resource
// so the best we can do for older k8s clusters is to allow it to be disabled.
- minSupportedVersionForAPF, err := semver.New("1.26.0")
+ minSupportedVersionForAPF, err := semver.New("1.29.0")
if err != nil {
return nil, err
}
isServerVerLTminSupportedVer := serverVersion.LT(*minSupportedVersionForAPF)
if !opts.EnableAPIPriorityAndFairness || isServerVerLTminSupportedVer {
if isServerVerLTminSupportedVer {
- opts.Logger.Info("The current version of kapp-controller does not support api-priority-and-fairness for versions of kubernets prior to 1.26, disabling this option")
- }
- err := feature.DefaultMutableFeatureGate.Set("APIPriorityAndFairness=false")
- if err != nil {
- return nil, fmt.Errorf("error updating disabling feature gate for APIPriorityAndFairness: %v", err)
+ opts.Logger.Info("The current version of kapp-controller does not support api-priority-and-fairness for versions of kubernets prior to 1.29, disabling this option")
}
+ recommendedOptions.Features.EnablePriorityAndFairness = false
+ }
+
+ // validatingAdmissionPolicy has been made available by default for K8s >= 1.30.
+ // We will remove the validatingAdmissionPolicy from the execution in case K8s < 1.30.
+ // However, we will still run namespaceLifecycle, mutatingAdmissionWebhook and validatingAdmissionWebhooks.
+ minSupportedVersionForValidatingAdmissionPolicy, err := semver.New("1.30.0")
+ if err != nil {
+ return nil, err
+ }
+ isServerVerLTminSupportedVer = serverVersion.LT(*minSupportedVersionForValidatingAdmissionPolicy)
+ if isServerVerLTminSupportedVer {
+ recommendedOptions.Admission.RecommendedPluginOrder = []string{lifecycle.PluginName, mutatingwebhook.PluginName, validatingwebhook.PluginName}
}
serverConfig := genericapiserver.NewRecommendedConfig(Codecs)
+ recommendedOptions.Features.EnablePriorityAndFairness = false
if err := recommendedOptions.ApplyTo(serverConfig); err != nil {
return nil, err
}
- serverConfig.OpenAPIV3Config = genericapiserver.DefaultOpenAPIConfig(
+ serverConfig.OpenAPIV3Config = genericapiserver.DefaultOpenAPIV3Config(
openapi.GetOpenAPIDefinitions,
genericopenapi.NewDefinitionNamer(Scheme))
serverConfig.OpenAPIV3Config.Info.Title = "Kapp-controller"
diff --git a/pkg/app/reconciler.go b/pkg/app/reconciler.go
index 237a2138c..d5761d50f 100644
--- a/pkg/app/reconciler.go
+++ b/pkg/app/reconciler.go
@@ -49,7 +49,7 @@ var _ reconcile.Reconciler = &Reconciler{}
// AttachWatches configures watches needed for reconciler to reconcile Apps.
func (r *Reconciler) AttachWatches(controller controller.Controller, mgr manager.Manager) error {
- err := controller.Watch(source.Kind(mgr.GetCache(), &kcv1alpha1.App{}), &handler.EnqueueRequestForObject{})
+ err := controller.Watch(source.Kind(mgr.GetCache(), &kcv1alpha1.App{}, &handler.TypedEnqueueRequestForObject[*kcv1alpha1.App]{}))
if err != nil {
return fmt.Errorf("Watch Apps: %s", err)
}
@@ -57,12 +57,12 @@ func (r *Reconciler) AttachWatches(controller controller.Controller, mgr manager
secretHandler := reconciler.NewSecretHandler(r.log, r.appRefTracker, r.appUpdateStatus)
cmHandler := reconciler.NewConfigMapHandler(r.log, r.appRefTracker, r.appUpdateStatus)
- err = controller.Watch(source.Kind(mgr.GetCache(), &corev1.Secret{}), secretHandler)
+ err = controller.Watch(source.Kind(mgr.GetCache(), &corev1.Secret{}, secretHandler))
if err != nil {
return fmt.Errorf("Watch Secrets: %s", err)
}
- err = controller.Watch(source.Kind(mgr.GetCache(), &corev1.ConfigMap{}), cmHandler)
+ err = controller.Watch(source.Kind(mgr.GetCache(), &corev1.ConfigMap{}, cmHandler))
if err != nil {
return fmt.Errorf("Watch ConfigMaps: %s", err)
}
diff --git a/pkg/config/reconciler.go b/pkg/config/reconciler.go
index ac542e45b..e59fd1c1d 100644
--- a/pkg/config/reconciler.go
+++ b/pkg/config/reconciler.go
@@ -10,7 +10,6 @@ import (
"github.com/go-logr/logr"
v1 "k8s.io/api/core/v1"
"k8s.io/client-go/kubernetes"
- "sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/manager"
@@ -39,16 +38,26 @@ var _ reconcile.Reconciler = &Reconciler{}
// AttachWatches configures watches needed for reconciler to reconcile the kapp-controller Config.
func (r *Reconciler) AttachWatches(controller controller.Controller, ns string, mgr manager.Manager) error {
// only reconcile on the KC's config
- p := predicate.NewPredicateFuncs(func(o client.Object) bool {
- return o.GetNamespace() == ns && o.GetName() == kcConfigName
- })
+ configMapPredicate := []predicate.TypedPredicate[*v1.ConfigMap]{
+ predicate.NewTypedPredicateFuncs[*v1.ConfigMap](func(cm *v1.ConfigMap) bool {
+ return cm.GetNamespace() == ns && cm.GetName() == kcConfigName
+ }),
+ }
- err := controller.Watch(source.Kind(mgr.GetCache(), &v1.ConfigMap{}), &handler.EnqueueRequestForObject{}, p)
+ err := controller.Watch(
+ source.Kind(mgr.GetCache(), &v1.ConfigMap{}, &handler.TypedEnqueueRequestForObject[*v1.ConfigMap]{}, configMapPredicate...),
+ )
if err != nil {
return fmt.Errorf("Watching Configmaps: %s", err)
}
- err = controller.Watch(source.Kind(mgr.GetCache(), &v1.Secret{}), &handler.EnqueueRequestForObject{}, p)
+ secretPredicate := []predicate.TypedPredicate[*v1.Secret]{
+ predicate.NewTypedPredicateFuncs[*v1.Secret](func(s *v1.Secret) bool {
+ return s.GetNamespace() == ns && s.GetName() == kcConfigName
+ }),
+ }
+
+ err = controller.Watch(source.Kind(mgr.GetCache(), &v1.Secret{}, &handler.TypedEnqueueRequestForObject[*v1.Secret]{}, secretPredicate...))
if err != nil {
return fmt.Errorf("Watching Secrets: %s", err)
}
diff --git a/pkg/packageinstall/packageinstall_version_handler.go b/pkg/packageinstall/packageinstall_version_handler.go
index d131abc6d..6e5fe9571 100644
--- a/pkg/packageinstall/packageinstall_version_handler.go
+++ b/pkg/packageinstall/packageinstall_version_handler.go
@@ -31,14 +31,14 @@ type PackageInstallVersionHandler struct {
log logr.Logger
}
-var _ handler.EventHandler = &PackageInstallVersionHandler{}
+var _ handler.TypedEventHandler[*datapkgingv1alpha1.Package] = &PackageInstallVersionHandler{}
func NewPackageInstallVersionHandler(c kcclient.Interface, globalNS string, log logr.Logger) *PackageInstallVersionHandler {
return &PackageInstallVersionHandler{c, globalNS, log}
}
// Create is called in response to an create event
-func (ipvh *PackageInstallVersionHandler) Create(_ context.Context, evt event.CreateEvent, q workqueue.RateLimitingInterface) {
+func (ipvh *PackageInstallVersionHandler) Create(_ context.Context, evt event.TypedCreateEvent[*datapkgingv1alpha1.Package], q workqueue.RateLimitingInterface) {
ipvh.log.Info("enqueueing PackageInstallList")
err := ipvh.enqueueEligiblePackageInstalls(q, evt.Object)
if err != nil {
@@ -47,7 +47,7 @@ func (ipvh *PackageInstallVersionHandler) Create(_ context.Context, evt event.Cr
}
// Update is called in response to an update event
-func (ipvh *PackageInstallVersionHandler) Update(_ context.Context, evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
+func (ipvh *PackageInstallVersionHandler) Update(_ context.Context, evt event.TypedUpdateEvent[*datapkgingv1alpha1.Package], q workqueue.RateLimitingInterface) {
ipvh.log.Info("enqueueing PackageInstallList")
err := ipvh.enqueueEligiblePackageInstalls(q, evt.ObjectNew)
if err != nil {
@@ -56,7 +56,7 @@ func (ipvh *PackageInstallVersionHandler) Update(_ context.Context, evt event.Up
}
// Delete is called in response to a delete event
-func (ipvh *PackageInstallVersionHandler) Delete(_ context.Context, evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
+func (ipvh *PackageInstallVersionHandler) Delete(_ context.Context, evt event.TypedDeleteEvent[*datapkgingv1alpha1.Package], q workqueue.RateLimitingInterface) {
ipvh.log.Info("enqueueing PackageInstallList")
err := ipvh.enqueueEligiblePackageInstalls(q, evt.Object)
if err != nil {
@@ -66,7 +66,7 @@ func (ipvh *PackageInstallVersionHandler) Delete(_ context.Context, evt event.De
// Generic is called in response to an event of an unknown type or a synthetic event triggered as a cron or
// external trigger request - e.g. reconcile Autoscaling, or a Webhook.
-func (ipvh *PackageInstallVersionHandler) Generic(_ context.Context, evt event.GenericEvent, q workqueue.RateLimitingInterface) {
+func (ipvh *PackageInstallVersionHandler) Generic(_ context.Context, evt event.TypedGenericEvent[*datapkgingv1alpha1.Package], q workqueue.RateLimitingInterface) {
ipvh.log.Info("enqueueing installedPkgList")
err := ipvh.enqueueEligiblePackageInstalls(q, evt.Object)
if err != nil {
diff --git a/pkg/packageinstall/packageinstall_version_handler_test.go b/pkg/packageinstall/packageinstall_version_handler_test.go
index 8ef6d92ca..1ea61b09c 100644
--- a/pkg/packageinstall/packageinstall_version_handler_test.go
+++ b/pkg/packageinstall/packageinstall_version_handler_test.go
@@ -56,7 +56,7 @@ func TestOnlyEligiblePackagesAreEnqueued(t *testing.T) {
kappcs := fake.NewSimpleClientset(&eligibleInstalledPkg, &ineligibleInstalledPkg)
ipvh := pkginstall.NewPackageInstallVersionHandler(kappcs, "", testr.New(t))
- event := event.GenericEvent{
+ event := event.TypedGenericEvent[*datapkgingv1alpha1.Package]{
Object: &datapkgingv1alpha1.Package{
Spec: datapkgingv1alpha1.PackageSpec{
RefName: "expec-pkg",
diff --git a/pkg/packageinstall/reconciler.go b/pkg/packageinstall/reconciler.go
index de120b653..b960beaa6 100644
--- a/pkg/packageinstall/reconciler.go
+++ b/pkg/packageinstall/reconciler.go
@@ -57,18 +57,18 @@ var _ reconcile.Reconciler = &Reconciler{}
// AttachWatches configures watches needed for reconciler to reconcile PackageInstalls.
func (r *Reconciler) AttachWatches(controller controller.Controller, mgr manager.Manager) error {
- err := controller.Watch(source.Kind(mgr.GetCache(), &pkgingv1alpha1.PackageInstall{}), &handler.EnqueueRequestForObject{})
+ err := controller.Watch(source.Kind(mgr.GetCache(), &pkgingv1alpha1.PackageInstall{}, &handler.TypedEnqueueRequestForObject[*pkgingv1alpha1.PackageInstall]{}))
if err != nil {
return fmt.Errorf("Watching PackageInstalls: %s", err)
}
- err = controller.Watch(source.Kind(mgr.GetCache(), &datapkgingv1alpha1.Package{}), r.pkgToPkgInstallHandler)
+ err = controller.Watch(source.Kind(mgr.GetCache(), &datapkgingv1alpha1.Package{}, r.pkgToPkgInstallHandler))
if err != nil {
return fmt.Errorf("Watching Packages: %s", err)
}
- err = controller.Watch(source.Kind(mgr.GetCache(), &kappctrlv1alpha1.App{}), handler.EnqueueRequestForOwner(
- mgr.GetScheme(), mgr.GetRESTMapper(), &pkgingv1alpha1.PackageInstall{}, handler.OnlyControllerOwner()))
+ err = controller.Watch(source.Kind(mgr.GetCache(), &kappctrlv1alpha1.App{}, handler.TypedEnqueueRequestForOwner[*kappctrlv1alpha1.App](
+ mgr.GetScheme(), mgr.GetRESTMapper(), &pkgingv1alpha1.PackageInstall{}, handler.OnlyControllerOwner())))
if err != nil {
return fmt.Errorf("Watching Apps: %s", err)
}
diff --git a/pkg/pkgrepository/reconciler.go b/pkg/pkgrepository/reconciler.go
index fb7d2601d..ea003363a 100644
--- a/pkg/pkgrepository/reconciler.go
+++ b/pkg/pkgrepository/reconciler.go
@@ -48,14 +48,14 @@ func NewReconciler(appClient kcclient.Interface, coreClient kubernetes.Interface
// AttachWatches configures watches needed for reconciler to reconcile PackageRepository.
func (r *Reconciler) AttachWatches(controller controller.Controller, mgr manager.Manager) error {
- err := controller.Watch(source.Kind(mgr.GetCache(), &pkgv1alpha1.PackageRepository{}), &handler.EnqueueRequestForObject{})
+ err := controller.Watch(source.Kind(mgr.GetCache(), &pkgv1alpha1.PackageRepository{}, &handler.TypedEnqueueRequestForObject[*pkgv1alpha1.PackageRepository]{}))
if err != nil {
return fmt.Errorf("Watching PackageRepositories: %s", err)
}
schRepo := reconciler.NewSecretHandler(r.log, r.appRefTracker, r.appUpdateStatus)
- err = controller.Watch(source.Kind(mgr.GetCache(), &corev1.Secret{}), schRepo)
+ err = controller.Watch(source.Kind(mgr.GetCache(), &corev1.Secret{}, schRepo))
if err != nil {
return fmt.Errorf("Watching Secrets: %s", err)
}
diff --git a/pkg/reconciler/configmap_handler.go b/pkg/reconciler/configmap_handler.go
index 5f7e134e5..ed7cdd98c 100644
--- a/pkg/reconciler/configmap_handler.go
+++ b/pkg/reconciler/configmap_handler.go
@@ -8,6 +8,7 @@ import (
"carvel.dev/kapp-controller/pkg/reftracker"
"github.com/go-logr/logr"
+ corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/util/workqueue"
"sigs.k8s.io/controller-runtime/pkg/event"
@@ -21,31 +22,31 @@ type ConfigMapHandler struct {
appUpdateStatus *reftracker.AppUpdateStatus
}
-var _ handler.EventHandler = &ConfigMapHandler{}
+var _ handler.TypedEventHandler[*corev1.ConfigMap] = &ConfigMapHandler{}
func NewConfigMapHandler(log logr.Logger, as *reftracker.AppRefTracker, aus *reftracker.AppUpdateStatus) *ConfigMapHandler {
return &ConfigMapHandler{log, as, aus}
}
// Create is called in response to create event
-func (sch *ConfigMapHandler) Create(_ context.Context, evt event.CreateEvent, q workqueue.RateLimitingInterface) {
+func (sch *ConfigMapHandler) Create(_ context.Context, evt event.TypedCreateEvent[*corev1.ConfigMap], q workqueue.RateLimitingInterface) {
sch.enqueueAppsForUpdate(evt.Object.GetName(), evt.Object.GetNamespace(), q)
}
// Update is called in response to an update event
-func (sch *ConfigMapHandler) Update(_ context.Context, evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
+func (sch *ConfigMapHandler) Update(_ context.Context, evt event.TypedUpdateEvent[*corev1.ConfigMap], q workqueue.RateLimitingInterface) {
sch.enqueueAppsForUpdate(evt.ObjectNew.GetName(), evt.ObjectNew.GetNamespace(), q)
}
// Delete is called in response to a delete event
-func (sch *ConfigMapHandler) Delete(_ context.Context, evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
+func (sch *ConfigMapHandler) Delete(_ context.Context, evt event.TypedDeleteEvent[*corev1.ConfigMap], q workqueue.RateLimitingInterface) {
sch.enqueueAppsForUpdate(evt.Object.GetName(), evt.Object.GetNamespace(), q)
sch.appRefTracker.RemoveRef(reftracker.NewConfigMapKey(evt.Object.GetName(), evt.Object.GetNamespace()))
}
// Generic is called in response to an event of an unknown type or a synthetic event triggered as a cron or
// external trigger request - e.g. reconcile Autoscaling, or a Webhook.
-func (sch *ConfigMapHandler) Generic(_ context.Context, _ event.GenericEvent, _ workqueue.RateLimitingInterface) {
+func (sch *ConfigMapHandler) Generic(_ context.Context, _ event.TypedGenericEvent[*corev1.ConfigMap], _ workqueue.RateLimitingInterface) {
}
func (sch *ConfigMapHandler) enqueueAppsForUpdate(cfgmName, cfgmNamespace string, q workqueue.RateLimitingInterface) error {
diff --git a/pkg/reconciler/secret_handler.go b/pkg/reconciler/secret_handler.go
index 2d9c1f55f..93b701e0f 100644
--- a/pkg/reconciler/secret_handler.go
+++ b/pkg/reconciler/secret_handler.go
@@ -8,6 +8,7 @@ import (
"carvel.dev/kapp-controller/pkg/reftracker"
"github.com/go-logr/logr"
+ corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/util/workqueue"
"sigs.k8s.io/controller-runtime/pkg/event"
@@ -21,31 +22,31 @@ type SecretHandler struct {
appUpdateStatus *reftracker.AppUpdateStatus
}
-var _ handler.EventHandler = &SecretHandler{}
+var _ handler.TypedEventHandler[*corev1.Secret] = &SecretHandler{}
func NewSecretHandler(log logr.Logger, as *reftracker.AppRefTracker, aus *reftracker.AppUpdateStatus) *SecretHandler {
return &SecretHandler{log, as, aus}
}
// Create is called in response to an create event
-func (sch *SecretHandler) Create(_ context.Context, evt event.CreateEvent, q workqueue.RateLimitingInterface) {
+func (sch *SecretHandler) Create(_ context.Context, evt event.TypedCreateEvent[*corev1.Secret], q workqueue.RateLimitingInterface) {
sch.enqueueAppsForUpdate(evt.Object.GetName(), evt.Object.GetNamespace(), q)
}
// Update is called in response to an update event
-func (sch *SecretHandler) Update(_ context.Context, evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
+func (sch *SecretHandler) Update(_ context.Context, evt event.TypedUpdateEvent[*corev1.Secret], q workqueue.RateLimitingInterface) {
sch.enqueueAppsForUpdate(evt.ObjectNew.GetName(), evt.ObjectNew.GetNamespace(), q)
}
// Delete is called in response to a delete event
-func (sch *SecretHandler) Delete(_ context.Context, evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
+func (sch *SecretHandler) Delete(_ context.Context, evt event.TypedDeleteEvent[*corev1.Secret], q workqueue.RateLimitingInterface) {
sch.enqueueAppsForUpdate(evt.Object.GetName(), evt.Object.GetNamespace(), q)
sch.appRefTracker.RemoveRef(reftracker.NewSecretKey(evt.Object.GetName(), evt.Object.GetNamespace()))
}
// Generic is called in response to an event of an unknown type or a synthetic event triggered as a cron or
// external trigger request - e.g. reconcile Autoscaling, or a Webhook.
-func (sch *SecretHandler) Generic(_ context.Context, _ event.GenericEvent, _ workqueue.RateLimitingInterface) {
+func (sch *SecretHandler) Generic(_ context.Context, _ event.TypedGenericEvent[*corev1.Secret], _ workqueue.RateLimitingInterface) {
}
func (sch *SecretHandler) enqueueAppsForUpdate(secretName, secretNamespace string, q workqueue.RateLimitingInterface) error {
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/LICENSE b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/LICENSE
similarity index 100%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/LICENSE
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/LICENSE
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/antlrdoc.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/antlrdoc.go
new file mode 100644
index 000000000..ab5121267
--- /dev/null
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/antlrdoc.go
@@ -0,0 +1,68 @@
+/*
+Package antlr implements the Go version of the ANTLR 4 runtime.
+
+# The ANTLR Tool
+
+ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing,
+or translating structured text or binary files. It's widely used to build languages, tools, and frameworks.
+From a grammar, ANTLR generates a parser that can build parse trees and also generates a listener interface
+(or visitor) that makes it easy to respond to the recognition of phrases of interest.
+
+# Code Generation
+
+ANTLR supports the generation of code in a number of [target languages], and the generated code is supported by a
+runtime library, written specifically to support the generated code in the target language. This library is the
+runtime for the Go target.
+
+To generate code for the go target, it is generally recommended to place the source grammar files in a package of
+their own, and use the `.sh` script method of generating code, using the go generate directive. In that same directory
+it is usual, though not required, to place the antlr tool that should be used to generate the code. That does mean
+that the antlr tool JAR file will be checked in to your source code control though, so you are free to use any other
+way of specifying the version of the ANTLR tool to use, such as aliasing in `.zshrc` or equivalent, or a profile in
+your IDE, or configuration in your CI system.
+
+Here is a general template for an ANTLR based recognizer in Go:
+
+ .
+ ├── myproject
+ ├── parser
+ │ ├── mygrammar.g4
+ │ ├── antlr-4.12.0-complete.jar
+ │ ├── error_listeners.go
+ │ ├── generate.go
+ │ ├── generate.sh
+ ├── go.mod
+ ├── go.sum
+ ├── main.go
+ └── main_test.go
+
+Make sure that the package statement in your grammar file(s) reflects the go package they exist in.
+The generate.go file then looks like this:
+
+ package parser
+
+ //go:generate ./generate.sh
+
+And the generate.sh file will look similar to this:
+
+ #!/bin/sh
+
+ alias antlr4='java -Xmx500M -cp "./antlr4-4.12.0-complete.jar:$CLASSPATH" org.antlr.v4.Tool'
+ antlr4 -Dlanguage=Go -no-visitor -package parser *.g4
+
+depending on whether you want visitors or listeners or any other ANTLR options.
+
+From the command line at the root of your package “myproject” you can then simply issue the command:
+
+ go generate ./...
+
+# Copyright Notice
+
+Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
+
+Use of this file is governed by the BSD 3-clause license, which can be found in the [LICENSE.txt] file in the project root.
+
+[target languages]: https://github.com/antlr/antlr4/tree/master/runtime
+[LICENSE.txt]: https://github.com/antlr/antlr4/blob/master/LICENSE.txt
+*/
+package antlr
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn.go
similarity index 72%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn.go
index a4e2079e6..98010d2e6 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -6,11 +6,24 @@ package antlr
import "sync"
+// ATNInvalidAltNumber is used to represent an ALT number that has yet to be calculated or
+// which is invalid for a particular struct such as [*antlr.BaseRuleContext]
var ATNInvalidAltNumber int
+// ATN represents an “[Augmented Transition Network]”, though general in ANTLR the term
+// “Augmented Recursive Transition Network” though there are some descriptions of “[Recursive Transition Network]”
+// in existence.
+//
+// ATNs represent the main networks in the system and are serialized by the code generator and support [ALL(*)].
+//
+// [Augmented Transition Network]: https://en.wikipedia.org/wiki/Augmented_transition_network
+// [ALL(*)]: https://www.antlr.org/papers/allstar-techreport.pdf
+// [Recursive Transition Network]: https://en.wikipedia.org/wiki/Recursive_transition_network
type ATN struct {
// DecisionToState is the decision points for all rules, subrules, optional
- // blocks, ()+, ()*, etc. Used to build DFA predictors for them.
+ // blocks, ()+, ()*, etc. Each subrule/rule is a decision point, and we must track them so we
+ // can go back later and build DFA predictors for them. This includes
+ // all the rules, subrules, optional blocks, ()+, ()* etc...
DecisionToState []DecisionState
// grammarType is the ATN type and is used for deserializing ATNs from strings.
@@ -45,6 +58,8 @@ type ATN struct {
edgeMu sync.RWMutex
}
+// NewATN returns a new ATN struct representing the given grammarType and is used
+// for runtime deserialization of ATNs from the code generated by the ANTLR tool
func NewATN(grammarType int, maxTokenType int) *ATN {
return &ATN{
grammarType: grammarType,
@@ -53,7 +68,7 @@ func NewATN(grammarType int, maxTokenType int) *ATN {
}
}
-// NextTokensInContext computes the set of valid tokens that can occur starting
+// NextTokensInContext computes and returns the set of valid tokens that can occur starting
// in state s. If ctx is nil, the set of tokens will not include what can follow
// the rule surrounding s. In other words, the set will be restricted to tokens
// reachable staying within the rule of s.
@@ -61,8 +76,8 @@ func (a *ATN) NextTokensInContext(s ATNState, ctx RuleContext) *IntervalSet {
return NewLL1Analyzer(a).Look(s, nil, ctx)
}
-// NextTokensNoContext computes the set of valid tokens that can occur starting
-// in s and staying in same rule. Token.EPSILON is in set if we reach end of
+// NextTokensNoContext computes and returns the set of valid tokens that can occur starting
+// in state s and staying in same rule. [antlr.Token.EPSILON] is in set if we reach end of
// rule.
func (a *ATN) NextTokensNoContext(s ATNState) *IntervalSet {
a.mu.Lock()
@@ -76,6 +91,8 @@ func (a *ATN) NextTokensNoContext(s ATNState) *IntervalSet {
return iset
}
+// NextTokens computes and returns the set of valid tokens starting in state s, by
+// calling either [NextTokensNoContext] (ctx == nil) or [NextTokensInContext] (ctx != nil).
func (a *ATN) NextTokens(s ATNState, ctx RuleContext) *IntervalSet {
if ctx == nil {
return a.NextTokensNoContext(s)
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config.go
similarity index 84%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config.go
index 97ba417f7..7619fa172 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -8,19 +8,14 @@ import (
"fmt"
)
-type comparable interface {
- equals(other interface{}) bool
-}
-
// ATNConfig is a tuple: (ATN state, predicted alt, syntactic, semantic
// context). The syntactic context is a graph-structured stack node whose
// path(s) to the root is the rule invocation(s) chain used to arrive at the
// state. The semantic context is the tree of semantic predicates encountered
// before reaching an ATN state.
type ATNConfig interface {
- comparable
-
- hash() int
+ Equals(o Collectable[ATNConfig]) bool
+ Hash() int
GetState() ATNState
GetAlt() int
@@ -47,7 +42,7 @@ type BaseATNConfig struct {
reachesIntoOuterContext int
}
-func NewBaseATNConfig7(old *BaseATNConfig) *BaseATNConfig { // TODO: Dup
+func NewBaseATNConfig7(old *BaseATNConfig) ATNConfig { // TODO: Dup
return &BaseATNConfig{
state: old.state,
alt: old.alt,
@@ -135,11 +130,16 @@ func (b *BaseATNConfig) SetReachesIntoOuterContext(v int) {
b.reachesIntoOuterContext = v
}
+// Equals is the default comparison function for an ATNConfig when no specialist implementation is required
+// for a collection.
+//
// An ATN configuration is equal to another if both have the same state, they
// predict the same alternative, and syntactic/semantic contexts are the same.
-func (b *BaseATNConfig) equals(o interface{}) bool {
+func (b *BaseATNConfig) Equals(o Collectable[ATNConfig]) bool {
if b == o {
return true
+ } else if o == nil {
+ return false
}
var other, ok = o.(*BaseATNConfig)
@@ -153,30 +153,32 @@ func (b *BaseATNConfig) equals(o interface{}) bool {
if b.context == nil {
equal = other.context == nil
} else {
- equal = b.context.equals(other.context)
+ equal = b.context.Equals(other.context)
}
var (
nums = b.state.GetStateNumber() == other.state.GetStateNumber()
alts = b.alt == other.alt
- cons = b.semanticContext.equals(other.semanticContext)
+ cons = b.semanticContext.Equals(other.semanticContext)
sups = b.precedenceFilterSuppressed == other.precedenceFilterSuppressed
)
return nums && alts && cons && sups && equal
}
-func (b *BaseATNConfig) hash() int {
+// Hash is the default hash function for BaseATNConfig, when no specialist hash function
+// is required for a collection
+func (b *BaseATNConfig) Hash() int {
var c int
if b.context != nil {
- c = b.context.hash()
+ c = b.context.Hash()
}
h := murmurInit(7)
h = murmurUpdate(h, b.state.GetStateNumber())
h = murmurUpdate(h, b.alt)
h = murmurUpdate(h, c)
- h = murmurUpdate(h, b.semanticContext.hash())
+ h = murmurUpdate(h, b.semanticContext.Hash())
return murmurFinish(h, 4)
}
@@ -243,7 +245,9 @@ func NewLexerATNConfig1(state ATNState, alt int, context PredictionContext) *Lex
return &LexerATNConfig{BaseATNConfig: NewBaseATNConfig5(state, alt, context, SemanticContextNone)}
}
-func (l *LexerATNConfig) hash() int {
+// Hash is the default hash function for LexerATNConfig objects, it can be used directly or via
+// the default comparator [ObjEqComparator].
+func (l *LexerATNConfig) Hash() int {
var f int
if l.passedThroughNonGreedyDecision {
f = 1
@@ -253,15 +257,20 @@ func (l *LexerATNConfig) hash() int {
h := murmurInit(7)
h = murmurUpdate(h, l.state.GetStateNumber())
h = murmurUpdate(h, l.alt)
- h = murmurUpdate(h, l.context.hash())
- h = murmurUpdate(h, l.semanticContext.hash())
+ h = murmurUpdate(h, l.context.Hash())
+ h = murmurUpdate(h, l.semanticContext.Hash())
h = murmurUpdate(h, f)
- h = murmurUpdate(h, l.lexerActionExecutor.hash())
+ h = murmurUpdate(h, l.lexerActionExecutor.Hash())
h = murmurFinish(h, 6)
return h
}
-func (l *LexerATNConfig) equals(other interface{}) bool {
+// Equals is the default comparison function for LexerATNConfig objects, it can be used directly or via
+// the default comparator [ObjEqComparator].
+func (l *LexerATNConfig) Equals(other Collectable[ATNConfig]) bool {
+ if l == other {
+ return true
+ }
var othert, ok = other.(*LexerATNConfig)
if l == other {
@@ -275,7 +284,7 @@ func (l *LexerATNConfig) equals(other interface{}) bool {
var b bool
if l.lexerActionExecutor != nil {
- b = !l.lexerActionExecutor.equals(othert.lexerActionExecutor)
+ b = !l.lexerActionExecutor.Equals(othert.lexerActionExecutor)
} else {
b = othert.lexerActionExecutor != nil
}
@@ -284,10 +293,9 @@ func (l *LexerATNConfig) equals(other interface{}) bool {
return false
}
- return l.BaseATNConfig.equals(othert.BaseATNConfig)
+ return l.BaseATNConfig.Equals(othert.BaseATNConfig)
}
-
func checkNonGreedyDecision(source *LexerATNConfig, target ATNState) bool {
var ds, ok = target.(DecisionState)
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config_set.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config_set.go
similarity index 81%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config_set.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config_set.go
index 49ad4a719..43e9b33f3 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_config_set.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_config_set.go
@@ -1,24 +1,25 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
package antlr
-import "fmt"
+import (
+ "fmt"
+)
type ATNConfigSet interface {
- hash() int
+ Hash() int
+ Equals(o Collectable[ATNConfig]) bool
Add(ATNConfig, *DoubleDict) bool
AddAll([]ATNConfig) bool
- GetStates() Set
+ GetStates() *JStore[ATNState, Comparator[ATNState]]
GetPredicates() []SemanticContext
GetItems() []ATNConfig
OptimizeConfigs(interpreter *BaseATNSimulator)
- Equals(other interface{}) bool
-
Length() int
IsEmpty() bool
Contains(ATNConfig) bool
@@ -57,7 +58,7 @@ type BaseATNConfigSet struct {
// effectively doubles the number of objects associated with ATNConfigs. All
// keys are hashed by (s, i, _, pi), not including the context. Wiped out when
// read-only because a set becomes a DFA state.
- configLookup Set
+ configLookup *JStore[ATNConfig, Comparator[ATNConfig]]
// configs is the added elements.
configs []ATNConfig
@@ -83,7 +84,7 @@ type BaseATNConfigSet struct {
// readOnly is whether it is read-only. Do not
// allow any code to manipulate the set if true because DFA states will point at
- // sets and those must not change. It not protect other fields; conflictingAlts
+ // sets and those must not change. It not, protect other fields; conflictingAlts
// in particular, which is assigned after readOnly.
readOnly bool
@@ -104,7 +105,7 @@ func (b *BaseATNConfigSet) Alts() *BitSet {
func NewBaseATNConfigSet(fullCtx bool) *BaseATNConfigSet {
return &BaseATNConfigSet{
cachedHash: -1,
- configLookup: newArray2DHashSetWithCap(hashATNConfig, equalATNConfigs, 16, 2),
+ configLookup: NewJStore[ATNConfig, Comparator[ATNConfig]](aConfCompInst),
fullCtx: fullCtx,
}
}
@@ -126,9 +127,11 @@ func (b *BaseATNConfigSet) Add(config ATNConfig, mergeCache *DoubleDict) bool {
b.dipsIntoOuterContext = true
}
- existing := b.configLookup.Add(config).(ATNConfig)
+ existing, present := b.configLookup.Put(config)
- if existing == config {
+ // The config was not already in the set
+ //
+ if !present {
b.cachedHash = -1
b.configs = append(b.configs, config) // Track order here
return true
@@ -154,11 +157,14 @@ func (b *BaseATNConfigSet) Add(config ATNConfig, mergeCache *DoubleDict) bool {
return true
}
-func (b *BaseATNConfigSet) GetStates() Set {
- states := newArray2DHashSet(nil, nil)
+func (b *BaseATNConfigSet) GetStates() *JStore[ATNState, Comparator[ATNState]] {
+
+ // states uses the standard comparator provided by the ATNState instance
+ //
+ states := NewJStore[ATNState, Comparator[ATNState]](aStateEqInst)
for i := 0; i < len(b.configs); i++ {
- states.Add(b.configs[i].GetState())
+ states.Put(b.configs[i].GetState())
}
return states
@@ -214,7 +220,34 @@ func (b *BaseATNConfigSet) AddAll(coll []ATNConfig) bool {
return false
}
-func (b *BaseATNConfigSet) Equals(other interface{}) bool {
+// Compare is a hack function just to verify that adding DFAstares to the known
+// set works, so long as comparison of ATNConfigSet s works. For that to work, we
+// need to make sure that the set of ATNConfigs in two sets are equivalent. We can't
+// know the order, so we do this inefficient hack. If this proves the point, then
+// we can change the config set to a better structure.
+func (b *BaseATNConfigSet) Compare(bs *BaseATNConfigSet) bool {
+ if len(b.configs) != len(bs.configs) {
+ return false
+ }
+
+ for _, c := range b.configs {
+ found := false
+ for _, c2 := range bs.configs {
+ if c.Equals(c2) {
+ found = true
+ break
+ }
+ }
+
+ if !found {
+ return false
+ }
+
+ }
+ return true
+}
+
+func (b *BaseATNConfigSet) Equals(other Collectable[ATNConfig]) bool {
if b == other {
return true
} else if _, ok := other.(*BaseATNConfigSet); !ok {
@@ -224,15 +257,15 @@ func (b *BaseATNConfigSet) Equals(other interface{}) bool {
other2 := other.(*BaseATNConfigSet)
return b.configs != nil &&
- // TODO: b.configs.equals(other2.configs) && // TODO: Is b necessary?
b.fullCtx == other2.fullCtx &&
b.uniqueAlt == other2.uniqueAlt &&
b.conflictingAlts == other2.conflictingAlts &&
b.hasSemanticContext == other2.hasSemanticContext &&
- b.dipsIntoOuterContext == other2.dipsIntoOuterContext
+ b.dipsIntoOuterContext == other2.dipsIntoOuterContext &&
+ b.Compare(other2)
}
-func (b *BaseATNConfigSet) hash() int {
+func (b *BaseATNConfigSet) Hash() int {
if b.readOnly {
if b.cachedHash == -1 {
b.cachedHash = b.hashCodeConfigs()
@@ -247,7 +280,7 @@ func (b *BaseATNConfigSet) hash() int {
func (b *BaseATNConfigSet) hashCodeConfigs() int {
h := 1
for _, config := range b.configs {
- h = 31*h + config.hash()
+ h = 31*h + config.Hash()
}
return h
}
@@ -283,7 +316,7 @@ func (b *BaseATNConfigSet) Clear() {
b.configs = make([]ATNConfig, 0)
b.cachedHash = -1
- b.configLookup = newArray2DHashSet(nil, equalATNConfigs)
+ b.configLookup = NewJStore[ATNConfig, Comparator[ATNConfig]](atnConfCompInst)
}
func (b *BaseATNConfigSet) FullContext() bool {
@@ -365,7 +398,8 @@ type OrderedATNConfigSet struct {
func NewOrderedATNConfigSet() *OrderedATNConfigSet {
b := NewBaseATNConfigSet(false)
- b.configLookup = newArray2DHashSet(nil, nil)
+ // This set uses the standard Hash() and Equals() from ATNConfig
+ b.configLookup = NewJStore[ATNConfig, Comparator[ATNConfig]](aConfEqInst)
return &OrderedATNConfigSet{BaseATNConfigSet: b}
}
@@ -375,7 +409,7 @@ func hashATNConfig(i interface{}) int {
hash := 7
hash = 31*hash + o.GetState().GetStateNumber()
hash = 31*hash + o.GetAlt()
- hash = 31*hash + o.GetSemanticContext().hash()
+ hash = 31*hash + o.GetSemanticContext().Hash()
return hash
}
@@ -403,5 +437,5 @@ func equalATNConfigs(a, b interface{}) bool {
return false
}
- return ai.GetSemanticContext().equals(bi.GetSemanticContext())
+ return ai.GetSemanticContext().Equals(bi.GetSemanticContext())
}
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserialization_options.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserialization_options.go
similarity index 96%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserialization_options.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserialization_options.go
index cb8eafb0b..3c975ec7b 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserialization_options.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserialization_options.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserializer.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserializer.go
similarity index 99%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserializer.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserializer.go
index aea9bbfa9..3888856b4 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_deserializer.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_deserializer.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_simulator.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_simulator.go
similarity index 94%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_simulator.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_simulator.go
index d5454d6d5..41529115f 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_simulator.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_simulator.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_state.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_state.go
similarity index 97%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_state.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_state.go
index 3835bb2e9..1f2a56bc3 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_state.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_state.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -49,7 +49,8 @@ type ATNState interface {
AddTransition(Transition, int)
String() string
- hash() int
+ Hash() int
+ Equals(Collectable[ATNState]) bool
}
type BaseATNState struct {
@@ -123,7 +124,7 @@ func (as *BaseATNState) SetNextTokenWithinRule(v *IntervalSet) {
as.NextTokenWithinRule = v
}
-func (as *BaseATNState) hash() int {
+func (as *BaseATNState) Hash() int {
return as.stateNumber
}
@@ -131,7 +132,7 @@ func (as *BaseATNState) String() string {
return strconv.Itoa(as.stateNumber)
}
-func (as *BaseATNState) equals(other interface{}) bool {
+func (as *BaseATNState) Equals(other Collectable[ATNState]) bool {
if ot, ok := other.(ATNState); ok {
return as.stateNumber == ot.GetStateNumber()
}
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_type.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_type.go
similarity index 79%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_type.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_type.go
index a7b48976b..3a515a145 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/atn_type.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/atn_type.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/char_stream.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/char_stream.go
similarity index 82%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/char_stream.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/char_stream.go
index 70c1207f7..c33f0adb5 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/char_stream.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/char_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_factory.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_factory.go
similarity index 96%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_factory.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_factory.go
index 330ff8f31..1bb0314ea 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_factory.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_factory.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_stream.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_stream.go
similarity index 98%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_stream.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_stream.go
index c90e9b890..c6c9485a2 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/common_token_stream.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/common_token_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -331,10 +331,12 @@ func (c *CommonTokenStream) GetTextFromRuleContext(interval RuleContext) string
func (c *CommonTokenStream) GetTextFromInterval(interval *Interval) string {
c.lazyInit()
- c.Fill()
if interval == nil {
+ c.Fill()
interval = NewInterval(0, len(c.tokens)-1)
+ } else {
+ c.Sync(interval.Stop)
}
start := interval.Start
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/comparators.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/comparators.go
new file mode 100644
index 000000000..9ea320053
--- /dev/null
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/comparators.go
@@ -0,0 +1,147 @@
+package antlr
+
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
+// Use of this file is governed by the BSD 3-clause license that
+// can be found in the LICENSE.txt file in the project root.
+
+// This file contains all the implementations of custom comparators used for generic collections when the
+// Hash() and Equals() funcs supplied by the struct objects themselves need to be overridden. Normally, we would
+// put the comparators in the source file for the struct themselves, but given the organization of this code is
+// sorta kinda based upon the Java code, I found it confusing trying to find out which comparator was where and used by
+// which instantiation of a collection. For instance, an Array2DHashSet in the Java source, when used with ATNConfig
+// collections requires three different comparators depending on what the collection is being used for. Collecting - pun intended -
+// all the comparators here, makes it much easier to see which implementation of hash and equals is used by which collection.
+// It also makes it easy to verify that the Hash() and Equals() functions marry up with the Java implementations.
+
+// ObjEqComparator is the equivalent of the Java ObjectEqualityComparator, which is the default instance of
+// Equality comparator. We do not have inheritance in Go, only interfaces, so we use generics to enforce some
+// type safety and avoid having to implement this for every type that we want to perform comparison on.
+//
+// This comparator works by using the standard Hash() and Equals() methods of the type T that is being compared. Which
+// allows us to use it in any collection instance that does nto require a special hash or equals implementation.
+type ObjEqComparator[T Collectable[T]] struct{}
+
+var (
+ aStateEqInst = &ObjEqComparator[ATNState]{}
+ aConfEqInst = &ObjEqComparator[ATNConfig]{}
+ aConfCompInst = &ATNConfigComparator[ATNConfig]{}
+ atnConfCompInst = &BaseATNConfigComparator[ATNConfig]{}
+ dfaStateEqInst = &ObjEqComparator[*DFAState]{}
+ semctxEqInst = &ObjEqComparator[SemanticContext]{}
+ atnAltCfgEqInst = &ATNAltConfigComparator[ATNConfig]{}
+)
+
+// Equals2 delegates to the Equals() method of type T
+func (c *ObjEqComparator[T]) Equals2(o1, o2 T) bool {
+ return o1.Equals(o2)
+}
+
+// Hash1 delegates to the Hash() method of type T
+func (c *ObjEqComparator[T]) Hash1(o T) int {
+
+ return o.Hash()
+}
+
+type SemCComparator[T Collectable[T]] struct{}
+
+// ATNConfigComparator is used as the compartor for the configLookup field of an ATNConfigSet
+// and has a custom Equals() and Hash() implementation, because equality is not based on the
+// standard Hash() and Equals() methods of the ATNConfig type.
+type ATNConfigComparator[T Collectable[T]] struct {
+}
+
+// Equals2 is a custom comparator for ATNConfigs specifically for configLookup
+func (c *ATNConfigComparator[T]) Equals2(o1, o2 ATNConfig) bool {
+
+ // Same pointer, must be equal, even if both nil
+ //
+ if o1 == o2 {
+ return true
+
+ }
+
+ // If either are nil, but not both, then the result is false
+ //
+ if o1 == nil || o2 == nil {
+ return false
+ }
+
+ return o1.GetState().GetStateNumber() == o2.GetState().GetStateNumber() &&
+ o1.GetAlt() == o2.GetAlt() &&
+ o1.GetSemanticContext().Equals(o2.GetSemanticContext())
+}
+
+// Hash1 is custom hash implementation for ATNConfigs specifically for configLookup
+func (c *ATNConfigComparator[T]) Hash1(o ATNConfig) int {
+ hash := 7
+ hash = 31*hash + o.GetState().GetStateNumber()
+ hash = 31*hash + o.GetAlt()
+ hash = 31*hash + o.GetSemanticContext().Hash()
+ return hash
+}
+
+// ATNAltConfigComparator is used as the comparator for mapping configs to Alt Bitsets
+type ATNAltConfigComparator[T Collectable[T]] struct {
+}
+
+// Equals2 is a custom comparator for ATNConfigs specifically for configLookup
+func (c *ATNAltConfigComparator[T]) Equals2(o1, o2 ATNConfig) bool {
+
+ // Same pointer, must be equal, even if both nil
+ //
+ if o1 == o2 {
+ return true
+
+ }
+
+ // If either are nil, but not both, then the result is false
+ //
+ if o1 == nil || o2 == nil {
+ return false
+ }
+
+ return o1.GetState().GetStateNumber() == o2.GetState().GetStateNumber() &&
+ o1.GetContext().Equals(o2.GetContext())
+}
+
+// Hash1 is custom hash implementation for ATNConfigs specifically for configLookup
+func (c *ATNAltConfigComparator[T]) Hash1(o ATNConfig) int {
+ h := murmurInit(7)
+ h = murmurUpdate(h, o.GetState().GetStateNumber())
+ h = murmurUpdate(h, o.GetContext().Hash())
+ return murmurFinish(h, 2)
+}
+
+// BaseATNConfigComparator is used as the comparator for the configLookup field of a BaseATNConfigSet
+// and has a custom Equals() and Hash() implementation, because equality is not based on the
+// standard Hash() and Equals() methods of the ATNConfig type.
+type BaseATNConfigComparator[T Collectable[T]] struct {
+}
+
+// Equals2 is a custom comparator for ATNConfigs specifically for baseATNConfigSet
+func (c *BaseATNConfigComparator[T]) Equals2(o1, o2 ATNConfig) bool {
+
+ // Same pointer, must be equal, even if both nil
+ //
+ if o1 == o2 {
+ return true
+
+ }
+
+ // If either are nil, but not both, then the result is false
+ //
+ if o1 == nil || o2 == nil {
+ return false
+ }
+
+ return o1.GetState().GetStateNumber() == o2.GetState().GetStateNumber() &&
+ o1.GetAlt() == o2.GetAlt() &&
+ o1.GetSemanticContext().Equals(o2.GetSemanticContext())
+}
+
+// Hash1 is custom hash implementation for ATNConfigs specifically for configLookup, but in fact just
+// delegates to the standard Hash() method of the ATNConfig type.
+func (c *BaseATNConfigComparator[T]) Hash1(o ATNConfig) int {
+
+ return o.Hash()
+}
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa.go
similarity index 80%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa.go
index d55a2a87d..bfd43e1f7 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa.go
@@ -1,13 +1,9 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
package antlr
-import (
- "sort"
-)
-
type DFA struct {
// atnStartState is the ATN state in which this was created
atnStartState DecisionState
@@ -15,8 +11,15 @@ type DFA struct {
decision int
// states is all the DFA states. Use Map to get the old state back; Set can only
- // indicate whether it is there.
- states map[int]*DFAState
+ // indicate whether it is there. Go maps implement key hash collisions and so on and are very
+ // good, but the DFAState is an object and can't be used directly as the key as it can in say JAva
+ // amd C#, whereby if the hashcode is the same for two objects, then Equals() is called against them
+ // to see if they really are the same object.
+ //
+ //
+ states *JStore[*DFAState, *ObjEqComparator[*DFAState]]
+
+ numstates int
s0 *DFAState
@@ -29,7 +32,7 @@ func NewDFA(atnStartState DecisionState, decision int) *DFA {
dfa := &DFA{
atnStartState: atnStartState,
decision: decision,
- states: make(map[int]*DFAState),
+ states: NewJStore[*DFAState, *ObjEqComparator[*DFAState]](dfaStateEqInst),
}
if s, ok := atnStartState.(*StarLoopEntryState); ok && s.precedenceRuleDecision {
dfa.precedenceDfa = true
@@ -92,7 +95,8 @@ func (d *DFA) getPrecedenceDfa() bool {
// true or nil otherwise, and d.precedenceDfa is updated.
func (d *DFA) setPrecedenceDfa(precedenceDfa bool) {
if d.getPrecedenceDfa() != precedenceDfa {
- d.setStates(make(map[int]*DFAState))
+ d.states = NewJStore[*DFAState, *ObjEqComparator[*DFAState]](dfaStateEqInst)
+ d.numstates = 0
if precedenceDfa {
precedenceState := NewDFAState(-1, NewBaseATNConfigSet(false))
@@ -117,38 +121,12 @@ func (d *DFA) setS0(s *DFAState) {
d.s0 = s
}
-func (d *DFA) getState(hash int) (*DFAState, bool) {
- s, ok := d.states[hash]
- return s, ok
-}
-
-func (d *DFA) setStates(states map[int]*DFAState) {
- d.states = states
-}
-
-func (d *DFA) setState(hash int, state *DFAState) {
- d.states[hash] = state
-}
-
-func (d *DFA) numStates() int {
- return len(d.states)
-}
-
-type dfaStateList []*DFAState
-
-func (d dfaStateList) Len() int { return len(d) }
-func (d dfaStateList) Less(i, j int) bool { return d[i].stateNumber < d[j].stateNumber }
-func (d dfaStateList) Swap(i, j int) { d[i], d[j] = d[j], d[i] }
-
// sortedStates returns the states in d sorted by their state number.
func (d *DFA) sortedStates() []*DFAState {
- vs := make([]*DFAState, 0, len(d.states))
-
- for _, v := range d.states {
- vs = append(vs, v)
- }
- sort.Sort(dfaStateList(vs))
+ vs := d.states.SortedSlice(func(i, j *DFAState) bool {
+ return i.stateNumber < j.stateNumber
+ })
return vs
}
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_serializer.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_serializer.go
similarity index 97%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_serializer.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_serializer.go
index bf2ccc06c..84d0a31e5 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_serializer.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_serializer.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_state.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_state.go
similarity index 90%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_state.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_state.go
index 970ed1986..c90dec55c 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/dfa_state.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/dfa_state.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -90,16 +90,16 @@ func NewDFAState(stateNumber int, configs ATNConfigSet) *DFAState {
}
// GetAltSet gets the set of all alts mentioned by all ATN configurations in d.
-func (d *DFAState) GetAltSet() Set {
- alts := newArray2DHashSet(nil, nil)
+func (d *DFAState) GetAltSet() []int {
+ var alts []int
if d.configs != nil {
for _, c := range d.configs.GetItems() {
- alts.Add(c.GetAlt())
+ alts = append(alts, c.GetAlt())
}
}
- if alts.Len() == 0 {
+ if len(alts) == 0 {
return nil
}
@@ -130,27 +130,6 @@ func (d *DFAState) setPrediction(v int) {
d.prediction = v
}
-// equals returns whether d equals other. Two DFAStates are equal if their ATN
-// configuration sets are the same. This method is used to see if a state
-// already exists.
-//
-// Because the number of alternatives and number of ATN configurations are
-// finite, there is a finite number of DFA states that can be processed. This is
-// necessary to show that the algorithm terminates.
-//
-// Cannot test the DFA state numbers here because in
-// ParserATNSimulator.addDFAState we need to know if any other state exists that
-// has d exact set of ATN configurations. The stateNumber is irrelevant.
-func (d *DFAState) equals(other interface{}) bool {
- if d == other {
- return true
- } else if _, ok := other.(*DFAState); !ok {
- return false
- }
-
- return d.configs.Equals(other.(*DFAState).configs)
-}
-
func (d *DFAState) String() string {
var s string
if d.isAcceptState {
@@ -164,8 +143,27 @@ func (d *DFAState) String() string {
return fmt.Sprintf("%d:%s%s", d.stateNumber, fmt.Sprint(d.configs), s)
}
-func (d *DFAState) hash() int {
+func (d *DFAState) Hash() int {
h := murmurInit(7)
- h = murmurUpdate(h, d.configs.hash())
+ h = murmurUpdate(h, d.configs.Hash())
return murmurFinish(h, 1)
}
+
+// Equals returns whether d equals other. Two DFAStates are equal if their ATN
+// configuration sets are the same. This method is used to see if a state
+// already exists.
+//
+// Because the number of alternatives and number of ATN configurations are
+// finite, there is a finite number of DFA states that can be processed. This is
+// necessary to show that the algorithm terminates.
+//
+// Cannot test the DFA state numbers here because in
+// ParserATNSimulator.addDFAState we need to know if any other state exists that
+// has d exact set of ATN configurations. The stateNumber is irrelevant.
+func (d *DFAState) Equals(o Collectable[*DFAState]) bool {
+ if d == o {
+ return true
+ }
+
+ return d.configs.Equals(o.(*DFAState).configs)
+}
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/diagnostic_error_listener.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/diagnostic_error_listener.go
similarity index 98%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/diagnostic_error_listener.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/diagnostic_error_listener.go
index 1fec43d9d..c55bcc19b 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/diagnostic_error_listener.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/diagnostic_error_listener.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -87,7 +87,6 @@ func (d *DiagnosticErrorListener) getDecisionDescription(recognizer Parser, dfa
return strconv.Itoa(decision) + " (" + ruleName + ")"
}
-//
// Computes the set of conflicting or ambiguous alternatives from a
// configuration set, if that information was not already provided by the
// parser.
@@ -97,7 +96,6 @@ func (d *DiagnosticErrorListener) getDecisionDescription(recognizer Parser, dfa
// @param configs The conflicting or ambiguous configuration set.
// @return Returns {@code ReportedAlts} if it is not {@code nil}, otherwise
// returns the set of alternatives represented in {@code configs}.
-//
func (d *DiagnosticErrorListener) getConflictingAlts(ReportedAlts *BitSet, set ATNConfigSet) *BitSet {
if ReportedAlts != nil {
return ReportedAlts
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_listener.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_listener.go
similarity index 98%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_listener.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_listener.go
index 028e1a9d7..f679f0dcd 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_listener.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_listener.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -48,12 +48,9 @@ func NewConsoleErrorListener() *ConsoleErrorListener {
return new(ConsoleErrorListener)
}
-//
// Provides a default instance of {@link ConsoleErrorListener}.
-//
var ConsoleErrorListenerINSTANCE = NewConsoleErrorListener()
-//
// {@inheritDoc}
//
//
@@ -64,7 +61,6 @@ var ConsoleErrorListenerINSTANCE = NewConsoleErrorListener()
//
// line line:charPositionInLine msg
//
-//
func (c *ConsoleErrorListener) SyntaxError(recognizer Recognizer, offendingSymbol interface{}, line, column int, msg string, e RecognitionException) {
fmt.Fprintln(os.Stderr, "line "+strconv.Itoa(line)+":"+strconv.Itoa(column)+" "+msg)
}
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_strategy.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_strategy.go
similarity index 99%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_strategy.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_strategy.go
index c4080dbfd..5c0a637ba 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/error_strategy.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/error_strategy.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -23,7 +23,6 @@ type ErrorStrategy interface {
// This is the default implementation of {@link ANTLRErrorStrategy} used for
// error Reporting and recovery in ANTLR parsers.
-//
type DefaultErrorStrategy struct {
errorRecoveryMode bool
lastErrorIndex int
@@ -61,12 +60,10 @@ func (d *DefaultErrorStrategy) reset(recognizer Parser) {
d.endErrorCondition(recognizer)
}
-//
// This method is called to enter error recovery mode when a recognition
// exception is Reported.
//
// @param recognizer the parser instance
-//
func (d *DefaultErrorStrategy) beginErrorCondition(recognizer Parser) {
d.errorRecoveryMode = true
}
@@ -75,28 +72,23 @@ func (d *DefaultErrorStrategy) InErrorRecoveryMode(recognizer Parser) bool {
return d.errorRecoveryMode
}
-//
// This method is called to leave error recovery mode after recovering from
// a recognition exception.
//
// @param recognizer
-//
func (d *DefaultErrorStrategy) endErrorCondition(recognizer Parser) {
d.errorRecoveryMode = false
d.lastErrorStates = nil
d.lastErrorIndex = -1
}
-//
// {@inheritDoc}
//
// The default implementation simply calls {@link //endErrorCondition}.
-//
func (d *DefaultErrorStrategy) ReportMatch(recognizer Parser) {
d.endErrorCondition(recognizer)
}
-//
// {@inheritDoc}
//
// The default implementation returns immediately if the handler is already
@@ -114,7 +106,6 @@ func (d *DefaultErrorStrategy) ReportMatch(recognizer Parser) {
//
All other types: calls {@link Parser//NotifyErrorListeners} to Report
// the exception
//
-//
func (d *DefaultErrorStrategy) ReportError(recognizer Parser, e RecognitionException) {
// if we've already Reported an error and have not Matched a token
// yet successfully, don't Report any errors.
@@ -142,7 +133,6 @@ func (d *DefaultErrorStrategy) ReportError(recognizer Parser, e RecognitionExcep
// The default implementation reSynchronizes the parser by consuming tokens
// until we find one in the reSynchronization set--loosely the set of tokens
// that can follow the current rule.
-//
func (d *DefaultErrorStrategy) Recover(recognizer Parser, e RecognitionException) {
if d.lastErrorIndex == recognizer.GetInputStream().Index() &&
@@ -206,7 +196,6 @@ func (d *DefaultErrorStrategy) Recover(recognizer Parser, e RecognitionException
// compare token set at the start of the loop and at each iteration. If for
// some reason speed is suffering for you, you can turn off d
// functionality by simply overriding d method as a blank { }.
-//
func (d *DefaultErrorStrategy) Sync(recognizer Parser) {
// If already recovering, don't try to Sync
if d.InErrorRecoveryMode(recognizer) {
@@ -247,7 +236,6 @@ func (d *DefaultErrorStrategy) Sync(recognizer Parser) {
//
// @param recognizer the parser instance
// @param e the recognition exception
-//
func (d *DefaultErrorStrategy) ReportNoViableAlternative(recognizer Parser, e *NoViableAltException) {
tokens := recognizer.GetTokenStream()
var input string
@@ -264,7 +252,6 @@ func (d *DefaultErrorStrategy) ReportNoViableAlternative(recognizer Parser, e *N
recognizer.NotifyErrorListeners(msg, e.offendingToken, e)
}
-//
// This is called by {@link //ReportError} when the exception is an
// {@link InputMisMatchException}.
//
@@ -272,14 +259,12 @@ func (d *DefaultErrorStrategy) ReportNoViableAlternative(recognizer Parser, e *N
//
// @param recognizer the parser instance
// @param e the recognition exception
-//
func (this *DefaultErrorStrategy) ReportInputMisMatch(recognizer Parser, e *InputMisMatchException) {
msg := "mismatched input " + this.GetTokenErrorDisplay(e.offendingToken) +
" expecting " + e.getExpectedTokens().StringVerbose(recognizer.GetLiteralNames(), recognizer.GetSymbolicNames(), false)
recognizer.NotifyErrorListeners(msg, e.offendingToken, e)
}
-//
// This is called by {@link //ReportError} when the exception is a
// {@link FailedPredicateException}.
//
@@ -287,7 +272,6 @@ func (this *DefaultErrorStrategy) ReportInputMisMatch(recognizer Parser, e *Inpu
//
// @param recognizer the parser instance
// @param e the recognition exception
-//
func (d *DefaultErrorStrategy) ReportFailedPredicate(recognizer Parser, e *FailedPredicateException) {
ruleName := recognizer.GetRuleNames()[recognizer.GetParserRuleContext().GetRuleIndex()]
msg := "rule " + ruleName + " " + e.message
@@ -310,7 +294,6 @@ func (d *DefaultErrorStrategy) ReportFailedPredicate(recognizer Parser, e *Faile
// {@link Parser//NotifyErrorListeners}.
//
// @param recognizer the parser instance
-//
func (d *DefaultErrorStrategy) ReportUnwantedToken(recognizer Parser) {
if d.InErrorRecoveryMode(recognizer) {
return
@@ -339,7 +322,6 @@ func (d *DefaultErrorStrategy) ReportUnwantedToken(recognizer Parser) {
// {@link Parser//NotifyErrorListeners}.
//
// @param recognizer the parser instance
-//
func (d *DefaultErrorStrategy) ReportMissingToken(recognizer Parser) {
if d.InErrorRecoveryMode(recognizer) {
return
@@ -392,15 +374,14 @@ func (d *DefaultErrorStrategy) ReportMissingToken(recognizer Parser) {
// derivation:
//
//
-// => ID '=' '(' INT ')' ('+' atom)* ''
+// => ID '=' '(' INT ')' ('+' atom)* ”
// ^
//
//
-// The attempt to Match {@code ')'} will fail when it sees {@code ''} and
-// call {@link //recoverInline}. To recover, it sees that {@code LA(1)==''}
+// The attempt to Match {@code ')'} will fail when it sees {@code ”} and
+// call {@link //recoverInline}. To recover, it sees that {@code LA(1)==”}
// is in the set of tokens that can follow the {@code ')'} token reference
// in rule {@code atom}. It can assume that you forgot the {@code ')'}.
-//
func (d *DefaultErrorStrategy) RecoverInline(recognizer Parser) Token {
// SINGLE TOKEN DELETION
MatchedSymbol := d.SingleTokenDeletion(recognizer)
@@ -418,7 +399,6 @@ func (d *DefaultErrorStrategy) RecoverInline(recognizer Parser) Token {
panic(NewInputMisMatchException(recognizer))
}
-//
// This method implements the single-token insertion inline error recovery
// strategy. It is called by {@link //recoverInline} if the single-token
// deletion strategy fails to recover from the mismatched input. If this
@@ -434,7 +414,6 @@ func (d *DefaultErrorStrategy) RecoverInline(recognizer Parser) Token {
// @param recognizer the parser instance
// @return {@code true} if single-token insertion is a viable recovery
// strategy for the current mismatched input, otherwise {@code false}
-//
func (d *DefaultErrorStrategy) SingleTokenInsertion(recognizer Parser) bool {
currentSymbolType := recognizer.GetTokenStream().LA(1)
// if current token is consistent with what could come after current
@@ -469,7 +448,6 @@ func (d *DefaultErrorStrategy) SingleTokenInsertion(recognizer Parser) bool {
// @return the successfully Matched {@link Token} instance if single-token
// deletion successfully recovers from the mismatched input, otherwise
// {@code nil}
-//
func (d *DefaultErrorStrategy) SingleTokenDeletion(recognizer Parser) Token {
NextTokenType := recognizer.GetTokenStream().LA(2)
expecting := d.GetExpectedTokens(recognizer)
@@ -507,7 +485,6 @@ func (d *DefaultErrorStrategy) SingleTokenDeletion(recognizer Parser) Token {
// a CommonToken of the appropriate type. The text will be the token.
// If you change what tokens must be created by the lexer,
// override d method to create the appropriate tokens.
-//
func (d *DefaultErrorStrategy) GetMissingSymbol(recognizer Parser) Token {
currentSymbol := recognizer.GetCurrentToken()
expecting := d.GetExpectedTokens(recognizer)
@@ -546,7 +523,6 @@ func (d *DefaultErrorStrategy) GetExpectedTokens(recognizer Parser) *IntervalSet
// the token). This is better than forcing you to override a method in
// your token objects because you don't have to go modify your lexer
// so that it creates a NewJava type.
-//
func (d *DefaultErrorStrategy) GetTokenErrorDisplay(t Token) string {
if t == nil {
return ""
@@ -578,7 +554,7 @@ func (d *DefaultErrorStrategy) escapeWSAndQuote(s string) string {
// from within the rule i.e., the FIRST computation done by
// ANTLR stops at the end of a rule.
//
-// EXAMPLE
+// # EXAMPLE
//
// When you find a "no viable alt exception", the input is not
// consistent with any of the alternatives for rule r. The best
@@ -597,7 +573,6 @@ func (d *DefaultErrorStrategy) escapeWSAndQuote(s string) string {
// c : ID
// | INT
//
-//
// At each rule invocation, the set of tokens that could follow
// that rule is pushed on a stack. Here are the various
// context-sensitive follow sets:
@@ -660,7 +635,6 @@ func (d *DefaultErrorStrategy) escapeWSAndQuote(s string) string {
//
// Like Grosch I implement context-sensitive FOLLOW sets that are combined
// at run-time upon error to avoid overhead during parsing.
-//
func (d *DefaultErrorStrategy) getErrorRecoverySet(recognizer Parser) *IntervalSet {
atn := recognizer.GetInterpreter().atn
ctx := recognizer.GetParserRuleContext()
@@ -733,7 +707,6 @@ func NewBailErrorStrategy() *BailErrorStrategy {
// in a {@link ParseCancellationException} so it is not caught by the
// rule func catches. Use {@link Exception//getCause()} to get the
// original {@link RecognitionException}.
-//
func (b *BailErrorStrategy) Recover(recognizer Parser, e RecognitionException) {
context := recognizer.GetParserRuleContext()
for context != nil {
@@ -749,7 +722,6 @@ func (b *BailErrorStrategy) Recover(recognizer Parser, e RecognitionException) {
// Make sure we don't attempt to recover inline if the parser
// successfully recovers, it won't panic an exception.
-//
func (b *BailErrorStrategy) RecoverInline(recognizer Parser) Token {
b.Recover(recognizer, NewInputMisMatchException(recognizer))
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/errors.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/errors.go
similarity index 98%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/errors.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/errors.go
index 2ef74926e..3954c1378 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/errors.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/errors.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -74,7 +74,6 @@ func (b *BaseRecognitionException) GetInputStream() IntStream {
// If the state number is not known, b method returns -1.
-//
// Gets the set of input symbols which could potentially follow the
// previously Matched symbol at the time b exception was panicn.
//
@@ -136,7 +135,6 @@ type NoViableAltException struct {
// to take based upon the remaining input. It tracks the starting token
// of the offending input and also knows where the parser was
// in the various paths when the error. Reported by ReportNoViableAlternative()
-//
func NewNoViableAltException(recognizer Parser, input TokenStream, startToken Token, offendingToken Token, deadEndConfigs ATNConfigSet, ctx ParserRuleContext) *NoViableAltException {
if ctx == nil {
@@ -177,7 +175,6 @@ type InputMisMatchException struct {
// This signifies any kind of mismatched input exceptions such as
// when the current input does not Match the expected token.
-//
func NewInputMisMatchException(recognizer Parser) *InputMisMatchException {
i := new(InputMisMatchException)
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/file_stream.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/file_stream.go
similarity index 92%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/file_stream.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/file_stream.go
index 842170c08..bd6ad5efe 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/file_stream.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/file_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/input_stream.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/input_stream.go
similarity index 96%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/input_stream.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/input_stream.go
index 5ff270f53..a8b889ced 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/input_stream.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/input_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/int_stream.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/int_stream.go
similarity index 82%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/int_stream.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/int_stream.go
index 438e0ea6e..4778878bd 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/int_stream.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/int_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/interval_set.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/interval_set.go
similarity index 98%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/interval_set.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/interval_set.go
index 1e9393adb..c1e155e81 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/interval_set.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/interval_set.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -223,6 +223,10 @@ func (i *IntervalSet) StringVerbose(literalNames []string, symbolicNames []strin
return i.toIndexString()
}
+func (i *IntervalSet) GetIntervals() []*Interval {
+ return i.intervals
+}
+
func (i *IntervalSet) toCharString() string {
names := make([]string, len(i.intervals))
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/jcollect.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/jcollect.go
new file mode 100644
index 000000000..e5a74f0c6
--- /dev/null
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/jcollect.go
@@ -0,0 +1,198 @@
+package antlr
+
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
+// Use of this file is governed by the BSD 3-clause license that
+// can be found in the LICENSE.txt file in the project root.
+
+import (
+ "sort"
+)
+
+// Collectable is an interface that a struct should implement if it is to be
+// usable as a key in these collections.
+type Collectable[T any] interface {
+ Hash() int
+ Equals(other Collectable[T]) bool
+}
+
+type Comparator[T any] interface {
+ Hash1(o T) int
+ Equals2(T, T) bool
+}
+
+// JStore implements a container that allows the use of a struct to calculate the key
+// for a collection of values akin to map. This is not meant to be a full-blown HashMap but just
+// serve the needs of the ANTLR Go runtime.
+//
+// For ease of porting the logic of the runtime from the master target (Java), this collection
+// operates in a similar way to Java, in that it can use any struct that supplies a Hash() and Equals()
+// function as the key. The values are stored in a standard go map which internally is a form of hashmap
+// itself, the key for the go map is the hash supplied by the key object. The collection is able to deal with
+// hash conflicts by using a simple slice of values associated with the hash code indexed bucket. That isn't
+// particularly efficient, but it is simple, and it works. As this is specifically for the ANTLR runtime, and
+// we understand the requirements, then this is fine - this is not a general purpose collection.
+type JStore[T any, C Comparator[T]] struct {
+ store map[int][]T
+ len int
+ comparator Comparator[T]
+}
+
+func NewJStore[T any, C Comparator[T]](comparator Comparator[T]) *JStore[T, C] {
+
+ if comparator == nil {
+ panic("comparator cannot be nil")
+ }
+
+ s := &JStore[T, C]{
+ store: make(map[int][]T, 1),
+ comparator: comparator,
+ }
+ return s
+}
+
+// Put will store given value in the collection. Note that the key for storage is generated from
+// the value itself - this is specifically because that is what ANTLR needs - this would not be useful
+// as any kind of general collection.
+//
+// If the key has a hash conflict, then the value will be added to the slice of values associated with the
+// hash, unless the value is already in the slice, in which case the existing value is returned. Value equivalence is
+// tested by calling the equals() method on the key.
+//
+// # If the given value is already present in the store, then the existing value is returned as v and exists is set to true
+//
+// If the given value is not present in the store, then the value is added to the store and returned as v and exists is set to false.
+func (s *JStore[T, C]) Put(value T) (v T, exists bool) { //nolint:ireturn
+
+ kh := s.comparator.Hash1(value)
+
+ for _, v1 := range s.store[kh] {
+ if s.comparator.Equals2(value, v1) {
+ return v1, true
+ }
+ }
+ s.store[kh] = append(s.store[kh], value)
+ s.len++
+ return value, false
+}
+
+// Get will return the value associated with the key - the type of the key is the same type as the value
+// which would not generally be useful, but this is a specific thing for ANTLR where the key is
+// generated using the object we are going to store.
+func (s *JStore[T, C]) Get(key T) (T, bool) { //nolint:ireturn
+
+ kh := s.comparator.Hash1(key)
+
+ for _, v := range s.store[kh] {
+ if s.comparator.Equals2(key, v) {
+ return v, true
+ }
+ }
+ return key, false
+}
+
+// Contains returns true if the given key is present in the store
+func (s *JStore[T, C]) Contains(key T) bool { //nolint:ireturn
+
+ _, present := s.Get(key)
+ return present
+}
+
+func (s *JStore[T, C]) SortedSlice(less func(i, j T) bool) []T {
+ vs := make([]T, 0, len(s.store))
+ for _, v := range s.store {
+ vs = append(vs, v...)
+ }
+ sort.Slice(vs, func(i, j int) bool {
+ return less(vs[i], vs[j])
+ })
+
+ return vs
+}
+
+func (s *JStore[T, C]) Each(f func(T) bool) {
+ for _, e := range s.store {
+ for _, v := range e {
+ f(v)
+ }
+ }
+}
+
+func (s *JStore[T, C]) Len() int {
+ return s.len
+}
+
+func (s *JStore[T, C]) Values() []T {
+ vs := make([]T, 0, len(s.store))
+ for _, e := range s.store {
+ for _, v := range e {
+ vs = append(vs, v)
+ }
+ }
+ return vs
+}
+
+type entry[K, V any] struct {
+ key K
+ val V
+}
+
+type JMap[K, V any, C Comparator[K]] struct {
+ store map[int][]*entry[K, V]
+ len int
+ comparator Comparator[K]
+}
+
+func NewJMap[K, V any, C Comparator[K]](comparator Comparator[K]) *JMap[K, V, C] {
+ return &JMap[K, V, C]{
+ store: make(map[int][]*entry[K, V], 1),
+ comparator: comparator,
+ }
+}
+
+func (m *JMap[K, V, C]) Put(key K, val V) {
+ kh := m.comparator.Hash1(key)
+
+ m.store[kh] = append(m.store[kh], &entry[K, V]{key, val})
+ m.len++
+}
+
+func (m *JMap[K, V, C]) Values() []V {
+ vs := make([]V, 0, len(m.store))
+ for _, e := range m.store {
+ for _, v := range e {
+ vs = append(vs, v.val)
+ }
+ }
+ return vs
+}
+
+func (m *JMap[K, V, C]) Get(key K) (V, bool) {
+
+ var none V
+ kh := m.comparator.Hash1(key)
+ for _, e := range m.store[kh] {
+ if m.comparator.Equals2(e.key, key) {
+ return e.val, true
+ }
+ }
+ return none, false
+}
+
+func (m *JMap[K, V, C]) Len() int {
+ return len(m.store)
+}
+
+func (m *JMap[K, V, C]) Delete(key K) {
+ kh := m.comparator.Hash1(key)
+ for i, e := range m.store[kh] {
+ if m.comparator.Equals2(e.key, key) {
+ m.store[kh] = append(m.store[kh][:i], m.store[kh][i+1:]...)
+ m.len--
+ return
+ }
+ }
+}
+
+func (m *JMap[K, V, C]) Clear() {
+ m.store = make(map[int][]*entry[K, V])
+}
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer.go
similarity index 98%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer.go
index b04f04572..6533f0516 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -232,8 +232,6 @@ func (b *BaseLexer) NextToken() Token {
}
return b.token
}
-
- return nil
}
// Instruct the lexer to Skip creating a token for current lexer rule
@@ -342,7 +340,7 @@ func (b *BaseLexer) GetCharIndex() int {
}
// Return the text Matched so far for the current token or any text override.
-//Set the complete text of l token it wipes any previous changes to the text.
+// Set the complete text of l token it wipes any previous changes to the text.
func (b *BaseLexer) GetText() string {
if b.text != "" {
return b.text
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action.go
similarity index 91%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action.go
index 5a325be13..111656c29 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -21,8 +21,8 @@ type LexerAction interface {
getActionType() int
getIsPositionDependent() bool
execute(lexer Lexer)
- hash() int
- equals(other LexerAction) bool
+ Hash() int
+ Equals(other LexerAction) bool
}
type BaseLexerAction struct {
@@ -51,15 +51,14 @@ func (b *BaseLexerAction) getIsPositionDependent() bool {
return b.isPositionDependent
}
-func (b *BaseLexerAction) hash() int {
+func (b *BaseLexerAction) Hash() int {
return b.actionType
}
-func (b *BaseLexerAction) equals(other LexerAction) bool {
+func (b *BaseLexerAction) Equals(other LexerAction) bool {
return b == other
}
-//
// Implements the {@code Skip} lexer action by calling {@link Lexer//Skip}.
//
// The {@code Skip} command does not have any parameters, so l action is
@@ -85,7 +84,8 @@ func (l *LexerSkipAction) String() string {
return "skip"
}
-// Implements the {@code type} lexer action by calling {@link Lexer//setType}
+// Implements the {@code type} lexer action by calling {@link Lexer//setType}
+//
// with the assigned type.
type LexerTypeAction struct {
*BaseLexerAction
@@ -104,14 +104,14 @@ func (l *LexerTypeAction) execute(lexer Lexer) {
lexer.SetType(l.thetype)
}
-func (l *LexerTypeAction) hash() int {
+func (l *LexerTypeAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.actionType)
h = murmurUpdate(h, l.thetype)
return murmurFinish(h, 2)
}
-func (l *LexerTypeAction) equals(other LexerAction) bool {
+func (l *LexerTypeAction) Equals(other LexerAction) bool {
if l == other {
return true
} else if _, ok := other.(*LexerTypeAction); !ok {
@@ -148,14 +148,14 @@ func (l *LexerPushModeAction) execute(lexer Lexer) {
lexer.PushMode(l.mode)
}
-func (l *LexerPushModeAction) hash() int {
+func (l *LexerPushModeAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.actionType)
h = murmurUpdate(h, l.mode)
return murmurFinish(h, 2)
}
-func (l *LexerPushModeAction) equals(other LexerAction) bool {
+func (l *LexerPushModeAction) Equals(other LexerAction) bool {
if l == other {
return true
} else if _, ok := other.(*LexerPushModeAction); !ok {
@@ -245,14 +245,14 @@ func (l *LexerModeAction) execute(lexer Lexer) {
lexer.SetMode(l.mode)
}
-func (l *LexerModeAction) hash() int {
+func (l *LexerModeAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.actionType)
h = murmurUpdate(h, l.mode)
return murmurFinish(h, 2)
}
-func (l *LexerModeAction) equals(other LexerAction) bool {
+func (l *LexerModeAction) Equals(other LexerAction) bool {
if l == other {
return true
} else if _, ok := other.(*LexerModeAction); !ok {
@@ -303,7 +303,7 @@ func (l *LexerCustomAction) execute(lexer Lexer) {
lexer.Action(nil, l.ruleIndex, l.actionIndex)
}
-func (l *LexerCustomAction) hash() int {
+func (l *LexerCustomAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.actionType)
h = murmurUpdate(h, l.ruleIndex)
@@ -311,13 +311,14 @@ func (l *LexerCustomAction) hash() int {
return murmurFinish(h, 3)
}
-func (l *LexerCustomAction) equals(other LexerAction) bool {
+func (l *LexerCustomAction) Equals(other LexerAction) bool {
if l == other {
return true
} else if _, ok := other.(*LexerCustomAction); !ok {
return false
} else {
- return l.ruleIndex == other.(*LexerCustomAction).ruleIndex && l.actionIndex == other.(*LexerCustomAction).actionIndex
+ return l.ruleIndex == other.(*LexerCustomAction).ruleIndex &&
+ l.actionIndex == other.(*LexerCustomAction).actionIndex
}
}
@@ -344,14 +345,14 @@ func (l *LexerChannelAction) execute(lexer Lexer) {
lexer.SetChannel(l.channel)
}
-func (l *LexerChannelAction) hash() int {
+func (l *LexerChannelAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.actionType)
h = murmurUpdate(h, l.channel)
return murmurFinish(h, 2)
}
-func (l *LexerChannelAction) equals(other LexerAction) bool {
+func (l *LexerChannelAction) Equals(other LexerAction) bool {
if l == other {
return true
} else if _, ok := other.(*LexerChannelAction); !ok {
@@ -412,10 +413,10 @@ func (l *LexerIndexedCustomAction) execute(lexer Lexer) {
l.lexerAction.execute(lexer)
}
-func (l *LexerIndexedCustomAction) hash() int {
+func (l *LexerIndexedCustomAction) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, l.offset)
- h = murmurUpdate(h, l.lexerAction.hash())
+ h = murmurUpdate(h, l.lexerAction.Hash())
return murmurFinish(h, 2)
}
@@ -425,6 +426,7 @@ func (l *LexerIndexedCustomAction) equals(other LexerAction) bool {
} else if _, ok := other.(*LexerIndexedCustomAction); !ok {
return false
} else {
- return l.offset == other.(*LexerIndexedCustomAction).offset && l.lexerAction == other.(*LexerIndexedCustomAction).lexerAction
+ return l.offset == other.(*LexerIndexedCustomAction).offset &&
+ l.lexerAction.Equals(other.(*LexerIndexedCustomAction).lexerAction)
}
}
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action_executor.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action_executor.go
similarity index 88%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action_executor.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action_executor.go
index 056941dd6..be1ba7a7e 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_action_executor.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_action_executor.go
@@ -1,9 +1,11 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
package antlr
+import "golang.org/x/exp/slices"
+
// Represents an executor for a sequence of lexer actions which traversed during
// the Matching operation of a lexer rule (token).
//
@@ -12,8 +14,8 @@ package antlr
// not cause bloating of the {@link DFA} created for the lexer.
type LexerActionExecutor struct {
- lexerActions []LexerAction
- cachedHash int
+ lexerActions []LexerAction
+ cachedHash int
}
func NewLexerActionExecutor(lexerActions []LexerAction) *LexerActionExecutor {
@@ -30,7 +32,7 @@ func NewLexerActionExecutor(lexerActions []LexerAction) *LexerActionExecutor {
// of the performance-critical {@link LexerATNConfig//hashCode} operation.
l.cachedHash = murmurInit(57)
for _, a := range lexerActions {
- l.cachedHash = murmurUpdate(l.cachedHash, a.hash())
+ l.cachedHash = murmurUpdate(l.cachedHash, a.Hash())
}
return l
@@ -151,14 +153,17 @@ func (l *LexerActionExecutor) execute(lexer Lexer, input CharStream, startIndex
}
}
-func (l *LexerActionExecutor) hash() int {
+func (l *LexerActionExecutor) Hash() int {
if l == nil {
+ // TODO: Why is this here? l should not be nil
return 61
}
+
+ // TODO: This is created from the action itself when the struct is created - will this be an issue at some point? Java uses the runtime assign hashcode
return l.cachedHash
}
-func (l *LexerActionExecutor) equals(other interface{}) bool {
+func (l *LexerActionExecutor) Equals(other interface{}) bool {
if l == other {
return true
}
@@ -169,5 +174,13 @@ func (l *LexerActionExecutor) equals(other interface{}) bool {
if othert == nil {
return false
}
- return l.cachedHash == othert.cachedHash && &l.lexerActions == &othert.lexerActions
+ if l.cachedHash != othert.cachedHash {
+ return false
+ }
+ if len(l.lexerActions) != len(othert.lexerActions) {
+ return false
+ }
+ return slices.EqualFunc(l.lexerActions, othert.lexerActions, func(i, j LexerAction) bool {
+ return i.Equals(j)
+ })
}
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_atn_simulator.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_atn_simulator.go
similarity index 98%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_atn_simulator.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_atn_simulator.go
index dc05153ea..c573b7521 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/lexer_atn_simulator.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/lexer_atn_simulator.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -591,19 +591,24 @@ func (l *LexerATNSimulator) addDFAState(configs ATNConfigSet, suppressEdge bool)
proposed.lexerActionExecutor = firstConfigWithRuleStopState.(*LexerATNConfig).lexerActionExecutor
proposed.setPrediction(l.atn.ruleToTokenType[firstConfigWithRuleStopState.GetState().GetRuleIndex()])
}
- hash := proposed.hash()
dfa := l.decisionToDFA[l.mode]
l.atn.stateMu.Lock()
defer l.atn.stateMu.Unlock()
- existing, ok := dfa.getState(hash)
- if ok {
+ existing, present := dfa.states.Get(proposed)
+ if present {
+
+ // This state was already present, so just return it.
+ //
proposed = existing
} else {
- proposed.stateNumber = dfa.numStates()
+
+ // We need to add the new state
+ //
+ proposed.stateNumber = dfa.states.Len()
configs.SetReadOnly(true)
proposed.configs = configs
- dfa.setState(hash, proposed)
+ dfa.states.Put(proposed)
}
if !suppressEdge {
dfa.setS0(proposed)
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/ll1_analyzer.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/ll1_analyzer.go
similarity index 87%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/ll1_analyzer.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/ll1_analyzer.go
index 6ffb37de6..76689615a 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/ll1_analyzer.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/ll1_analyzer.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -14,14 +14,15 @@ func NewLL1Analyzer(atn *ATN) *LL1Analyzer {
return la
}
-//* Special value added to the lookahead sets to indicate that we hit
-// a predicate during analysis if {@code seeThruPreds==false}.
-///
+// - Special value added to the lookahead sets to indicate that we hit
+// a predicate during analysis if {@code seeThruPreds==false}.
+//
+// /
const (
LL1AnalyzerHitPred = TokenInvalidType
)
-//*
+// *
// Calculates the SLL(1) expected lookahead set for each outgoing transition
// of an {@link ATNState}. The returned array has one element for each
// outgoing transition in {@code s}. If the closure from transition
@@ -38,7 +39,7 @@ func (la *LL1Analyzer) getDecisionLookahead(s ATNState) []*IntervalSet {
look := make([]*IntervalSet, count)
for alt := 0; alt < count; alt++ {
look[alt] = NewIntervalSet()
- lookBusy := newArray2DHashSet(nil, nil)
+ lookBusy := NewJStore[ATNConfig, Comparator[ATNConfig]](aConfEqInst)
seeThruPreds := false // fail to get lookahead upon pred
la.look1(s.GetTransitions()[alt].getTarget(), nil, BasePredictionContextEMPTY, look[alt], lookBusy, NewBitSet(), seeThruPreds, false)
// Wipe out lookahead for la alternative if we found nothing
@@ -50,7 +51,7 @@ func (la *LL1Analyzer) getDecisionLookahead(s ATNState) []*IntervalSet {
return look
}
-//*
+// *
// Compute set of tokens that can follow {@code s} in the ATN in the
// specified {@code ctx}.
//
@@ -67,7 +68,7 @@ func (la *LL1Analyzer) getDecisionLookahead(s ATNState) []*IntervalSet {
//
// @return The set of tokens that can follow {@code s} in the ATN in the
// specified {@code ctx}.
-///
+// /
func (la *LL1Analyzer) Look(s, stopState ATNState, ctx RuleContext) *IntervalSet {
r := NewIntervalSet()
seeThruPreds := true // ignore preds get all lookahead
@@ -75,7 +76,7 @@ func (la *LL1Analyzer) Look(s, stopState ATNState, ctx RuleContext) *IntervalSet
if ctx != nil {
lookContext = predictionContextFromRuleContext(s.GetATN(), ctx)
}
- la.look1(s, stopState, lookContext, r, newArray2DHashSet(nil, nil), NewBitSet(), seeThruPreds, true)
+ la.look1(s, stopState, lookContext, r, NewJStore[ATNConfig, Comparator[ATNConfig]](aConfEqInst), NewBitSet(), seeThruPreds, true)
return r
}
@@ -109,14 +110,14 @@ func (la *LL1Analyzer) Look(s, stopState ATNState, ctx RuleContext) *IntervalSet
// outermost context is reached. This parameter has no effect if {@code ctx}
// is {@code nil}.
-func (la *LL1Analyzer) look2(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool, i int) {
+func (la *LL1Analyzer) look2(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy *JStore[ATNConfig, Comparator[ATNConfig]], calledRuleStack *BitSet, seeThruPreds, addEOF bool, i int) {
returnState := la.atn.states[ctx.getReturnState(i)]
la.look1(returnState, stopState, ctx.GetParent(i), look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
}
-func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool) {
+func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy *JStore[ATNConfig, Comparator[ATNConfig]], calledRuleStack *BitSet, seeThruPreds, addEOF bool) {
c := NewBaseATNConfig6(s, 0, ctx)
@@ -124,8 +125,11 @@ func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look
return
}
- lookBusy.Add(c)
+ _, present := lookBusy.Put(c)
+ if present {
+ return
+ }
if s == stopState {
if ctx == nil {
look.addOne(TokenEpsilon)
@@ -198,7 +202,7 @@ func (la *LL1Analyzer) look1(s, stopState ATNState, ctx PredictionContext, look
}
}
-func (la *LL1Analyzer) look3(stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy Set, calledRuleStack *BitSet, seeThruPreds, addEOF bool, t1 *RuleTransition) {
+func (la *LL1Analyzer) look3(stopState ATNState, ctx PredictionContext, look *IntervalSet, lookBusy *JStore[ATNConfig, Comparator[ATNConfig]], calledRuleStack *BitSet, seeThruPreds, addEOF bool, t1 *RuleTransition) {
newContext := SingletonBasePredictionContextCreate(ctx, t1.followState.GetStateNumber())
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser.go
similarity index 99%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser.go
index 2ab2f5605..d26bf0639 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -91,7 +91,6 @@ func NewBaseParser(input TokenStream) *BaseParser {
// bypass alternatives.
//
// @see ATNDeserializationOptions//isGenerateRuleBypassTransitions()
-//
var bypassAltsAtnCache = make(map[string]int)
// reset the parser's state//
@@ -230,7 +229,6 @@ func (p *BaseParser) GetParseListeners() []ParseTreeListener {
// @param listener the listener to add
//
// @panics nilPointerException if {@code} listener is {@code nil}
-//
func (p *BaseParser) AddParseListener(listener ParseTreeListener) {
if listener == nil {
panic("listener")
@@ -241,13 +239,11 @@ func (p *BaseParser) AddParseListener(listener ParseTreeListener) {
p.parseListeners = append(p.parseListeners, listener)
}
-//
// Remove {@code listener} from the list of parse listeners.
//
// If {@code listener} is {@code nil} or has not been added as a parse
// listener, p.method does nothing.
// @param listener the listener to remove
-//
func (p *BaseParser) RemoveParseListener(listener ParseTreeListener) {
if p.parseListeners != nil {
@@ -289,11 +285,9 @@ func (p *BaseParser) TriggerEnterRuleEvent() {
}
}
-//
// Notify any parse listeners of an exit rule event.
//
// @see //addParseListener
-//
func (p *BaseParser) TriggerExitRuleEvent() {
if p.parseListeners != nil {
// reverse order walk of listeners
@@ -330,7 +324,6 @@ func (p *BaseParser) setTokenFactory(factory TokenFactory) {
//
// @panics UnsupportedOperationException if the current parser does not
// implement the {@link //getSerializedATN()} method.
-//
func (p *BaseParser) GetATNWithBypassAlts() {
// TODO
@@ -402,7 +395,6 @@ func (p *BaseParser) SetTokenStream(input TokenStream) {
// Match needs to return the current input symbol, which gets put
// into the label for the associated token ref e.g., x=ID.
-//
func (p *BaseParser) GetCurrentToken() Token {
return p.input.LT(1)
}
@@ -624,7 +616,6 @@ func (p *BaseParser) IsExpectedToken(symbol int) bool {
// respectively.
//
// @see ATN//getExpectedTokens(int, RuleContext)
-//
func (p *BaseParser) GetExpectedTokens() *IntervalSet {
return p.Interpreter.atn.getExpectedTokens(p.state, p.ctx)
}
@@ -686,7 +677,7 @@ func (p *BaseParser) GetDFAStrings() string {
func (p *BaseParser) DumpDFA() {
seenOne := false
for _, dfa := range p.Interpreter.decisionToDFA {
- if dfa.numStates() > 0 {
+ if dfa.states.Len() > 0 {
if seenOne {
fmt.Println()
}
@@ -703,7 +694,6 @@ func (p *BaseParser) GetSourceName() string {
// During a parse is sometimes useful to listen in on the rule entry and exit
// events as well as token Matches. p.is for quick and dirty debugging.
-//
func (p *BaseParser) SetTrace(trace *TraceListener) {
if trace == nil {
p.RemoveParseListener(p.tracer)
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_atn_simulator.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_atn_simulator.go
similarity index 94%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_atn_simulator.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_atn_simulator.go
index 888d51297..8bcc46a0d 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_atn_simulator.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_atn_simulator.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -11,11 +11,11 @@ import (
)
var (
- ParserATNSimulatorDebug = false
- ParserATNSimulatorListATNDecisions = false
- ParserATNSimulatorDFADebug = false
- ParserATNSimulatorRetryDebug = false
- TurnOffLRLoopEntryBranchOpt = false
+ ParserATNSimulatorDebug = false
+ ParserATNSimulatorTraceATNSim = false
+ ParserATNSimulatorDFADebug = false
+ ParserATNSimulatorRetryDebug = false
+ TurnOffLRLoopEntryBranchOpt = false
)
type ParserATNSimulator struct {
@@ -70,8 +70,8 @@ func (p *ParserATNSimulator) reset() {
}
func (p *ParserATNSimulator) AdaptivePredict(input TokenStream, decision int, outerContext ParserRuleContext) int {
- if ParserATNSimulatorDebug || ParserATNSimulatorListATNDecisions {
- fmt.Println("AdaptivePredict decision " + strconv.Itoa(decision) +
+ if ParserATNSimulatorDebug || ParserATNSimulatorTraceATNSim {
+ fmt.Println("adaptivePredict decision " + strconv.Itoa(decision) +
" exec LA(1)==" + p.getLookaheadName(input) +
" line " + strconv.Itoa(input.LT(1).GetLine()) + ":" +
strconv.Itoa(input.LT(1).GetColumn()))
@@ -111,15 +111,15 @@ func (p *ParserATNSimulator) AdaptivePredict(input TokenStream, decision int, ou
if s0 == nil {
if outerContext == nil {
- outerContext = RuleContextEmpty
+ outerContext = ParserRuleContextEmpty
}
- if ParserATNSimulatorDebug || ParserATNSimulatorListATNDecisions {
+ if ParserATNSimulatorDebug {
fmt.Println("predictATN decision " + strconv.Itoa(dfa.decision) +
" exec LA(1)==" + p.getLookaheadName(input) +
", outerContext=" + outerContext.String(p.parser.GetRuleNames(), nil))
}
fullCtx := false
- s0Closure := p.computeStartState(dfa.atnStartState, RuleContextEmpty, fullCtx)
+ s0Closure := p.computeStartState(dfa.atnStartState, ParserRuleContextEmpty, fullCtx)
p.atn.stateMu.Lock()
if dfa.getPrecedenceDfa() {
@@ -174,17 +174,18 @@ func (p *ParserATNSimulator) AdaptivePredict(input TokenStream, decision int, ou
// Reporting insufficient predicates
// cover these cases:
-// dead end
-// single alt
-// single alt + preds
-// conflict
-// conflict + preds
//
+// dead end
+// single alt
+// single alt + preds
+// conflict
+// conflict + preds
func (p *ParserATNSimulator) execATN(dfa *DFA, s0 *DFAState, input TokenStream, startIndex int, outerContext ParserRuleContext) int {
- if ParserATNSimulatorDebug || ParserATNSimulatorListATNDecisions {
+ if ParserATNSimulatorDebug || ParserATNSimulatorTraceATNSim {
fmt.Println("execATN decision " + strconv.Itoa(dfa.decision) +
- " exec LA(1)==" + p.getLookaheadName(input) +
+ ", DFA state " + s0.String() +
+ ", LA(1)==" + p.getLookaheadName(input) +
" line " + strconv.Itoa(input.LT(1).GetLine()) + ":" + strconv.Itoa(input.LT(1).GetColumn()))
}
@@ -277,8 +278,6 @@ func (p *ParserATNSimulator) execATN(dfa *DFA, s0 *DFAState, input TokenStream,
t = input.LA(1)
}
}
-
- panic("Should not have reached p state")
}
// Get an existing target state for an edge in the DFA. If the target state
@@ -384,7 +383,7 @@ func (p *ParserATNSimulator) predicateDFAState(dfaState *DFAState, decisionState
// comes back with reach.uniqueAlt set to a valid alt
func (p *ParserATNSimulator) execATNWithFullContext(dfa *DFA, D *DFAState, s0 ATNConfigSet, input TokenStream, startIndex int, outerContext ParserRuleContext) int {
- if ParserATNSimulatorDebug || ParserATNSimulatorListATNDecisions {
+ if ParserATNSimulatorDebug || ParserATNSimulatorTraceATNSim {
fmt.Println("execATNWithFullContext " + s0.String())
}
@@ -492,9 +491,6 @@ func (p *ParserATNSimulator) execATNWithFullContext(dfa *DFA, D *DFAState, s0 AT
}
func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCtx bool) ATNConfigSet {
- if ParserATNSimulatorDebug {
- fmt.Println("in computeReachSet, starting closure: " + closure.String())
- }
if p.mergeCache == nil {
p.mergeCache = NewDoubleDict()
}
@@ -570,7 +566,7 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
//
if reach == nil {
reach = NewBaseATNConfigSet(fullCtx)
- closureBusy := newArray2DHashSet(nil, nil)
+ closureBusy := NewJStore[ATNConfig, Comparator[ATNConfig]](aConfEqInst)
treatEOFAsEpsilon := t == TokenEOF
amount := len(intermediate.configs)
for k := 0; k < amount; k++ {
@@ -610,6 +606,11 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
reach.Add(skippedStopStates[l], p.mergeCache)
}
}
+
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("computeReachSet " + closure.String() + " -> " + reach.String())
+ }
+
if len(reach.GetItems()) == 0 {
return nil
}
@@ -617,7 +618,6 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
return reach
}
-//
// Return a configuration set containing only the configurations from
// {@code configs} which are in a {@link RuleStopState}. If all
// configurations in {@code configs} are already in a rule stop state, p
@@ -636,7 +636,6 @@ func (p *ParserATNSimulator) computeReachSet(closure ATNConfigSet, t int, fullCt
// @return {@code configs} if all configurations in {@code configs} are in a
// rule stop state, otherwise return a Newconfiguration set containing only
// the configurations from {@code configs} which are in a rule stop state
-//
func (p *ParserATNSimulator) removeAllConfigsNotInRuleStopState(configs ATNConfigSet, lookToEndOfRule bool) ATNConfigSet {
if PredictionModeallConfigsInRuleStopStates(configs) {
return configs
@@ -662,16 +661,20 @@ func (p *ParserATNSimulator) computeStartState(a ATNState, ctx RuleContext, full
// always at least the implicit call to start rule
initialContext := predictionContextFromRuleContext(p.atn, ctx)
configs := NewBaseATNConfigSet(fullCtx)
+ if ParserATNSimulatorDebug || ParserATNSimulatorTraceATNSim {
+ fmt.Println("computeStartState from ATN state " + a.String() +
+ " initialContext=" + initialContext.String())
+ }
+
for i := 0; i < len(a.GetTransitions()); i++ {
target := a.GetTransitions()[i].getTarget()
c := NewBaseATNConfig6(target, i+1, initialContext)
- closureBusy := newArray2DHashSet(nil, nil)
+ closureBusy := NewJStore[ATNConfig, Comparator[ATNConfig]](atnConfCompInst)
p.closure(c, configs, closureBusy, true, fullCtx, false)
}
return configs
}
-//
// This method transforms the start state computed by
// {@link //computeStartState} to the special start state used by a
// precedence DFA for a particular precedence value. The transformation
@@ -726,7 +729,6 @@ func (p *ParserATNSimulator) computeStartState(a ATNState, ctx RuleContext, full
// @return The transformed configuration set representing the start state
// for a precedence DFA at a particular precedence level (determined by
// calling {@link Parser//getPrecedence}).
-//
func (p *ParserATNSimulator) applyPrecedenceFilter(configs ATNConfigSet) ATNConfigSet {
statesFromAlt1 := make(map[int]PredictionContext)
@@ -760,7 +762,7 @@ func (p *ParserATNSimulator) applyPrecedenceFilter(configs ATNConfigSet) ATNConf
// (basically a graph subtraction algorithm).
if !config.getPrecedenceFilterSuppressed() {
context := statesFromAlt1[config.GetState().GetStateNumber()]
- if context != nil && context.equals(config.GetContext()) {
+ if context != nil && context.Equals(config.GetContext()) {
// eliminated
continue
}
@@ -824,7 +826,6 @@ func (p *ParserATNSimulator) getPredicatePredictions(ambigAlts *BitSet, altToPre
return pairs
}
-//
// This method is used to improve the localization of error messages by
// choosing an alternative rather than panicing a
// {@link NoViableAltException} in particular prediction scenarios where the
@@ -869,7 +870,6 @@ func (p *ParserATNSimulator) getPredicatePredictions(ambigAlts *BitSet, altToPre
// @return The value to return from {@link //AdaptivePredict}, or
// {@link ATN//INVALID_ALT_NUMBER} if a suitable alternative was not
// identified and {@link //AdaptivePredict} should Report an error instead.
-//
func (p *ParserATNSimulator) getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(configs ATNConfigSet, outerContext ParserRuleContext) int {
cfgs := p.splitAccordingToSemanticValidity(configs, outerContext)
semValidConfigs := cfgs[0]
@@ -938,11 +938,11 @@ func (p *ParserATNSimulator) splitAccordingToSemanticValidity(configs ATNConfigS
}
// Look through a list of predicate/alt pairs, returning alts for the
-// pairs that win. A {@code NONE} predicate indicates an alt containing an
-// unpredicated config which behaves as "always true." If !complete
-// then we stop at the first predicate that evaluates to true. This
-// includes pairs with nil predicates.
//
+// pairs that win. A {@code NONE} predicate indicates an alt containing an
+// unpredicated config which behaves as "always true." If !complete
+// then we stop at the first predicate that evaluates to true. This
+// includes pairs with nil predicates.
func (p *ParserATNSimulator) evalSemanticContext(predPredictions []*PredPrediction, outerContext ParserRuleContext, complete bool) *BitSet {
predictions := NewBitSet()
for i := 0; i < len(predPredictions); i++ {
@@ -972,16 +972,16 @@ func (p *ParserATNSimulator) evalSemanticContext(predPredictions []*PredPredicti
return predictions
}
-func (p *ParserATNSimulator) closure(config ATNConfig, configs ATNConfigSet, closureBusy Set, collectPredicates, fullCtx, treatEOFAsEpsilon bool) {
+func (p *ParserATNSimulator) closure(config ATNConfig, configs ATNConfigSet, closureBusy *JStore[ATNConfig, Comparator[ATNConfig]], collectPredicates, fullCtx, treatEOFAsEpsilon bool) {
initialDepth := 0
p.closureCheckingStopState(config, configs, closureBusy, collectPredicates,
fullCtx, initialDepth, treatEOFAsEpsilon)
}
-func (p *ParserATNSimulator) closureCheckingStopState(config ATNConfig, configs ATNConfigSet, closureBusy Set, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
- if ParserATNSimulatorDebug {
+func (p *ParserATNSimulator) closureCheckingStopState(config ATNConfig, configs ATNConfigSet, closureBusy *JStore[ATNConfig, Comparator[ATNConfig]], collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
+ if ParserATNSimulatorTraceATNSim {
fmt.Println("closure(" + config.String() + ")")
- fmt.Println("configs(" + configs.String() + ")")
+ //fmt.Println("configs(" + configs.String() + ")")
if config.GetReachesIntoOuterContext() > 50 {
panic("problem")
}
@@ -1031,7 +1031,7 @@ func (p *ParserATNSimulator) closureCheckingStopState(config ATNConfig, configs
}
// Do the actual work of walking epsilon edges//
-func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet, closureBusy Set, collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
+func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet, closureBusy *JStore[ATNConfig, Comparator[ATNConfig]], collectPredicates, fullCtx bool, depth int, treatEOFAsEpsilon bool) {
state := config.GetState()
// optimization
if !state.GetEpsilonOnlyTransitions() {
@@ -1066,7 +1066,8 @@ func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet,
c.SetReachesIntoOuterContext(c.GetReachesIntoOuterContext() + 1)
- if closureBusy.Add(c) != c {
+ _, present := closureBusy.Put(c)
+ if present {
// avoid infinite recursion for right-recursive rules
continue
}
@@ -1077,9 +1078,13 @@ func (p *ParserATNSimulator) closureWork(config ATNConfig, configs ATNConfigSet,
fmt.Println("dips into outer ctx: " + c.String())
}
} else {
- if !t.getIsEpsilon() && closureBusy.Add(c) != c {
- // avoid infinite recursion for EOF* and EOF+
- continue
+
+ if !t.getIsEpsilon() {
+ _, present := closureBusy.Put(c)
+ if present {
+ // avoid infinite recursion for EOF* and EOF+
+ continue
+ }
}
if _, ok := t.(*RuleTransition); ok {
// latch when newDepth goes negative - once we step out of the entry context we can't return
@@ -1104,7 +1109,16 @@ func (p *ParserATNSimulator) canDropLoopEntryEdgeInLeftRecursiveRule(config ATNC
// left-recursion elimination. For efficiency, also check if
// the context has an empty stack case. If so, it would mean
// global FOLLOW so we can't perform optimization
- if startLoop, ok := _p.(StarLoopEntryState); !ok || !startLoop.precedenceRuleDecision || config.GetContext().isEmpty() || config.GetContext().hasEmptyPath() {
+ if _p.GetStateType() != ATNStateStarLoopEntry {
+ return false
+ }
+ startLoop, ok := _p.(*StarLoopEntryState)
+ if !ok {
+ return false
+ }
+ if !startLoop.precedenceRuleDecision ||
+ config.GetContext().isEmpty() ||
+ config.GetContext().hasEmptyPath() {
return false
}
@@ -1117,8 +1131,8 @@ func (p *ParserATNSimulator) canDropLoopEntryEdgeInLeftRecursiveRule(config ATNC
return false
}
}
-
- decisionStartState := _p.(BlockStartState).GetTransitions()[0].getTarget().(BlockStartState)
+ x := _p.GetTransitions()[0].getTarget()
+ decisionStartState := x.(BlockStartState)
blockEndStateNum := decisionStartState.getEndState().stateNumber
blockEndState := p.atn.states[blockEndStateNum].(*BlockEndState)
@@ -1355,13 +1369,12 @@ func (p *ParserATNSimulator) GetTokenName(t int) string {
return "EOF"
}
- if p.parser != nil && p.parser.GetLiteralNames() != nil {
- if t >= len(p.parser.GetLiteralNames()) {
- fmt.Println(strconv.Itoa(t) + " ttype out of range: " + strings.Join(p.parser.GetLiteralNames(), ","))
- // fmt.Println(p.parser.GetInputStream().(TokenStream).GetAllText()) // p seems incorrect
- } else {
- return p.parser.GetLiteralNames()[t] + "<" + strconv.Itoa(t) + ">"
- }
+ if p.parser != nil && p.parser.GetLiteralNames() != nil && t < len(p.parser.GetLiteralNames()) {
+ return p.parser.GetLiteralNames()[t] + "<" + strconv.Itoa(t) + ">"
+ }
+
+ if p.parser != nil && p.parser.GetLiteralNames() != nil && t < len(p.parser.GetSymbolicNames()) {
+ return p.parser.GetSymbolicNames()[t] + "<" + strconv.Itoa(t) + ">"
}
return strconv.Itoa(t)
@@ -1372,9 +1385,9 @@ func (p *ParserATNSimulator) getLookaheadName(input TokenStream) string {
}
// Used for debugging in AdaptivePredict around execATN but I cut
-// it out for clarity now that alg. works well. We can leave p
-// "dead" code for a bit.
//
+// it out for clarity now that alg. works well. We can leave p
+// "dead" code for a bit.
func (p *ParserATNSimulator) dumpDeadEndConfigs(nvae *NoViableAltException) {
panic("Not implemented")
@@ -1421,7 +1434,6 @@ func (p *ParserATNSimulator) getUniqueAlt(configs ATNConfigSet) int {
return alt
}
-//
// Add an edge to the DFA, if possible. This method calls
// {@link //addDFAState} to ensure the {@code to} state is present in the
// DFA. If {@code from} is {@code nil}, or if {@code t} is outside the
@@ -1440,7 +1452,6 @@ func (p *ParserATNSimulator) getUniqueAlt(configs ATNConfigSet) int {
// @return If {@code to} is {@code nil}, p method returns {@code nil}
// otherwise p method returns the result of calling {@link //addDFAState}
// on {@code to}
-//
func (p *ParserATNSimulator) addDFAEdge(dfa *DFA, from *DFAState, t int, to *DFAState) *DFAState {
if ParserATNSimulatorDebug {
fmt.Println("EDGE " + from.String() + " -> " + to.String() + " upon " + p.GetTokenName(t))
@@ -1472,7 +1483,6 @@ func (p *ParserATNSimulator) addDFAEdge(dfa *DFA, from *DFAState, t int, to *DFA
return to
}
-//
// Add state {@code D} to the DFA if it is not already present, and return
// the actual instance stored in the DFA. If a state equivalent to {@code D}
// is already in the DFA, the existing state is returned. Otherwise p
@@ -1486,25 +1496,30 @@ func (p *ParserATNSimulator) addDFAEdge(dfa *DFA, from *DFAState, t int, to *DFA
// @return The state stored in the DFA. This will be either the existing
// state if {@code D} is already in the DFA, or {@code D} itself if the
// state was not already present.
-//
func (p *ParserATNSimulator) addDFAState(dfa *DFA, d *DFAState) *DFAState {
if d == ATNSimulatorError {
return d
}
- hash := d.hash()
- existing, ok := dfa.getState(hash)
- if ok {
+ existing, present := dfa.states.Get(d)
+ if present {
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Print("addDFAState " + d.String() + " exists")
+ }
return existing
}
- d.stateNumber = dfa.numStates()
+
+ // The state was not present, so update it with configs
+ //
+ d.stateNumber = dfa.states.Len()
if !d.configs.ReadOnly() {
d.configs.OptimizeConfigs(p.BaseATNSimulator)
d.configs.SetReadOnly(true)
}
- dfa.setState(hash, d)
- if ParserATNSimulatorDebug {
- fmt.Println("adding NewDFA state: " + d.String())
+ dfa.states.Put(d)
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("addDFAState new " + d.String())
}
+
return d
}
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_rule_context.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_rule_context.go
similarity index 98%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_rule_context.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_rule_context.go
index 49cd10c5f..1c8cee747 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/parser_rule_context.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/parser_rule_context.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -340,7 +340,7 @@ func (prc *BaseParserRuleContext) String(ruleNames []string, stop RuleContext) s
return s
}
-var RuleContextEmpty = NewBaseParserRuleContext(nil, -1)
+var ParserRuleContextEmpty = NewBaseParserRuleContext(nil, -1)
type InterpreterRuleContext interface {
ParserRuleContext
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_context.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_context.go
similarity index 81%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_context.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_context.go
index 9fdfd52b2..ba62af361 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_context.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_context.go
@@ -1,10 +1,12 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
package antlr
import (
+ "fmt"
+ "golang.org/x/exp/slices"
"strconv"
)
@@ -26,10 +28,10 @@ var (
)
type PredictionContext interface {
- hash() int
+ Hash() int
+ Equals(interface{}) bool
GetParent(int) PredictionContext
getReturnState(int) int
- equals(PredictionContext) bool
length() int
isEmpty() bool
hasEmptyPath() bool
@@ -53,7 +55,7 @@ func (b *BasePredictionContext) isEmpty() bool {
func calculateHash(parent PredictionContext, returnState int) int {
h := murmurInit(1)
- h = murmurUpdate(h, parent.hash())
+ h = murmurUpdate(h, parent.Hash())
h = murmurUpdate(h, returnState)
return murmurFinish(h, 2)
}
@@ -86,7 +88,6 @@ func NewPredictionContextCache() *PredictionContextCache {
// Add a context to the cache and return it. If the context already exists,
// return that one instead and do not add a Newcontext to the cache.
// Protect shared cache from unsafe thread access.
-//
func (p *PredictionContextCache) add(ctx PredictionContext) PredictionContext {
if ctx == BasePredictionContextEMPTY {
return BasePredictionContextEMPTY
@@ -160,28 +161,28 @@ func (b *BaseSingletonPredictionContext) hasEmptyPath() bool {
return b.returnState == BasePredictionContextEmptyReturnState
}
-func (b *BaseSingletonPredictionContext) equals(other PredictionContext) bool {
+func (b *BaseSingletonPredictionContext) Hash() int {
+ return b.cachedHash
+}
+
+func (b *BaseSingletonPredictionContext) Equals(other interface{}) bool {
if b == other {
return true
- } else if _, ok := other.(*BaseSingletonPredictionContext); !ok {
+ }
+ if _, ok := other.(*BaseSingletonPredictionContext); !ok {
return false
- } else if b.hash() != other.hash() {
- return false // can't be same if hash is different
}
otherP := other.(*BaseSingletonPredictionContext)
- if b.returnState != other.getReturnState(0) {
+ if b.returnState != otherP.getReturnState(0) {
return false
- } else if b.parentCtx == nil {
+ }
+ if b.parentCtx == nil {
return otherP.parentCtx == nil
}
- return b.parentCtx.equals(otherP.parentCtx)
-}
-
-func (b *BaseSingletonPredictionContext) hash() int {
- return b.cachedHash
+ return b.parentCtx.Equals(otherP.parentCtx)
}
func (b *BaseSingletonPredictionContext) String() string {
@@ -215,7 +216,7 @@ func NewEmptyPredictionContext() *EmptyPredictionContext {
p := new(EmptyPredictionContext)
p.BaseSingletonPredictionContext = NewBaseSingletonPredictionContext(nil, BasePredictionContextEmptyReturnState)
-
+ p.cachedHash = calculateEmptyHash()
return p
}
@@ -231,7 +232,11 @@ func (e *EmptyPredictionContext) getReturnState(index int) int {
return e.returnState
}
-func (e *EmptyPredictionContext) equals(other PredictionContext) bool {
+func (e *EmptyPredictionContext) Hash() int {
+ return e.cachedHash
+}
+
+func (e *EmptyPredictionContext) Equals(other interface{}) bool {
return e == other
}
@@ -254,7 +259,7 @@ func NewArrayPredictionContext(parents []PredictionContext, returnStates []int)
hash := murmurInit(1)
for _, parent := range parents {
- hash = murmurUpdate(hash, parent.hash())
+ hash = murmurUpdate(hash, parent.Hash())
}
for _, returnState := range returnStates {
@@ -298,18 +303,31 @@ func (a *ArrayPredictionContext) getReturnState(index int) int {
return a.returnStates[index]
}
-func (a *ArrayPredictionContext) equals(other PredictionContext) bool {
- if _, ok := other.(*ArrayPredictionContext); !ok {
+// Equals is the default comparison function for ArrayPredictionContext when no specialized
+// implementation is needed for a collection
+func (a *ArrayPredictionContext) Equals(o interface{}) bool {
+ if a == o {
+ return true
+ }
+ other, ok := o.(*ArrayPredictionContext)
+ if !ok {
return false
- } else if a.cachedHash != other.hash() {
+ }
+ if a.cachedHash != other.Hash() {
return false // can't be same if hash is different
- } else {
- otherP := other.(*ArrayPredictionContext)
- return &a.returnStates == &otherP.returnStates && &a.parents == &otherP.parents
}
+
+ // Must compare the actual array elements and not just the array address
+ //
+ return slices.Equal(a.returnStates, other.returnStates) &&
+ slices.EqualFunc(a.parents, other.parents, func(x, y PredictionContext) bool {
+ return x.Equals(y)
+ })
}
-func (a *ArrayPredictionContext) hash() int {
+// Hash is the default hash function for ArrayPredictionContext when no specialized
+// implementation is needed for a collection
+func (a *ArrayPredictionContext) Hash() int {
return a.BasePredictionContext.cachedHash
}
@@ -343,11 +361,11 @@ func (a *ArrayPredictionContext) String() string {
// /
func predictionContextFromRuleContext(a *ATN, outerContext RuleContext) PredictionContext {
if outerContext == nil {
- outerContext = RuleContextEmpty
+ outerContext = ParserRuleContextEmpty
}
// if we are in RuleContext of start rule, s, then BasePredictionContext
// is EMPTY. Nobody called us. (if we are empty, return empty)
- if outerContext.GetParent() == nil || outerContext == RuleContextEmpty {
+ if outerContext.GetParent() == nil || outerContext == ParserRuleContextEmpty {
return BasePredictionContextEMPTY
}
// If we have a parent, convert it to a BasePredictionContext graph
@@ -359,11 +377,20 @@ func predictionContextFromRuleContext(a *ATN, outerContext RuleContext) Predicti
}
func merge(a, b PredictionContext, rootIsWildcard bool, mergeCache *DoubleDict) PredictionContext {
- // share same graph if both same
- if a == b {
+
+ // Share same graph if both same
+ //
+ if a == b || a.Equals(b) {
return a
}
+ // In Java, EmptyPredictionContext inherits from SingletonPredictionContext, and so the test
+ // in java for SingletonPredictionContext will succeed and a new ArrayPredictionContext will be created
+ // from it.
+ // In go, EmptyPredictionContext does not equate to SingletonPredictionContext and so that conversion
+ // will fail. We need to test for both Empty and Singleton and create an ArrayPredictionContext from
+ // either of them.
+
ac, ok1 := a.(*BaseSingletonPredictionContext)
bc, ok2 := b.(*BaseSingletonPredictionContext)
@@ -380,17 +407,32 @@ func merge(a, b PredictionContext, rootIsWildcard bool, mergeCache *DoubleDict)
return b
}
}
- // convert singleton so both are arrays to normalize
- if _, ok := a.(*BaseSingletonPredictionContext); ok {
- a = NewArrayPredictionContext([]PredictionContext{a.GetParent(0)}, []int{a.getReturnState(0)})
+
+ // Convert Singleton or Empty so both are arrays to normalize - We should not use the existing parameters
+ // here.
+ //
+ // TODO: I think that maybe the Prediction Context structs should be redone as there is a chance we will see this mess again - maybe redo the logic here
+
+ var arp, arb *ArrayPredictionContext
+ var ok bool
+ if arp, ok = a.(*ArrayPredictionContext); ok {
+ } else if _, ok = a.(*BaseSingletonPredictionContext); ok {
+ arp = NewArrayPredictionContext([]PredictionContext{a.GetParent(0)}, []int{a.getReturnState(0)})
+ } else if _, ok = a.(*EmptyPredictionContext); ok {
+ arp = NewArrayPredictionContext([]PredictionContext{}, []int{})
}
- if _, ok := b.(*BaseSingletonPredictionContext); ok {
- b = NewArrayPredictionContext([]PredictionContext{b.GetParent(0)}, []int{b.getReturnState(0)})
+
+ if arb, ok = b.(*ArrayPredictionContext); ok {
+ } else if _, ok = b.(*BaseSingletonPredictionContext); ok {
+ arb = NewArrayPredictionContext([]PredictionContext{b.GetParent(0)}, []int{b.getReturnState(0)})
+ } else if _, ok = b.(*EmptyPredictionContext); ok {
+ arb = NewArrayPredictionContext([]PredictionContext{}, []int{})
}
- return mergeArrays(a.(*ArrayPredictionContext), b.(*ArrayPredictionContext), rootIsWildcard, mergeCache)
+
+ // Both arp and arb
+ return mergeArrays(arp, arb, rootIsWildcard, mergeCache)
}
-//
// Merge two {@link SingletonBasePredictionContext} instances.
//
// Stack tops equal, parents merge is same return left graph.
@@ -423,11 +465,11 @@ func merge(a, b PredictionContext, rootIsWildcard bool, mergeCache *DoubleDict)
// /
func mergeSingletons(a, b *BaseSingletonPredictionContext, rootIsWildcard bool, mergeCache *DoubleDict) PredictionContext {
if mergeCache != nil {
- previous := mergeCache.Get(a.hash(), b.hash())
+ previous := mergeCache.Get(a.Hash(), b.Hash())
if previous != nil {
return previous.(PredictionContext)
}
- previous = mergeCache.Get(b.hash(), a.hash())
+ previous = mergeCache.Get(b.Hash(), a.Hash())
if previous != nil {
return previous.(PredictionContext)
}
@@ -436,7 +478,7 @@ func mergeSingletons(a, b *BaseSingletonPredictionContext, rootIsWildcard bool,
rootMerge := mergeRoot(a, b, rootIsWildcard)
if rootMerge != nil {
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), rootMerge)
+ mergeCache.set(a.Hash(), b.Hash(), rootMerge)
}
return rootMerge
}
@@ -456,7 +498,7 @@ func mergeSingletons(a, b *BaseSingletonPredictionContext, rootIsWildcard bool,
// Newjoined parent so create Newsingleton pointing to it, a'
spc := SingletonBasePredictionContextCreate(parent, a.returnState)
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), spc)
+ mergeCache.set(a.Hash(), b.Hash(), spc)
}
return spc
}
@@ -478,7 +520,7 @@ func mergeSingletons(a, b *BaseSingletonPredictionContext, rootIsWildcard bool,
parents := []PredictionContext{singleParent, singleParent}
apc := NewArrayPredictionContext(parents, payloads)
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), apc)
+ mergeCache.set(a.Hash(), b.Hash(), apc)
}
return apc
}
@@ -494,12 +536,11 @@ func mergeSingletons(a, b *BaseSingletonPredictionContext, rootIsWildcard bool,
}
apc := NewArrayPredictionContext(parents, payloads)
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), apc)
+ mergeCache.set(a.Hash(), b.Hash(), apc)
}
return apc
}
-//
// Handle case where at least one of {@code a} or {@code b} is
// {@link //EMPTY}. In the following diagrams, the symbol {@code $} is used
// to represent {@link //EMPTY}.
@@ -561,7 +602,6 @@ func mergeRoot(a, b SingletonPredictionContext, rootIsWildcard bool) PredictionC
return nil
}
-//
// Merge two {@link ArrayBasePredictionContext} instances.
//
//
Different tops, different parents.
@@ -583,12 +623,18 @@ func mergeRoot(a, b SingletonPredictionContext, rootIsWildcard bool) PredictionC
// /
func mergeArrays(a, b *ArrayPredictionContext, rootIsWildcard bool, mergeCache *DoubleDict) PredictionContext {
if mergeCache != nil {
- previous := mergeCache.Get(a.hash(), b.hash())
+ previous := mergeCache.Get(a.Hash(), b.Hash())
if previous != nil {
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> previous")
+ }
return previous.(PredictionContext)
}
- previous = mergeCache.Get(b.hash(), a.hash())
+ previous = mergeCache.Get(b.Hash(), a.Hash())
if previous != nil {
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> previous")
+ }
return previous.(PredictionContext)
}
}
@@ -608,7 +654,7 @@ func mergeArrays(a, b *ArrayPredictionContext, rootIsWildcard bool, mergeCache *
payload := a.returnStates[i]
// $+$ = $
bothDollars := payload == BasePredictionContextEmptyReturnState && aParent == nil && bParent == nil
- axAX := (aParent != nil && bParent != nil && aParent == bParent) // ax+ax
+ axAX := aParent != nil && bParent != nil && aParent == bParent // ax+ax
// ->
// ax
if bothDollars || axAX {
@@ -651,7 +697,7 @@ func mergeArrays(a, b *ArrayPredictionContext, rootIsWildcard bool, mergeCache *
if k == 1 { // for just one merged element, return singleton top
pc := SingletonBasePredictionContextCreate(mergedParents[0], mergedReturnStates[0])
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), pc)
+ mergeCache.set(a.Hash(), b.Hash(), pc)
}
return pc
}
@@ -663,27 +709,36 @@ func mergeArrays(a, b *ArrayPredictionContext, rootIsWildcard bool, mergeCache *
// if we created same array as a or b, return that instead
// TODO: track whether this is possible above during merge sort for speed
+ // TODO: In go, I do not think we can just do M == xx as M is a brand new allocation. This could be causing allocation problems
if M == a {
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), a)
+ mergeCache.set(a.Hash(), b.Hash(), a)
+ }
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> a")
}
return a
}
if M == b {
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), b)
+ mergeCache.set(a.Hash(), b.Hash(), b)
+ }
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> b")
}
return b
}
combineCommonParents(mergedParents)
if mergeCache != nil {
- mergeCache.set(a.hash(), b.hash(), M)
+ mergeCache.set(a.Hash(), b.Hash(), M)
+ }
+ if ParserATNSimulatorTraceATNSim {
+ fmt.Println("mergeArrays a=" + a.String() + ",b=" + b.String() + " -> " + M.String())
}
return M
}
-//
// Make pass over all M {@code parents} merge any {@code equals()}
// ones.
// /
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_mode.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_mode.go
similarity index 95%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_mode.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_mode.go
index 15718f912..7b9b72fab 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/prediction_mode.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/prediction_mode.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -70,7 +70,6 @@ const (
PredictionModeLLExactAmbigDetection = 2
)
-//
// Computes the SLL prediction termination condition.
//
//
@@ -108,9 +107,9 @@ const (
// The single-alt-state thing lets prediction continue upon rules like
// (otherwise, it would admit defeat too soon):
//
-// {@code [12|1|[], 6|2|[], 12|2|[]]. s : (ID | ID ID?) '' }
+// {@code [12|1|[], 6|2|[], 12|2|[]]. s : (ID | ID ID?) ” }
//
-// When the ATN simulation reaches the state before {@code ''}, it has a
+//
When the ATN simulation reaches the state before {@code ”}, it has a
// DFA state that looks like: {@code [12|1|[], 6|2|[], 12|2|[]]}. Naturally
// {@code 12|1|[]} and {@code 12|2|[]} conflict, but we cannot stop
// processing this node because alternative to has another way to continue,
@@ -152,16 +151,15 @@ const (
//
//
Before testing these configurations against others, we have to merge
// {@code x} and {@code x'} (without modifying the existing configurations).
-// For example, we test {@code (x+x')==x''} when looking for conflicts in
+// For example, we test {@code (x+x')==x”} when looking for conflicts in
// the following configurations.
//
-// {@code (s, 1, x, {}), (s, 1, x', {p}), (s, 2, x'', {})}
+// {@code (s, 1, x, {}), (s, 1, x', {p}), (s, 2, x”, {})}
//
// If the configuration set has predicates (as indicated by
// {@link ATNConfigSet//hasSemanticContext}), this algorithm makes a copy of
// the configurations to strip out all of the predicates so that a standard
// {@link ATNConfigSet} will merge everything ignoring predicates.
-//
func PredictionModehasSLLConflictTerminatingPrediction(mode int, configs ATNConfigSet) bool {
// Configs in rule stop states indicate reaching the end of the decision
// rule (local context) or end of start rule (full context). If all
@@ -229,7 +227,6 @@ func PredictionModeallConfigsInRuleStopStates(configs ATNConfigSet) bool {
return true
}
-//
// Full LL prediction termination.
//
// Can we stop looking ahead during ATN simulation or is there some
@@ -334,7 +331,7 @@ func PredictionModeallConfigsInRuleStopStates(configs ATNConfigSet) bool {
//
//
//
{@code (s, 1, x)}, {@code (s, 2, x)}, {@code (s', 1, y)},
-// {@code (s', 2, y)}, {@code (s'', 1, z)} yields non-conflicting set
+// {@code (s', 2, y)}, {@code (s”, 1, z)} yields non-conflicting set
// {@code {1}} U conflicting sets {@code min({1,2})} U {@code min({1,2})} =
// {@code {1}} => stop and predict 1
//
@@ -369,31 +366,26 @@ func PredictionModeallConfigsInRuleStopStates(configs ATNConfigSet) bool {
// two or one and three so we keep going. We can only stop prediction when
// we need exact ambiguity detection when the sets look like
// {@code A={{1,2}}} or {@code {{1,2},{1,2}}}, etc...
-//
func PredictionModeresolvesToJustOneViableAlt(altsets []*BitSet) int {
return PredictionModegetSingleViableAlt(altsets)
}
-//
// Determines if every alternative subset in {@code altsets} contains more
// than one alternative.
//
// @param altsets a collection of alternative subsets
// @return {@code true} if every {@link BitSet} in {@code altsets} has
// {@link BitSet//cardinality cardinality} > 1, otherwise {@code false}
-//
func PredictionModeallSubsetsConflict(altsets []*BitSet) bool {
return !PredictionModehasNonConflictingAltSet(altsets)
}
-//
// Determines if any single alternative subset in {@code altsets} contains
// exactly one alternative.
//
// @param altsets a collection of alternative subsets
// @return {@code true} if {@code altsets} contains a {@link BitSet} with
// {@link BitSet//cardinality cardinality} 1, otherwise {@code false}
-//
func PredictionModehasNonConflictingAltSet(altsets []*BitSet) bool {
for i := 0; i < len(altsets); i++ {
alts := altsets[i]
@@ -404,14 +396,12 @@ func PredictionModehasNonConflictingAltSet(altsets []*BitSet) bool {
return false
}
-//
// Determines if any single alternative subset in {@code altsets} contains
// more than one alternative.
//
// @param altsets a collection of alternative subsets
// @return {@code true} if {@code altsets} contains a {@link BitSet} with
// {@link BitSet//cardinality cardinality} > 1, otherwise {@code false}
-//
func PredictionModehasConflictingAltSet(altsets []*BitSet) bool {
for i := 0; i < len(altsets); i++ {
alts := altsets[i]
@@ -422,13 +412,11 @@ func PredictionModehasConflictingAltSet(altsets []*BitSet) bool {
return false
}
-//
// Determines if every alternative subset in {@code altsets} is equivalent.
//
// @param altsets a collection of alternative subsets
// @return {@code true} if every member of {@code altsets} is equal to the
// others, otherwise {@code false}
-//
func PredictionModeallSubsetsEqual(altsets []*BitSet) bool {
var first *BitSet
@@ -444,13 +432,11 @@ func PredictionModeallSubsetsEqual(altsets []*BitSet) bool {
return true
}
-//
// Returns the unique alternative predicted by all alternative subsets in
// {@code altsets}. If no such alternative exists, this method returns
// {@link ATN//INVALID_ALT_NUMBER}.
//
// @param altsets a collection of alternative subsets
-//
func PredictionModegetUniqueAlt(altsets []*BitSet) int {
all := PredictionModeGetAlts(altsets)
if all.length() == 1 {
@@ -466,7 +452,6 @@ func PredictionModegetUniqueAlt(altsets []*BitSet) int {
//
// @param altsets a collection of alternative subsets
// @return the set of represented alternatives in {@code altsets}
-//
func PredictionModeGetAlts(altsets []*BitSet) *BitSet {
all := NewBitSet()
for _, alts := range altsets {
@@ -475,44 +460,35 @@ func PredictionModeGetAlts(altsets []*BitSet) *BitSet {
return all
}
-//
-// This func gets the conflicting alt subsets from a configuration set.
+// PredictionModegetConflictingAltSubsets gets the conflicting alt subsets from a configuration set.
// For each configuration {@code c} in {@code configs}:
//
//
// map[c] U= c.{@link ATNConfig//alt alt} // map hash/equals uses s and x, not
// alt and not pred
//
-//
func PredictionModegetConflictingAltSubsets(configs ATNConfigSet) []*BitSet {
- configToAlts := make(map[int]*BitSet)
+ configToAlts := NewJMap[ATNConfig, *BitSet, *ATNAltConfigComparator[ATNConfig]](atnAltCfgEqInst)
for _, c := range configs.GetItems() {
- key := 31 * c.GetState().GetStateNumber() + c.GetContext().hash()
- alts, ok := configToAlts[key]
+ alts, ok := configToAlts.Get(c)
if !ok {
alts = NewBitSet()
- configToAlts[key] = alts
+ configToAlts.Put(c, alts)
}
alts.add(c.GetAlt())
}
- values := make([]*BitSet, 0, 10)
- for _, v := range configToAlts {
- values = append(values, v)
- }
- return values
+ return configToAlts.Values()
}
-//
-// Get a map from state to alt subset from a configuration set. For each
+// PredictionModeGetStateToAltMap gets a map from state to alt subset from a configuration set. For each
// configuration {@code c} in {@code configs}:
//
//
// map[c.{@link ATNConfig//state state}] U= c.{@link ATNConfig//alt alt}
//
-//
func PredictionModeGetStateToAltMap(configs ATNConfigSet) *AltDict {
m := NewAltDict()
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/recognizer.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/recognizer.go
similarity index 92%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/recognizer.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/recognizer.go
index 93efcf355..bfe542d09 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/recognizer.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/recognizer.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -49,7 +49,7 @@ var tokenTypeMapCache = make(map[string]int)
var ruleIndexMapCache = make(map[string]int)
func (b *BaseRecognizer) checkVersion(toolVersion string) {
- runtimeVersion := "4.10.1"
+ runtimeVersion := "4.12.0"
if runtimeVersion != toolVersion {
fmt.Println("ANTLR runtime and generated code versions disagree: " + runtimeVersion + "!=" + toolVersion)
}
@@ -108,7 +108,6 @@ func (b *BaseRecognizer) SetState(v int) {
// Get a map from rule names to rule indexes.
//
// Used for XPath and tree pattern compilation.
-//
func (b *BaseRecognizer) GetRuleIndexMap() map[string]int {
panic("Method not defined!")
@@ -171,18 +170,18 @@ func (b *BaseRecognizer) GetErrorHeader(e RecognitionException) string {
}
// How should a token be displayed in an error message? The default
-// is to display just the text, but during development you might
-// want to have a lot of information spit out. Override in that case
-// to use t.String() (which, for CommonToken, dumps everything about
-// the token). This is better than forcing you to override a method in
-// your token objects because you don't have to go modify your lexer
-// so that it creates a NewJava type.
+//
+// is to display just the text, but during development you might
+// want to have a lot of information spit out. Override in that case
+// to use t.String() (which, for CommonToken, dumps everything about
+// the token). This is better than forcing you to override a method in
+// your token objects because you don't have to go modify your lexer
+// so that it creates a NewJava type.
//
// @deprecated This method is not called by the ANTLR 4 Runtime. Specific
// implementations of {@link ANTLRErrorStrategy} may provide a similar
// feature when necessary. For example, see
// {@link DefaultErrorStrategy//GetTokenErrorDisplay}.
-//
func (b *BaseRecognizer) GetTokenErrorDisplay(t Token) string {
if t == nil {
return ""
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/rule_context.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/rule_context.go
similarity index 97%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/rule_context.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/rule_context.go
index 600cf8c06..210699ba2 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/rule_context.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/rule_context.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/semantic_context.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/semantic_context.go
similarity index 85%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/semantic_context.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/semantic_context.go
index 9ada43077..a702e99de 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/semantic_context.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/semantic_context.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -18,12 +18,12 @@ import (
//
type SemanticContext interface {
- comparable
+ Equals(other Collectable[SemanticContext]) bool
+ Hash() int
evaluate(parser Recognizer, outerContext RuleContext) bool
evalPrecedence(parser Recognizer, outerContext RuleContext) SemanticContext
- hash() int
String() string
}
@@ -78,7 +78,7 @@ func NewPredicate(ruleIndex, predIndex int, isCtxDependent bool) *Predicate {
//The default {@link SemanticContext}, which is semantically equivalent to
//a predicate of the form {@code {true}?}.
-var SemanticContextNone SemanticContext = NewPredicate(-1, -1, false)
+var SemanticContextNone = NewPredicate(-1, -1, false)
func (p *Predicate) evalPrecedence(parser Recognizer, outerContext RuleContext) SemanticContext {
return p
@@ -95,7 +95,7 @@ func (p *Predicate) evaluate(parser Recognizer, outerContext RuleContext) bool {
return parser.Sempred(localctx, p.ruleIndex, p.predIndex)
}
-func (p *Predicate) equals(other interface{}) bool {
+func (p *Predicate) Equals(other Collectable[SemanticContext]) bool {
if p == other {
return true
} else if _, ok := other.(*Predicate); !ok {
@@ -107,7 +107,7 @@ func (p *Predicate) equals(other interface{}) bool {
}
}
-func (p *Predicate) hash() int {
+func (p *Predicate) Hash() int {
h := murmurInit(0)
h = murmurUpdate(h, p.ruleIndex)
h = murmurUpdate(h, p.predIndex)
@@ -151,17 +151,22 @@ func (p *PrecedencePredicate) compareTo(other *PrecedencePredicate) int {
return p.precedence - other.precedence
}
-func (p *PrecedencePredicate) equals(other interface{}) bool {
- if p == other {
- return true
- } else if _, ok := other.(*PrecedencePredicate); !ok {
+func (p *PrecedencePredicate) Equals(other Collectable[SemanticContext]) bool {
+
+ var op *PrecedencePredicate
+ var ok bool
+ if op, ok = other.(*PrecedencePredicate); !ok {
return false
- } else {
- return p.precedence == other.(*PrecedencePredicate).precedence
}
+
+ if p == op {
+ return true
+ }
+
+ return p.precedence == other.(*PrecedencePredicate).precedence
}
-func (p *PrecedencePredicate) hash() int {
+func (p *PrecedencePredicate) Hash() int {
h := uint32(1)
h = 31*h + uint32(p.precedence)
return int(h)
@@ -171,10 +176,10 @@ func (p *PrecedencePredicate) String() string {
return "{" + strconv.Itoa(p.precedence) + ">=prec}?"
}
-func PrecedencePredicatefilterPrecedencePredicates(set Set) []*PrecedencePredicate {
+func PrecedencePredicatefilterPrecedencePredicates(set *JStore[SemanticContext, Comparator[SemanticContext]]) []*PrecedencePredicate {
result := make([]*PrecedencePredicate, 0)
- set.Each(func(v interface{}) bool {
+ set.Each(func(v SemanticContext) bool {
if c2, ok := v.(*PrecedencePredicate); ok {
result = append(result, c2)
}
@@ -193,21 +198,21 @@ type AND struct {
func NewAND(a, b SemanticContext) *AND {
- operands := newArray2DHashSet(nil, nil)
+ operands := NewJStore[SemanticContext, Comparator[SemanticContext]](semctxEqInst)
if aa, ok := a.(*AND); ok {
for _, o := range aa.opnds {
- operands.Add(o)
+ operands.Put(o)
}
} else {
- operands.Add(a)
+ operands.Put(a)
}
if ba, ok := b.(*AND); ok {
for _, o := range ba.opnds {
- operands.Add(o)
+ operands.Put(o)
}
} else {
- operands.Add(b)
+ operands.Put(b)
}
precedencePredicates := PrecedencePredicatefilterPrecedencePredicates(operands)
if len(precedencePredicates) > 0 {
@@ -220,7 +225,7 @@ func NewAND(a, b SemanticContext) *AND {
}
}
- operands.Add(reduced)
+ operands.Put(reduced)
}
vs := operands.Values()
@@ -235,14 +240,15 @@ func NewAND(a, b SemanticContext) *AND {
return and
}
-func (a *AND) equals(other interface{}) bool {
+func (a *AND) Equals(other Collectable[SemanticContext]) bool {
if a == other {
return true
- } else if _, ok := other.(*AND); !ok {
+ }
+ if _, ok := other.(*AND); !ok {
return false
} else {
for i, v := range other.(*AND).opnds {
- if !a.opnds[i].equals(v) {
+ if !a.opnds[i].Equals(v) {
return false
}
}
@@ -250,13 +256,11 @@ func (a *AND) equals(other interface{}) bool {
}
}
-//
// {@inheritDoc}
//
//
// The evaluation of predicates by a context is short-circuiting, but
// unordered.
-//
func (a *AND) evaluate(parser Recognizer, outerContext RuleContext) bool {
for i := 0; i < len(a.opnds); i++ {
if !a.opnds[i].evaluate(parser, outerContext) {
@@ -304,18 +308,18 @@ func (a *AND) evalPrecedence(parser Recognizer, outerContext RuleContext) Semant
return result
}
-func (a *AND) hash() int {
+func (a *AND) Hash() int {
h := murmurInit(37) // Init with a value different from OR
for _, op := range a.opnds {
- h = murmurUpdate(h, op.hash())
+ h = murmurUpdate(h, op.Hash())
}
return murmurFinish(h, len(a.opnds))
}
-func (a *OR) hash() int {
+func (a *OR) Hash() int {
h := murmurInit(41) // Init with a value different from AND
for _, op := range a.opnds {
- h = murmurUpdate(h, op.hash())
+ h = murmurUpdate(h, op.Hash())
}
return murmurFinish(h, len(a.opnds))
}
@@ -345,21 +349,21 @@ type OR struct {
func NewOR(a, b SemanticContext) *OR {
- operands := newArray2DHashSet(nil, nil)
+ operands := NewJStore[SemanticContext, Comparator[SemanticContext]](semctxEqInst)
if aa, ok := a.(*OR); ok {
for _, o := range aa.opnds {
- operands.Add(o)
+ operands.Put(o)
}
} else {
- operands.Add(a)
+ operands.Put(a)
}
if ba, ok := b.(*OR); ok {
for _, o := range ba.opnds {
- operands.Add(o)
+ operands.Put(o)
}
} else {
- operands.Add(b)
+ operands.Put(b)
}
precedencePredicates := PrecedencePredicatefilterPrecedencePredicates(operands)
if len(precedencePredicates) > 0 {
@@ -372,7 +376,7 @@ func NewOR(a, b SemanticContext) *OR {
}
}
- operands.Add(reduced)
+ operands.Put(reduced)
}
vs := operands.Values()
@@ -388,14 +392,14 @@ func NewOR(a, b SemanticContext) *OR {
return o
}
-func (o *OR) equals(other interface{}) bool {
+func (o *OR) Equals(other Collectable[SemanticContext]) bool {
if o == other {
return true
} else if _, ok := other.(*OR); !ok {
return false
} else {
for i, v := range other.(*OR).opnds {
- if !o.opnds[i].equals(v) {
+ if !o.opnds[i].Equals(v) {
return false
}
}
@@ -406,7 +410,6 @@ func (o *OR) equals(other interface{}) bool {
//
// The evaluation of predicates by o context is short-circuiting, but
// unordered.
-//
func (o *OR) evaluate(parser Recognizer, outerContext RuleContext) bool {
for i := 0; i < len(o.opnds); i++ {
if o.opnds[i].evaluate(parser, outerContext) {
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token.go
similarity index 98%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/token.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token.go
index 2d8e99095..f73b06bc6 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
@@ -158,7 +158,6 @@ func NewCommonToken(source *TokenSourceCharStreamPair, tokenType, channel, start
// {@link Token//GetInputStream}.
//
// @param oldToken The token to copy.
-//
func (c *CommonToken) clone() *CommonToken {
t := NewCommonToken(c.source, c.tokenType, c.channel, c.start, c.stop)
t.tokenIndex = c.GetTokenIndex()
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_source.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_source.go
similarity index 85%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_source.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_source.go
index e023978fe..a3f36eaa6 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_source.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_source.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_stream.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_stream.go
similarity index 87%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_stream.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_stream.go
index df92c8147..1527d43f6 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/token_stream.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/token_stream.go
@@ -1,4 +1,4 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
diff --git a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/tokenstream_rewriter.go b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/tokenstream_rewriter.go
similarity index 58%
rename from vendor/github.com/antlr/antlr4/runtime/Go/antlr/tokenstream_rewriter.go
rename to vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/tokenstream_rewriter.go
index 96a03f02a..b3e38af34 100644
--- a/vendor/github.com/antlr/antlr4/runtime/Go/antlr/tokenstream_rewriter.go
+++ b/vendor/github.com/antlr/antlr4/runtime/Go/antlr/v4/tokenstream_rewriter.go
@@ -1,15 +1,15 @@
-// Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
+// Copyright (c) 2012-2022 The ANTLR Project. All rights reserved.
// Use of this file is governed by the BSD 3-clause license that
// can be found in the LICENSE.txt file in the project root.
+
package antlr
import (
-"bytes"
-"fmt"
+ "bytes"
+ "fmt"
)
-
-//
+//
// Useful for rewriting out a buffered input token stream after doing some
// augmentation or other manipulations on it.
@@ -85,12 +85,10 @@ import (
// If you don't use named rewrite streams, a "default" stream is used as the
// first example shows.
-
-
-const(
+const (
Default_Program_Name = "default"
- Program_Init_Size = 100
- Min_Token_Index = 0
+ Program_Init_Size = 100
+ Min_Token_Index = 0
)
// Define the rewrite operation hierarchy
@@ -98,13 +96,13 @@ const(
type RewriteOperation interface {
// Execute the rewrite operation by possibly adding to the buffer.
// Return the index of the next token to operate on.
- Execute(buffer *bytes.Buffer) int
- String() string
- GetInstructionIndex() int
- GetIndex() int
- GetText() string
- GetOpName() string
- GetTokens() TokenStream
+ Execute(buffer *bytes.Buffer) int
+ String() string
+ GetInstructionIndex() int
+ GetIndex() int
+ GetText() string
+ GetOpName() string
+ GetTokens() TokenStream
SetInstructionIndex(val int)
SetIndex(int)
SetText(string)
@@ -114,63 +112,62 @@ type RewriteOperation interface {
type BaseRewriteOperation struct {
//Current index of rewrites list
- instruction_index int
+ instruction_index int
//Token buffer index
- index int
+ index int
//Substitution text
- text string
+ text string
//Actual operation name
- op_name string
+ op_name string
//Pointer to token steam
- tokens TokenStream
+ tokens TokenStream
}
-func (op *BaseRewriteOperation)GetInstructionIndex() int{
+func (op *BaseRewriteOperation) GetInstructionIndex() int {
return op.instruction_index
}
-func (op *BaseRewriteOperation)GetIndex() int{
+func (op *BaseRewriteOperation) GetIndex() int {
return op.index
}
-func (op *BaseRewriteOperation)GetText() string{
+func (op *BaseRewriteOperation) GetText() string {
return op.text
}
-func (op *BaseRewriteOperation)GetOpName() string{
+func (op *BaseRewriteOperation) GetOpName() string {
return op.op_name
}
-func (op *BaseRewriteOperation)GetTokens() TokenStream{
+func (op *BaseRewriteOperation) GetTokens() TokenStream {
return op.tokens
}
-func (op *BaseRewriteOperation)SetInstructionIndex(val int){
+func (op *BaseRewriteOperation) SetInstructionIndex(val int) {
op.instruction_index = val
}
-func (op *BaseRewriteOperation)SetIndex(val int) {
+func (op *BaseRewriteOperation) SetIndex(val int) {
op.index = val
}
-func (op *BaseRewriteOperation)SetText(val string){
+func (op *BaseRewriteOperation) SetText(val string) {
op.text = val
}
-func (op *BaseRewriteOperation)SetOpName(val string){
+func (op *BaseRewriteOperation) SetOpName(val string) {
op.op_name = val
}
-func (op *BaseRewriteOperation)SetTokens(val TokenStream) {
+func (op *BaseRewriteOperation) SetTokens(val TokenStream) {
op.tokens = val
}
-
-func (op *BaseRewriteOperation) Execute(buffer *bytes.Buffer) int{
+func (op *BaseRewriteOperation) Execute(buffer *bytes.Buffer) int {
return op.index
}
-func (op *BaseRewriteOperation) String() string {
+func (op *BaseRewriteOperation) String() string {
return fmt.Sprintf("<%s@%d:\"%s\">",
op.op_name,
op.tokens.Get(op.GetIndex()),
@@ -179,26 +176,25 @@ func (op *BaseRewriteOperation) String() string {
}
-
type InsertBeforeOp struct {
BaseRewriteOperation
}
-func NewInsertBeforeOp(index int, text string, stream TokenStream) *InsertBeforeOp{
- return &InsertBeforeOp{BaseRewriteOperation:BaseRewriteOperation{
- index:index,
- text:text,
- op_name:"InsertBeforeOp",
- tokens:stream,
+func NewInsertBeforeOp(index int, text string, stream TokenStream) *InsertBeforeOp {
+ return &InsertBeforeOp{BaseRewriteOperation: BaseRewriteOperation{
+ index: index,
+ text: text,
+ op_name: "InsertBeforeOp",
+ tokens: stream,
}}
}
-func (op *InsertBeforeOp) Execute(buffer *bytes.Buffer) int{
+func (op *InsertBeforeOp) Execute(buffer *bytes.Buffer) int {
buffer.WriteString(op.text)
- if op.tokens.Get(op.index).GetTokenType() != TokenEOF{
+ if op.tokens.Get(op.index).GetTokenType() != TokenEOF {
buffer.WriteString(op.tokens.Get(op.index).GetText())
}
- return op.index+1
+ return op.index + 1
}
func (op *InsertBeforeOp) String() string {
@@ -213,20 +209,20 @@ type InsertAfterOp struct {
BaseRewriteOperation
}
-func NewInsertAfterOp(index int, text string, stream TokenStream) *InsertAfterOp{
- return &InsertAfterOp{BaseRewriteOperation:BaseRewriteOperation{
- index:index+1,
- text:text,
- tokens:stream,
+func NewInsertAfterOp(index int, text string, stream TokenStream) *InsertAfterOp {
+ return &InsertAfterOp{BaseRewriteOperation: BaseRewriteOperation{
+ index: index + 1,
+ text: text,
+ tokens: stream,
}}
}
func (op *InsertAfterOp) Execute(buffer *bytes.Buffer) int {
buffer.WriteString(op.text)
- if op.tokens.Get(op.index).GetTokenType() != TokenEOF{
+ if op.tokens.Get(op.index).GetTokenType() != TokenEOF {
buffer.WriteString(op.tokens.Get(op.index).GetText())
}
- return op.index+1
+ return op.index + 1
}
func (op *InsertAfterOp) String() string {
@@ -235,28 +231,28 @@ func (op *InsertAfterOp) String() string {
// I'm going to try replacing range from x..y with (y-x)+1 ReplaceOp
// instructions.
-type ReplaceOp struct{
+type ReplaceOp struct {
BaseRewriteOperation
LastIndex int
}
-func NewReplaceOp(from, to int, text string, stream TokenStream)*ReplaceOp {
+func NewReplaceOp(from, to int, text string, stream TokenStream) *ReplaceOp {
return &ReplaceOp{
- BaseRewriteOperation:BaseRewriteOperation{
- index:from,
- text:text,
- op_name:"ReplaceOp",
- tokens:stream,
+ BaseRewriteOperation: BaseRewriteOperation{
+ index: from,
+ text: text,
+ op_name: "ReplaceOp",
+ tokens: stream,
},
- LastIndex:to,
+ LastIndex: to,
}
}
-func (op *ReplaceOp)Execute(buffer *bytes.Buffer) int{
- if op.text != ""{
+func (op *ReplaceOp) Execute(buffer *bytes.Buffer) int {
+ if op.text != "" {
buffer.WriteString(op.text)
}
- return op.LastIndex +1
+ return op.LastIndex + 1
}
func (op *ReplaceOp) String() string {
@@ -268,54 +264,54 @@ func (op *ReplaceOp) String() string {
op.tokens.Get(op.index), op.tokens.Get(op.LastIndex), op.text)
}
-
type TokenStreamRewriter struct {
//Our source stream
- tokens TokenStream
+ tokens TokenStream
// You may have multiple, named streams of rewrite operations.
// I'm calling these things "programs."
// Maps String (name) → rewrite (List)
- programs map[string][]RewriteOperation
- last_rewrite_token_indexes map[string]int
+ programs map[string][]RewriteOperation
+ last_rewrite_token_indexes map[string]int
}
-func NewTokenStreamRewriter(tokens TokenStream) *TokenStreamRewriter{
+func NewTokenStreamRewriter(tokens TokenStream) *TokenStreamRewriter {
return &TokenStreamRewriter{
- tokens: tokens,
- programs: map[string][]RewriteOperation{
- Default_Program_Name:make([]RewriteOperation,0, Program_Init_Size),
+ tokens: tokens,
+ programs: map[string][]RewriteOperation{
+ Default_Program_Name: make([]RewriteOperation, 0, Program_Init_Size),
},
- last_rewrite_token_indexes: map[string]int{},
+ last_rewrite_token_indexes: map[string]int{},
}
}
-func (tsr *TokenStreamRewriter) GetTokenStream() TokenStream{
+func (tsr *TokenStreamRewriter) GetTokenStream() TokenStream {
return tsr.tokens
}
-// Rollback the instruction stream for a program so that
-// the indicated instruction (via instructionIndex) is no
-// longer in the stream. UNTESTED!
-func (tsr *TokenStreamRewriter) Rollback(program_name string, instruction_index int){
- is, ok := tsr.programs[program_name]
- if ok{
+// Rollback the instruction stream for a program so that
+// the indicated instruction (via instructionIndex) is no
+// longer in the stream. UNTESTED!
+func (tsr *TokenStreamRewriter) Rollback(program_name string, instruction_index int) {
+ is, ok := tsr.programs[program_name]
+ if ok {
tsr.programs[program_name] = is[Min_Token_Index:instruction_index]
}
}
-func (tsr *TokenStreamRewriter) RollbackDefault(instruction_index int){
+func (tsr *TokenStreamRewriter) RollbackDefault(instruction_index int) {
tsr.Rollback(Default_Program_Name, instruction_index)
}
-//Reset the program so that no instructions exist
-func (tsr *TokenStreamRewriter) DeleteProgram(program_name string){
+
+// Reset the program so that no instructions exist
+func (tsr *TokenStreamRewriter) DeleteProgram(program_name string) {
tsr.Rollback(program_name, Min_Token_Index) //TODO: double test on that cause lower bound is not included
}
-func (tsr *TokenStreamRewriter) DeleteProgramDefault(){
+func (tsr *TokenStreamRewriter) DeleteProgramDefault() {
tsr.DeleteProgram(Default_Program_Name)
}
-func (tsr *TokenStreamRewriter) InsertAfter(program_name string, index int, text string){
+func (tsr *TokenStreamRewriter) InsertAfter(program_name string, index int, text string) {
// to insert after, just insert before next index (even if past end)
var op RewriteOperation = NewInsertAfterOp(index, text, tsr.tokens)
rewrites := tsr.GetProgram(program_name)
@@ -323,31 +319,31 @@ func (tsr *TokenStreamRewriter) InsertAfter(program_name string, index int, text
tsr.AddToProgram(program_name, op)
}
-func (tsr *TokenStreamRewriter) InsertAfterDefault(index int, text string){
+func (tsr *TokenStreamRewriter) InsertAfterDefault(index int, text string) {
tsr.InsertAfter(Default_Program_Name, index, text)
}
-func (tsr *TokenStreamRewriter) InsertAfterToken(program_name string, token Token, text string){
+func (tsr *TokenStreamRewriter) InsertAfterToken(program_name string, token Token, text string) {
tsr.InsertAfter(program_name, token.GetTokenIndex(), text)
}
-func (tsr* TokenStreamRewriter) InsertBefore(program_name string, index int, text string){
+func (tsr *TokenStreamRewriter) InsertBefore(program_name string, index int, text string) {
var op RewriteOperation = NewInsertBeforeOp(index, text, tsr.tokens)
rewrites := tsr.GetProgram(program_name)
op.SetInstructionIndex(len(rewrites))
tsr.AddToProgram(program_name, op)
}
-func (tsr *TokenStreamRewriter) InsertBeforeDefault(index int, text string){
+func (tsr *TokenStreamRewriter) InsertBeforeDefault(index int, text string) {
tsr.InsertBefore(Default_Program_Name, index, text)
}
-func (tsr *TokenStreamRewriter) InsertBeforeToken(program_name string,token Token, text string){
+func (tsr *TokenStreamRewriter) InsertBeforeToken(program_name string, token Token, text string) {
tsr.InsertBefore(program_name, token.GetTokenIndex(), text)
}
-func (tsr *TokenStreamRewriter) Replace(program_name string, from, to int, text string){
- if from > to || from < 0 || to < 0 || to >= tsr.tokens.Size(){
+func (tsr *TokenStreamRewriter) Replace(program_name string, from, to int, text string) {
+ if from > to || from < 0 || to < 0 || to >= tsr.tokens.Size() {
panic(fmt.Sprintf("replace: range invalid: %d..%d(size=%d)",
from, to, tsr.tokens.Size()))
}
@@ -357,207 +353,216 @@ func (tsr *TokenStreamRewriter) Replace(program_name string, from, to int, text
tsr.AddToProgram(program_name, op)
}
-func (tsr *TokenStreamRewriter)ReplaceDefault(from, to int, text string) {
+func (tsr *TokenStreamRewriter) ReplaceDefault(from, to int, text string) {
tsr.Replace(Default_Program_Name, from, to, text)
}
-func (tsr *TokenStreamRewriter)ReplaceDefaultPos(index int, text string){
+func (tsr *TokenStreamRewriter) ReplaceDefaultPos(index int, text string) {
tsr.ReplaceDefault(index, index, text)
}
-func (tsr *TokenStreamRewriter)ReplaceToken(program_name string, from, to Token, text string){
+func (tsr *TokenStreamRewriter) ReplaceToken(program_name string, from, to Token, text string) {
tsr.Replace(program_name, from.GetTokenIndex(), to.GetTokenIndex(), text)
}
-func (tsr *TokenStreamRewriter)ReplaceTokenDefault(from, to Token, text string){
+func (tsr *TokenStreamRewriter) ReplaceTokenDefault(from, to Token, text string) {
tsr.ReplaceToken(Default_Program_Name, from, to, text)
}
-func (tsr *TokenStreamRewriter)ReplaceTokenDefaultPos(index Token, text string){
+func (tsr *TokenStreamRewriter) ReplaceTokenDefaultPos(index Token, text string) {
tsr.ReplaceTokenDefault(index, index, text)
}
-func (tsr *TokenStreamRewriter)Delete(program_name string, from, to int){
- tsr.Replace(program_name, from, to, "" )
+func (tsr *TokenStreamRewriter) Delete(program_name string, from, to int) {
+ tsr.Replace(program_name, from, to, "")
}
-func (tsr *TokenStreamRewriter)DeleteDefault(from, to int){
+func (tsr *TokenStreamRewriter) DeleteDefault(from, to int) {
tsr.Delete(Default_Program_Name, from, to)
}
-func (tsr *TokenStreamRewriter)DeleteDefaultPos(index int){
- tsr.DeleteDefault(index,index)
+func (tsr *TokenStreamRewriter) DeleteDefaultPos(index int) {
+ tsr.DeleteDefault(index, index)
}
-func (tsr *TokenStreamRewriter)DeleteToken(program_name string, from, to Token) {
+func (tsr *TokenStreamRewriter) DeleteToken(program_name string, from, to Token) {
tsr.ReplaceToken(program_name, from, to, "")
}
-func (tsr *TokenStreamRewriter)DeleteTokenDefault(from,to Token){
+func (tsr *TokenStreamRewriter) DeleteTokenDefault(from, to Token) {
tsr.DeleteToken(Default_Program_Name, from, to)
}
-func (tsr *TokenStreamRewriter)GetLastRewriteTokenIndex(program_name string)int {
+func (tsr *TokenStreamRewriter) GetLastRewriteTokenIndex(program_name string) int {
i, ok := tsr.last_rewrite_token_indexes[program_name]
- if !ok{
+ if !ok {
return -1
}
return i
}
-func (tsr *TokenStreamRewriter)GetLastRewriteTokenIndexDefault()int{
+func (tsr *TokenStreamRewriter) GetLastRewriteTokenIndexDefault() int {
return tsr.GetLastRewriteTokenIndex(Default_Program_Name)
}
-func (tsr *TokenStreamRewriter)SetLastRewriteTokenIndex(program_name string, i int){
+func (tsr *TokenStreamRewriter) SetLastRewriteTokenIndex(program_name string, i int) {
tsr.last_rewrite_token_indexes[program_name] = i
}
-func (tsr *TokenStreamRewriter)InitializeProgram(name string)[]RewriteOperation{
+func (tsr *TokenStreamRewriter) InitializeProgram(name string) []RewriteOperation {
is := make([]RewriteOperation, 0, Program_Init_Size)
tsr.programs[name] = is
return is
}
-func (tsr *TokenStreamRewriter)AddToProgram(name string, op RewriteOperation){
+func (tsr *TokenStreamRewriter) AddToProgram(name string, op RewriteOperation) {
is := tsr.GetProgram(name)
is = append(is, op)
tsr.programs[name] = is
}
-func (tsr *TokenStreamRewriter)GetProgram(name string) []RewriteOperation {
+func (tsr *TokenStreamRewriter) GetProgram(name string) []RewriteOperation {
is, ok := tsr.programs[name]
- if !ok{
+ if !ok {
is = tsr.InitializeProgram(name)
}
return is
}
-// Return the text from the original tokens altered per the
-// instructions given to this rewriter.
-func (tsr *TokenStreamRewriter)GetTextDefault() string{
+
+// Return the text from the original tokens altered per the
+// instructions given to this rewriter.
+func (tsr *TokenStreamRewriter) GetTextDefault() string {
return tsr.GetText(
Default_Program_Name,
NewInterval(0, tsr.tokens.Size()-1))
}
-// Return the text from the original tokens altered per the
-// instructions given to this rewriter.
-func (tsr *TokenStreamRewriter)GetText(program_name string, interval *Interval) string {
+
+// Return the text from the original tokens altered per the
+// instructions given to this rewriter.
+func (tsr *TokenStreamRewriter) GetText(program_name string, interval *Interval) string {
rewrites := tsr.programs[program_name]
start := interval.Start
- stop := interval.Stop
+ stop := interval.Stop
// ensure start/end are in range
stop = min(stop, tsr.tokens.Size()-1)
- start = max(start,0)
- if rewrites == nil || len(rewrites) == 0{
+ start = max(start, 0)
+ if rewrites == nil || len(rewrites) == 0 {
return tsr.tokens.GetTextFromInterval(interval) // no instructions to execute
}
buf := bytes.Buffer{}
// First, optimize instruction stream
indexToOp := reduceToSingleOperationPerIndex(rewrites)
// Walk buffer, executing instructions and emitting tokens
- for i:=start; i<=stop && i= tsr.tokens.Size()-1 {buf.WriteString(op.GetText())}
+ for _, op := range indexToOp {
+ if op.GetIndex() >= tsr.tokens.Size()-1 {
+ buf.WriteString(op.GetText())
+ }
}
}
return buf.String()
}
-// We need to combine operations and report invalid operations (like
-// overlapping replaces that are not completed nested). Inserts to
-// same index need to be combined etc... Here are the cases:
+// We need to combine operations and report invalid operations (like
+// overlapping replaces that are not completed nested). Inserts to
+// same index need to be combined etc... Here are the cases:
//
-// I.i.u I.j.v leave alone, nonoverlapping
-// I.i.u I.i.v combine: Iivu
+// I.i.u I.j.v leave alone, nonoverlapping
+// I.i.u I.i.v combine: Iivu
//
-// R.i-j.u R.x-y.v | i-j in x-y delete first R
-// R.i-j.u R.i-j.v delete first R
-// R.i-j.u R.x-y.v | x-y in i-j ERROR
-// R.i-j.u R.x-y.v | boundaries overlap ERROR
+// R.i-j.u R.x-y.v | i-j in x-y delete first R
+// R.i-j.u R.i-j.v delete first R
+// R.i-j.u R.x-y.v | x-y in i-j ERROR
+// R.i-j.u R.x-y.v | boundaries overlap ERROR
//
-// Delete special case of replace (text==null):
-// D.i-j.u D.x-y.v | boundaries overlap combine to max(min)..max(right)
+// Delete special case of replace (text==null):
+// D.i-j.u D.x-y.v | boundaries overlap combine to max(min)..max(right)
//
-// I.i.u R.x-y.v | i in (x+1)-y delete I (since insert before
-// we're not deleting i)
-// I.i.u R.x-y.v | i not in (x+1)-y leave alone, nonoverlapping
-// R.x-y.v I.i.u | i in x-y ERROR
-// R.x-y.v I.x.u R.x-y.uv (combine, delete I)
-// R.x-y.v I.i.u | i not in x-y leave alone, nonoverlapping
+// I.i.u R.x-y.v | i in (x+1)-y delete I (since insert before
+// we're not deleting i)
+// I.i.u R.x-y.v | i not in (x+1)-y leave alone, nonoverlapping
+// R.x-y.v I.i.u | i in x-y ERROR
+// R.x-y.v I.x.u R.x-y.uv (combine, delete I)
+// R.x-y.v I.i.u | i not in x-y leave alone, nonoverlapping
//
-// I.i.u = insert u before op @ index i
-// R.x-y.u = replace x-y indexed tokens with u
+// I.i.u = insert u before op @ index i
+// R.x-y.u = replace x-y indexed tokens with u
//
-// First we need to examine replaces. For any replace op:
+// First we need to examine replaces. For any replace op:
//
-// 1. wipe out any insertions before op within that range.
-// 2. Drop any replace op before that is contained completely within
-// that range.
-// 3. Throw exception upon boundary overlap with any previous replace.
+// 1. wipe out any insertions before op within that range.
+// 2. Drop any replace op before that is contained completely within
+// that range.
+// 3. Throw exception upon boundary overlap with any previous replace.
//
-// Then we can deal with inserts:
+// Then we can deal with inserts:
//
-// 1. for any inserts to same index, combine even if not adjacent.
-// 2. for any prior replace with same left boundary, combine this
-// insert with replace and delete this replace.
-// 3. throw exception if index in same range as previous replace
+// 1. for any inserts to same index, combine even if not adjacent.
+// 2. for any prior replace with same left boundary, combine this
+// insert with replace and delete this replace.
+// 3. throw exception if index in same range as previous replace
//
-// Don't actually delete; make op null in list. Easier to walk list.
-// Later we can throw as we add to index → op map.
+// Don't actually delete; make op null in list. Easier to walk list.
+// Later we can throw as we add to index → op map.
//
-// Note that I.2 R.2-2 will wipe out I.2 even though, technically, the
-// inserted stuff would be before the replace range. But, if you
-// add tokens in front of a method body '{' and then delete the method
-// body, I think the stuff before the '{' you added should disappear too.
+// Note that I.2 R.2-2 will wipe out I.2 even though, technically, the
+// inserted stuff would be before the replace range. But, if you
+// add tokens in front of a method body '{' and then delete the method
+// body, I think the stuff before the '{' you added should disappear too.
//
-// Return a map from token index to operation.
-//
-func reduceToSingleOperationPerIndex(rewrites []RewriteOperation) map[int]RewriteOperation{
+// Return a map from token index to operation.
+func reduceToSingleOperationPerIndex(rewrites []RewriteOperation) map[int]RewriteOperation {
// WALK REPLACES
- for i:=0; i < len(rewrites); i++{
+ for i := 0; i < len(rewrites); i++ {
op := rewrites[i]
- if op == nil{continue}
+ if op == nil {
+ continue
+ }
rop, ok := op.(*ReplaceOp)
- if !ok{continue}
+ if !ok {
+ continue
+ }
// Wipe prior inserts within range
- for j:=0; j rop.index && iop.index <=rop.LastIndex{
+ } else if iop.index > rop.index && iop.index <= rop.LastIndex {
// delete insert as it's a no-op.
rewrites[iop.instruction_index] = nil
}
}
}
// Drop any prior replaces contained within
- for j:=0; j=rop.index && prevop.LastIndex <= rop.LastIndex{
+ for j := 0; j < i && j < len(rewrites); j++ {
+ if prevop, ok := rewrites[j].(*ReplaceOp); ok {
+ if prevop.index >= rop.index && prevop.LastIndex <= rop.LastIndex {
// delete replace as it's a no-op.
rewrites[prevop.instruction_index] = nil
continue
@@ -566,61 +571,67 @@ func reduceToSingleOperationPerIndex(rewrites []RewriteOperation) map[int]Rewrit
disjoint := prevop.LastIndex < rop.index || prevop.index > rop.LastIndex
// Delete special case of replace (text==null):
// D.i-j.u D.x-y.v | boundaries overlap combine to max(min)..max(right)
- if prevop.text == "" && rop.text == "" && !disjoint{
+ if prevop.text == "" && rop.text == "" && !disjoint {
rewrites[prevop.instruction_index] = nil
rop.index = min(prevop.index, rop.index)
rop.LastIndex = max(prevop.LastIndex, rop.LastIndex)
println("new rop" + rop.String()) //TODO: remove console write, taken from Java version
- }else if !disjoint{
+ } else if !disjoint {
panic("replace op boundaries of " + rop.String() + " overlap with previous " + prevop.String())
}
}
}
}
// WALK INSERTS
- for i:=0; i < len(rewrites); i++ {
+ for i := 0; i < len(rewrites); i++ {
op := rewrites[i]
- if op == nil{continue}
+ if op == nil {
+ continue
+ }
//hack to replicate inheritance in composition
_, iok := rewrites[i].(*InsertBeforeOp)
_, aok := rewrites[i].(*InsertAfterOp)
- if !iok && !aok{continue}
+ if !iok && !aok {
+ continue
+ }
iop := rewrites[i]
// combine current insert with prior if any at same index
// deviating a bit from TokenStreamRewriter.java - hard to incorporate inheritance logic
- for j:=0; j= rop.index && iop.GetIndex() <= rop.LastIndex{
- panic("insert op "+iop.String()+" within boundaries of previous "+rop.String())
+ if iop.GetIndex() >= rop.index && iop.GetIndex() <= rop.LastIndex {
+ panic("insert op " + iop.String() + " within boundaries of previous " + rop.String())
}
}
}
}
m := map[int]RewriteOperation{}
- for i:=0; i < len(rewrites); i++{
+ for i := 0; i < len(rewrites); i++ {
op := rewrites[i]
- if op == nil {continue}
- if _, ok := m[op.GetIndex()]; ok{
+ if op == nil {
+ continue
+ }
+ if _, ok := m[op.GetIndex()]; ok {
panic("should only be one op per index")
}
m[op.GetIndex()] = op
@@ -628,22 +639,21 @@ func reduceToSingleOperationPerIndex(rewrites []RewriteOperation) map[int]Rewrit
return m
}
-
/*
Quick fixing Go lack of overloads
- */
+*/
-func max(a,b int)int{
- if a>b{
+func max(a, b int) int {
+ if a > b {
return a
- }else {
+ } else {
return b
}
}
-func min(a,b int)int{
- if a as.threshold {
as.expand()
}
@@ -98,7 +96,7 @@ func (as *array2DHashSet) expand() {
b := as.getBuckets(o)
bucketLength := newBucketLengths[b]
- var newBucket []interface{}
+ var newBucket []Collectable[any]
if bucketLength == 0 {
// new bucket
newBucket = as.createBucket(as.initialBucketCapacity)
@@ -107,7 +105,7 @@ func (as *array2DHashSet) expand() {
newBucket = newTable[b]
if bucketLength == len(newBucket) {
// expand
- newBucketCopy := make([]interface{}, len(newBucket)<<1)
+ newBucketCopy := make([]Collectable[any], len(newBucket)<<1)
copy(newBucketCopy[:bucketLength], newBucket)
newBucket = newBucketCopy
newTable[b] = newBucket
@@ -124,7 +122,7 @@ func (as *array2DHashSet) Len() int {
return as.n
}
-func (as *array2DHashSet) Get(o interface{}) interface{} {
+func (as *array2DHashSet) Get(o Collectable[any]) interface{} {
if o == nil {
return nil
}
@@ -147,7 +145,7 @@ func (as *array2DHashSet) Get(o interface{}) interface{} {
return nil
}
-func (as *array2DHashSet) innerAdd(o interface{}) interface{} {
+func (as *array2DHashSet) innerAdd(o Collectable[any]) interface{} {
b := as.getBuckets(o)
bucket := as.buckets[b]
@@ -178,7 +176,7 @@ func (as *array2DHashSet) innerAdd(o interface{}) interface{} {
// full bucket, expand and add to end
oldLength := len(bucket)
- bucketCopy := make([]interface{}, oldLength<<1)
+ bucketCopy := make([]Collectable[any], oldLength<<1)
copy(bucketCopy[:oldLength], bucket)
bucket = bucketCopy
as.buckets[b] = bucket
@@ -187,22 +185,22 @@ func (as *array2DHashSet) innerAdd(o interface{}) interface{} {
return o
}
-func (as *array2DHashSet) getBuckets(value interface{}) int {
+func (as *array2DHashSet) getBuckets(value Collectable[any]) int {
hash := as.hashcodeFunction(value)
return hash & (len(as.buckets) - 1)
}
-func (as *array2DHashSet) createBuckets(cap int) [][]interface{} {
- return make([][]interface{}, cap)
+func (as *array2DHashSet) createBuckets(cap int) [][]Collectable[any] {
+ return make([][]Collectable[any], cap)
}
-func (as *array2DHashSet) createBucket(cap int) []interface{} {
- return make([]interface{}, cap)
+func (as *array2DHashSet) createBucket(cap int) []Collectable[any] {
+ return make([]Collectable[any], cap)
}
func newArray2DHashSetWithCap(
hashcodeFunction func(interface{}) int,
- equalsFunction func(interface{}, interface{}) bool,
+ equalsFunction func(Collectable[any], Collectable[any]) bool,
initCap int,
initBucketCap int,
) *array2DHashSet {
@@ -231,7 +229,7 @@ func newArray2DHashSetWithCap(
func newArray2DHashSet(
hashcodeFunction func(interface{}) int,
- equalsFunction func(interface{}, interface{}) bool,
+ equalsFunction func(Collectable[any], Collectable[any]) bool,
) *array2DHashSet {
return newArray2DHashSetWithCap(hashcodeFunction, equalsFunction, _initalCapacity, _initalBucketCapacity)
}
diff --git a/vendor/github.com/cenkalti/backoff/v4/.travis.yml b/vendor/github.com/cenkalti/backoff/v4/.travis.yml
deleted file mode 100644
index c79105c2f..000000000
--- a/vendor/github.com/cenkalti/backoff/v4/.travis.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-language: go
-go:
- - 1.13
- - 1.x
- - tip
-before_install:
- - go get github.com/mattn/goveralls
- - go get golang.org/x/tools/cmd/cover
-script:
- - $HOME/gopath/bin/goveralls -service=travis-ci
diff --git a/vendor/github.com/cenkalti/backoff/v4/retry.go b/vendor/github.com/cenkalti/backoff/v4/retry.go
index 1ce2507eb..b9c0c51cd 100644
--- a/vendor/github.com/cenkalti/backoff/v4/retry.go
+++ b/vendor/github.com/cenkalti/backoff/v4/retry.go
@@ -5,10 +5,20 @@ import (
"time"
)
+// An OperationWithData is executing by RetryWithData() or RetryNotifyWithData().
+// The operation will be retried using a backoff policy if it returns an error.
+type OperationWithData[T any] func() (T, error)
+
// An Operation is executing by Retry() or RetryNotify().
// The operation will be retried using a backoff policy if it returns an error.
type Operation func() error
+func (o Operation) withEmptyData() OperationWithData[struct{}] {
+ return func() (struct{}, error) {
+ return struct{}{}, o()
+ }
+}
+
// Notify is a notify-on-error function. It receives an operation error and
// backoff delay if the operation failed (with an error).
//
@@ -28,18 +38,41 @@ func Retry(o Operation, b BackOff) error {
return RetryNotify(o, b, nil)
}
+// RetryWithData is like Retry but returns data in the response too.
+func RetryWithData[T any](o OperationWithData[T], b BackOff) (T, error) {
+ return RetryNotifyWithData(o, b, nil)
+}
+
// RetryNotify calls notify function with the error and wait duration
// for each failed attempt before sleep.
func RetryNotify(operation Operation, b BackOff, notify Notify) error {
return RetryNotifyWithTimer(operation, b, notify, nil)
}
+// RetryNotifyWithData is like RetryNotify but returns data in the response too.
+func RetryNotifyWithData[T any](operation OperationWithData[T], b BackOff, notify Notify) (T, error) {
+ return doRetryNotify(operation, b, notify, nil)
+}
+
// RetryNotifyWithTimer calls notify function with the error and wait duration using the given Timer
// for each failed attempt before sleep.
// A default timer that uses system timer is used when nil is passed.
func RetryNotifyWithTimer(operation Operation, b BackOff, notify Notify, t Timer) error {
- var err error
- var next time.Duration
+ _, err := doRetryNotify(operation.withEmptyData(), b, notify, t)
+ return err
+}
+
+// RetryNotifyWithTimerAndData is like RetryNotifyWithTimer but returns data in the response too.
+func RetryNotifyWithTimerAndData[T any](operation OperationWithData[T], b BackOff, notify Notify, t Timer) (T, error) {
+ return doRetryNotify(operation, b, notify, t)
+}
+
+func doRetryNotify[T any](operation OperationWithData[T], b BackOff, notify Notify, t Timer) (T, error) {
+ var (
+ err error
+ next time.Duration
+ res T
+ )
if t == nil {
t = &defaultTimer{}
}
@@ -52,21 +85,22 @@ func RetryNotifyWithTimer(operation Operation, b BackOff, notify Notify, t Timer
b.Reset()
for {
- if err = operation(); err == nil {
- return nil
+ res, err = operation()
+ if err == nil {
+ return res, nil
}
var permanent *PermanentError
if errors.As(err, &permanent) {
- return permanent.Err
+ return res, permanent.Err
}
if next = b.NextBackOff(); next == Stop {
if cerr := ctx.Err(); cerr != nil {
- return cerr
+ return res, cerr
}
- return err
+ return res, err
}
if notify != nil {
@@ -77,7 +111,7 @@ func RetryNotifyWithTimer(operation Operation, b BackOff, notify Notify, t Timer
select {
case <-ctx.Done():
- return ctx.Err()
+ return res, ctx.Err()
case <-t.C():
}
}
diff --git a/vendor/github.com/coreos/go-semver/semver/semver.go b/vendor/github.com/coreos/go-semver/semver/semver.go
index 76cf4852c..eb9fb7ff2 100644
--- a/vendor/github.com/coreos/go-semver/semver/semver.go
+++ b/vendor/github.com/coreos/go-semver/semver/semver.go
@@ -85,7 +85,7 @@ func (v *Version) Set(version string) error {
return fmt.Errorf("failed to validate metadata: %v", err)
}
- parsed := make([]int64, 3, 3)
+ parsed := make([]int64, 3)
for i, v := range dotParts[:3] {
val, err := strconv.ParseInt(v, 10, 64)
diff --git a/vendor/github.com/coreos/go-systemd/v22/journal/journal_unix.go b/vendor/github.com/coreos/go-systemd/v22/journal/journal_unix.go
index 439ad2874..c5b23a819 100644
--- a/vendor/github.com/coreos/go-systemd/v22/journal/journal_unix.go
+++ b/vendor/github.com/coreos/go-systemd/v22/journal/journal_unix.go
@@ -69,6 +69,58 @@ func Enabled() bool {
return true
}
+// StderrIsJournalStream returns whether the process stderr is connected
+// to the Journal's stream transport.
+//
+// This can be used for automatic protocol upgrading described in [Journal Native Protocol].
+//
+// Returns true if JOURNAL_STREAM environment variable is present,
+// and stderr's device and inode numbers match it.
+//
+// Error is returned if unexpected error occurs: e.g. if JOURNAL_STREAM environment variable
+// is present, but malformed, fstat syscall fails, etc.
+//
+// [Journal Native Protocol]: https://systemd.io/JOURNAL_NATIVE_PROTOCOL/#automatic-protocol-upgrading
+func StderrIsJournalStream() (bool, error) {
+ return fdIsJournalStream(syscall.Stderr)
+}
+
+// StdoutIsJournalStream returns whether the process stdout is connected
+// to the Journal's stream transport.
+//
+// Returns true if JOURNAL_STREAM environment variable is present,
+// and stdout's device and inode numbers match it.
+//
+// Error is returned if unexpected error occurs: e.g. if JOURNAL_STREAM environment variable
+// is present, but malformed, fstat syscall fails, etc.
+//
+// Most users should probably use [StderrIsJournalStream].
+func StdoutIsJournalStream() (bool, error) {
+ return fdIsJournalStream(syscall.Stdout)
+}
+
+func fdIsJournalStream(fd int) (bool, error) {
+ journalStream := os.Getenv("JOURNAL_STREAM")
+ if journalStream == "" {
+ return false, nil
+ }
+
+ var expectedStat syscall.Stat_t
+ _, err := fmt.Sscanf(journalStream, "%d:%d", &expectedStat.Dev, &expectedStat.Ino)
+ if err != nil {
+ return false, fmt.Errorf("failed to parse JOURNAL_STREAM=%q: %v", journalStream, err)
+ }
+
+ var stat syscall.Stat_t
+ err = syscall.Fstat(fd, &stat)
+ if err != nil {
+ return false, err
+ }
+
+ match := stat.Dev == expectedStat.Dev && stat.Ino == expectedStat.Ino
+ return match, nil
+}
+
// Send a message to the local systemd journal. vars is a map of journald
// fields to values. Fields must be composed of uppercase letters, numbers,
// and underscores, but must not start with an underscore. Within these
diff --git a/vendor/github.com/coreos/go-systemd/v22/journal/journal_windows.go b/vendor/github.com/coreos/go-systemd/v22/journal/journal_windows.go
index 677aca68e..322e41e74 100644
--- a/vendor/github.com/coreos/go-systemd/v22/journal/journal_windows.go
+++ b/vendor/github.com/coreos/go-systemd/v22/journal/journal_windows.go
@@ -33,3 +33,11 @@ func Enabled() bool {
func Send(message string, priority Priority, vars map[string]string) error {
return errors.New("could not initialize socket to journald")
}
+
+func StderrIsJournalStream() (bool, error) {
+ return false, nil
+}
+
+func StdoutIsJournalStream() (bool, error) {
+ return false, nil
+}
diff --git a/vendor/github.com/emicklei/go-restful/v3/CHANGES.md b/vendor/github.com/emicklei/go-restful/v3/CHANGES.md
index 02a73ccfd..5edd5a7ca 100644
--- a/vendor/github.com/emicklei/go-restful/v3/CHANGES.md
+++ b/vendor/github.com/emicklei/go-restful/v3/CHANGES.md
@@ -1,6 +1,15 @@
# Change history of go-restful
-## [v3.10.1] - 2022-11-19
+## [v3.11.0] - 2023-08-19
+
+- restored behavior as <= v3.9.0 with option to change path strategy using TrimRightSlashEnabled.
+
+## [v3.10.2] - 2023-03-09 - DO NOT USE
+
+- introduced MergePathStrategy to be able to revert behaviour of path concatenation to 3.9.0
+ see comment in Readme how to customize this behaviour.
+
+## [v3.10.1] - 2022-11-19 - DO NOT USE
- fix broken 3.10.0 by using path package for joining paths
diff --git a/vendor/github.com/emicklei/go-restful/v3/README.md b/vendor/github.com/emicklei/go-restful/v3/README.md
index 0625359dc..e3e30080e 100644
--- a/vendor/github.com/emicklei/go-restful/v3/README.md
+++ b/vendor/github.com/emicklei/go-restful/v3/README.md
@@ -79,7 +79,7 @@ func (u UserResource) findUser(request *restful.Request, response *restful.Respo
- Content encoding (gzip,deflate) of request and response payloads
- Automatic responses on OPTIONS (using a filter)
- Automatic CORS request handling (using a filter)
-- API declaration for Swagger UI ([go-restful-openapi](https://github.com/emicklei/go-restful-openapi), see [go-restful-swagger12](https://github.com/emicklei/go-restful-swagger12))
+- API declaration for Swagger UI ([go-restful-openapi](https://github.com/emicklei/go-restful-openapi))
- Panic recovery to produce HTTP 500, customizable using RecoverHandler(...)
- Route errors produce HTTP 404/405/406/415 errors, customizable using ServiceErrorHandler(...)
- Configurable (trace) logging
@@ -96,6 +96,7 @@ There are several hooks to customize the behavior of the go-restful package.
- Compression
- Encoders for other serializers
- Use [jsoniter](https://github.com/json-iterator/go) by building this package using a build tag, e.g. `go build -tags=jsoniter .`
+- Use the package variable `TrimRightSlashEnabled` (default true) to control the behavior of matching routes that end with a slash `/`
## Resources
@@ -108,4 +109,4 @@ There are several hooks to customize the behavior of the go-restful package.
Type ```git shortlog -s``` for a full list of contributors.
-© 2012 - 2022, http://ernestmicklei.com. MIT License. Contributions are welcome.
+© 2012 - 2023, http://ernestmicklei.com. MIT License. Contributions are welcome.
diff --git a/vendor/github.com/emicklei/go-restful/v3/route.go b/vendor/github.com/emicklei/go-restful/v3/route.go
index ea05b3da8..306c44be7 100644
--- a/vendor/github.com/emicklei/go-restful/v3/route.go
+++ b/vendor/github.com/emicklei/go-restful/v3/route.go
@@ -40,7 +40,8 @@ type Route struct {
ParameterDocs []*Parameter
ResponseErrors map[int]ResponseError
DefaultResponse *ResponseError
- ReadSample, WriteSample interface{} // structs that model an example request or response payload
+ ReadSample, WriteSample interface{} // structs that model an example request or response payload
+ WriteSamples []interface{} // if more than one return types is possible (oneof) then this will contain multiple values
// Extra information used to store custom information about the route.
Metadata map[string]interface{}
@@ -164,7 +165,13 @@ func tokenizePath(path string) []string {
if "/" == path {
return nil
}
- return strings.Split(strings.TrimLeft(path, "/"), "/")
+ if TrimRightSlashEnabled {
+ // 3.9.0
+ return strings.Split(strings.Trim(path, "/"), "/")
+ } else {
+ // 3.10.2
+ return strings.Split(strings.TrimLeft(path, "/"), "/")
+ }
}
// for debugging
@@ -177,4 +184,8 @@ func (r *Route) EnableContentEncoding(enabled bool) {
r.contentEncodingEnabled = &enabled
}
-var TrimRightSlashEnabled = false
+// TrimRightSlashEnabled controls whether
+// - path on route building is using path.Join
+// - the path of the incoming request is trimmed of its slash suffux.
+// Value of true matches the behavior of <= 3.9.0
+var TrimRightSlashEnabled = true
diff --git a/vendor/github.com/emicklei/go-restful/v3/route_builder.go b/vendor/github.com/emicklei/go-restful/v3/route_builder.go
index 830ebf148..75168c12e 100644
--- a/vendor/github.com/emicklei/go-restful/v3/route_builder.go
+++ b/vendor/github.com/emicklei/go-restful/v3/route_builder.go
@@ -31,17 +31,18 @@ type RouteBuilder struct {
typeNameHandleFunc TypeNameHandleFunction // required
// documentation
- doc string
- notes string
- operation string
- readSample, writeSample interface{}
- parameters []*Parameter
- errorMap map[int]ResponseError
- defaultResponse *ResponseError
- metadata map[string]interface{}
- extensions map[string]interface{}
- deprecated bool
- contentEncodingEnabled *bool
+ doc string
+ notes string
+ operation string
+ readSample interface{}
+ writeSamples []interface{}
+ parameters []*Parameter
+ errorMap map[int]ResponseError
+ defaultResponse *ResponseError
+ metadata map[string]interface{}
+ extensions map[string]interface{}
+ deprecated bool
+ contentEncodingEnabled *bool
}
// Do evaluates each argument with the RouteBuilder itself.
@@ -135,9 +136,9 @@ func (b RouteBuilder) ParameterNamed(name string) (p *Parameter) {
return p
}
-// Writes tells what resource type will be written as the response payload. Optional.
-func (b *RouteBuilder) Writes(sample interface{}) *RouteBuilder {
- b.writeSample = sample
+// Writes tells which one of the resource types will be written as the response payload. Optional.
+func (b *RouteBuilder) Writes(samples ...interface{}) *RouteBuilder {
+ b.writeSamples = samples // oneof
return b
}
@@ -342,19 +343,29 @@ func (b *RouteBuilder) Build() Route {
ResponseErrors: b.errorMap,
DefaultResponse: b.defaultResponse,
ReadSample: b.readSample,
- WriteSample: b.writeSample,
+ WriteSamples: b.writeSamples,
Metadata: b.metadata,
Deprecated: b.deprecated,
contentEncodingEnabled: b.contentEncodingEnabled,
allowedMethodsWithoutContentType: b.allowedMethodsWithoutContentType,
}
+ // set WriteSample if one specified
+ if len(b.writeSamples) == 1 {
+ route.WriteSample = b.writeSamples[0]
+ }
route.Extensions = b.extensions
route.postBuild()
return route
}
-func concatPath(path1, path2 string) string {
- return path.Join(path1, path2)
+// merge two paths using the current (package global) merge path strategy.
+func concatPath(rootPath, routePath string) string {
+
+ if TrimRightSlashEnabled {
+ return strings.TrimRight(rootPath, "/") + "/" + strings.TrimLeft(routePath, "/")
+ } else {
+ return path.Join(rootPath, routePath)
+ }
}
var anonymousFuncCount int32
diff --git a/vendor/github.com/evanphx/json-patch/patch.go b/vendor/github.com/evanphx/json-patch/patch.go
index dc2b7e51e..4bce5936d 100644
--- a/vendor/github.com/evanphx/json-patch/patch.go
+++ b/vendor/github.com/evanphx/json-patch/patch.go
@@ -568,29 +568,6 @@ func (p Patch) replace(doc *container, op Operation) error {
return errors.Wrapf(err, "replace operation failed to decode path")
}
- if path == "" {
- val := op.value()
-
- if val.which == eRaw {
- if !val.tryDoc() {
- if !val.tryAry() {
- return errors.Wrapf(err, "replace operation value must be object or array")
- }
- }
- }
-
- switch val.which {
- case eAry:
- *doc = &val.ary
- case eDoc:
- *doc = &val.doc
- case eRaw:
- return errors.Wrapf(err, "replace operation hit impossible case")
- }
-
- return nil
- }
-
con, key := findObject(doc, path)
if con == nil {
@@ -657,25 +634,6 @@ func (p Patch) test(doc *container, op Operation) error {
return errors.Wrapf(err, "test operation failed to decode path")
}
- if path == "" {
- var self lazyNode
-
- switch sv := (*doc).(type) {
- case *partialDoc:
- self.doc = *sv
- self.which = eDoc
- case *partialArray:
- self.ary = *sv
- self.which = eAry
- }
-
- if self.equal(op.value()) {
- return nil
- }
-
- return errors.Wrapf(ErrTestFailed, "testing value %s failed", path)
- }
-
con, key := findObject(doc, path)
if con == nil {
diff --git a/vendor/github.com/evanphx/json-patch/v5/internal/json/decode.go b/vendor/github.com/evanphx/json-patch/v5/internal/json/decode.go
new file mode 100644
index 000000000..e9bb0efe7
--- /dev/null
+++ b/vendor/github.com/evanphx/json-patch/v5/internal/json/decode.go
@@ -0,0 +1,1385 @@
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Represents JSON data structure using native Go types: booleans, floats,
+// strings, arrays, and maps.
+
+package json
+
+import (
+ "encoding"
+ "encoding/base64"
+ "fmt"
+ "reflect"
+ "strconv"
+ "strings"
+ "sync"
+ "unicode"
+ "unicode/utf16"
+ "unicode/utf8"
+)
+
+// Unmarshal parses the JSON-encoded data and stores the result
+// in the value pointed to by v. If v is nil or not a pointer,
+// Unmarshal returns an InvalidUnmarshalError.
+//
+// Unmarshal uses the inverse of the encodings that
+// Marshal uses, allocating maps, slices, and pointers as necessary,
+// with the following additional rules:
+//
+// To unmarshal JSON into a pointer, Unmarshal first handles the case of
+// the JSON being the JSON literal null. In that case, Unmarshal sets
+// the pointer to nil. Otherwise, Unmarshal unmarshals the JSON into
+// the value pointed at by the pointer. If the pointer is nil, Unmarshal
+// allocates a new value for it to point to.
+//
+// To unmarshal JSON into a value implementing the Unmarshaler interface,
+// Unmarshal calls that value's UnmarshalJSON method, including
+// when the input is a JSON null.
+// Otherwise, if the value implements encoding.TextUnmarshaler
+// and the input is a JSON quoted string, Unmarshal calls that value's
+// UnmarshalText method with the unquoted form of the string.
+//
+// To unmarshal JSON into a struct, Unmarshal matches incoming object
+// keys to the keys used by Marshal (either the struct field name or its tag),
+// preferring an exact match but also accepting a case-insensitive match. By
+// default, object keys which don't have a corresponding struct field are
+// ignored (see Decoder.DisallowUnknownFields for an alternative).
+//
+// To unmarshal JSON into an interface value,
+// Unmarshal stores one of these in the interface value:
+//
+// bool, for JSON booleans
+// float64, for JSON numbers
+// string, for JSON strings
+// []interface{}, for JSON arrays
+// map[string]interface{}, for JSON objects
+// nil for JSON null
+//
+// To unmarshal a JSON array into a slice, Unmarshal resets the slice length
+// to zero and then appends each element to the slice.
+// As a special case, to unmarshal an empty JSON array into a slice,
+// Unmarshal replaces the slice with a new empty slice.
+//
+// To unmarshal a JSON array into a Go array, Unmarshal decodes
+// JSON array elements into corresponding Go array elements.
+// If the Go array is smaller than the JSON array,
+// the additional JSON array elements are discarded.
+// If the JSON array is smaller than the Go array,
+// the additional Go array elements are set to zero values.
+//
+// To unmarshal a JSON object into a map, Unmarshal first establishes a map to
+// use. If the map is nil, Unmarshal allocates a new map. Otherwise Unmarshal
+// reuses the existing map, keeping existing entries. Unmarshal then stores
+// key-value pairs from the JSON object into the map. The map's key type must
+// either be any string type, an integer, implement json.Unmarshaler, or
+// implement encoding.TextUnmarshaler.
+//
+// If the JSON-encoded data contain a syntax error, Unmarshal returns a SyntaxError.
+//
+// If a JSON value is not appropriate for a given target type,
+// or if a JSON number overflows the target type, Unmarshal
+// skips that field and completes the unmarshaling as best it can.
+// If no more serious errors are encountered, Unmarshal returns
+// an UnmarshalTypeError describing the earliest such error. In any
+// case, it's not guaranteed that all the remaining fields following
+// the problematic one will be unmarshaled into the target object.
+//
+// The JSON null value unmarshals into an interface, map, pointer, or slice
+// by setting that Go value to nil. Because null is often used in JSON to mean
+// “not present,” unmarshaling a JSON null into any other Go type has no effect
+// on the value and produces no error.
+//
+// When unmarshaling quoted strings, invalid UTF-8 or
+// invalid UTF-16 surrogate pairs are not treated as an error.
+// Instead, they are replaced by the Unicode replacement
+// character U+FFFD.
+func Unmarshal(data []byte, v any) error {
+ // Check for well-formedness.
+ // Avoids filling out half a data structure
+ // before discovering a JSON syntax error.
+ d := ds.Get().(*decodeState)
+ defer ds.Put(d)
+ //var d decodeState
+ d.useNumber = true
+ err := checkValid(data, &d.scan)
+ if err != nil {
+ return err
+ }
+
+ d.init(data)
+ return d.unmarshal(v)
+}
+
+var ds = sync.Pool{
+ New: func() any {
+ return new(decodeState)
+ },
+}
+
+func UnmarshalWithKeys(data []byte, v any) ([]string, error) {
+ // Check for well-formedness.
+ // Avoids filling out half a data structure
+ // before discovering a JSON syntax error.
+
+ d := ds.Get().(*decodeState)
+ defer ds.Put(d)
+ //var d decodeState
+ d.useNumber = true
+ err := checkValid(data, &d.scan)
+ if err != nil {
+ return nil, err
+ }
+
+ d.init(data)
+ err = d.unmarshal(v)
+ if err != nil {
+ return nil, err
+ }
+
+ return d.lastKeys, nil
+}
+
+func UnmarshalValid(data []byte, v any) error {
+ // Check for well-formedness.
+ // Avoids filling out half a data structure
+ // before discovering a JSON syntax error.
+ d := ds.Get().(*decodeState)
+ defer ds.Put(d)
+ //var d decodeState
+ d.useNumber = true
+
+ d.init(data)
+ return d.unmarshal(v)
+}
+
+func UnmarshalValidWithKeys(data []byte, v any) ([]string, error) {
+ // Check for well-formedness.
+ // Avoids filling out half a data structure
+ // before discovering a JSON syntax error.
+
+ d := ds.Get().(*decodeState)
+ defer ds.Put(d)
+ //var d decodeState
+ d.useNumber = true
+
+ d.init(data)
+ err := d.unmarshal(v)
+ if err != nil {
+ return nil, err
+ }
+
+ return d.lastKeys, nil
+}
+
+// Unmarshaler is the interface implemented by types
+// that can unmarshal a JSON description of themselves.
+// The input can be assumed to be a valid encoding of
+// a JSON value. UnmarshalJSON must copy the JSON data
+// if it wishes to retain the data after returning.
+//
+// By convention, to approximate the behavior of Unmarshal itself,
+// Unmarshalers implement UnmarshalJSON([]byte("null")) as a no-op.
+type Unmarshaler interface {
+ UnmarshalJSON([]byte) error
+}
+
+// An UnmarshalTypeError describes a JSON value that was
+// not appropriate for a value of a specific Go type.
+type UnmarshalTypeError struct {
+ Value string // description of JSON value - "bool", "array", "number -5"
+ Type reflect.Type // type of Go value it could not be assigned to
+ Offset int64 // error occurred after reading Offset bytes
+ Struct string // name of the struct type containing the field
+ Field string // the full path from root node to the field
+}
+
+func (e *UnmarshalTypeError) Error() string {
+ if e.Struct != "" || e.Field != "" {
+ return "json: cannot unmarshal " + e.Value + " into Go struct field " + e.Struct + "." + e.Field + " of type " + e.Type.String()
+ }
+ return "json: cannot unmarshal " + e.Value + " into Go value of type " + e.Type.String()
+}
+
+// An UnmarshalFieldError describes a JSON object key that
+// led to an unexported (and therefore unwritable) struct field.
+//
+// Deprecated: No longer used; kept for compatibility.
+type UnmarshalFieldError struct {
+ Key string
+ Type reflect.Type
+ Field reflect.StructField
+}
+
+func (e *UnmarshalFieldError) Error() string {
+ return "json: cannot unmarshal object key " + strconv.Quote(e.Key) + " into unexported field " + e.Field.Name + " of type " + e.Type.String()
+}
+
+// An InvalidUnmarshalError describes an invalid argument passed to Unmarshal.
+// (The argument to Unmarshal must be a non-nil pointer.)
+type InvalidUnmarshalError struct {
+ Type reflect.Type
+}
+
+func (e *InvalidUnmarshalError) Error() string {
+ if e.Type == nil {
+ return "json: Unmarshal(nil)"
+ }
+
+ if e.Type.Kind() != reflect.Pointer {
+ return "json: Unmarshal(non-pointer " + e.Type.String() + ")"
+ }
+ return "json: Unmarshal(nil " + e.Type.String() + ")"
+}
+
+func (d *decodeState) unmarshal(v any) error {
+ rv := reflect.ValueOf(v)
+ if rv.Kind() != reflect.Pointer || rv.IsNil() {
+ return &InvalidUnmarshalError{reflect.TypeOf(v)}
+ }
+
+ d.scan.reset()
+ d.scanWhile(scanSkipSpace)
+ // We decode rv not rv.Elem because the Unmarshaler interface
+ // test must be applied at the top level of the value.
+ err := d.value(rv)
+ if err != nil {
+ return d.addErrorContext(err)
+ }
+ return d.savedError
+}
+
+// A Number represents a JSON number literal.
+type Number string
+
+// String returns the literal text of the number.
+func (n Number) String() string { return string(n) }
+
+// Float64 returns the number as a float64.
+func (n Number) Float64() (float64, error) {
+ return strconv.ParseFloat(string(n), 64)
+}
+
+// Int64 returns the number as an int64.
+func (n Number) Int64() (int64, error) {
+ return strconv.ParseInt(string(n), 10, 64)
+}
+
+// An errorContext provides context for type errors during decoding.
+type errorContext struct {
+ Struct reflect.Type
+ FieldStack []string
+}
+
+// decodeState represents the state while decoding a JSON value.
+type decodeState struct {
+ data []byte
+ off int // next read offset in data
+ opcode int // last read result
+ scan scanner
+ errorContext *errorContext
+ savedError error
+ useNumber bool
+ disallowUnknownFields bool
+ lastKeys []string
+}
+
+// readIndex returns the position of the last byte read.
+func (d *decodeState) readIndex() int {
+ return d.off - 1
+}
+
+// phasePanicMsg is used as a panic message when we end up with something that
+// shouldn't happen. It can indicate a bug in the JSON decoder, or that
+// something is editing the data slice while the decoder executes.
+const phasePanicMsg = "JSON decoder out of sync - data changing underfoot?"
+
+func (d *decodeState) init(data []byte) *decodeState {
+ d.data = data
+ d.off = 0
+ d.savedError = nil
+ if d.errorContext != nil {
+ d.errorContext.Struct = nil
+ // Reuse the allocated space for the FieldStack slice.
+ d.errorContext.FieldStack = d.errorContext.FieldStack[:0]
+ }
+ return d
+}
+
+// saveError saves the first err it is called with,
+// for reporting at the end of the unmarshal.
+func (d *decodeState) saveError(err error) {
+ if d.savedError == nil {
+ d.savedError = d.addErrorContext(err)
+ }
+}
+
+// addErrorContext returns a new error enhanced with information from d.errorContext
+func (d *decodeState) addErrorContext(err error) error {
+ if d.errorContext != nil && (d.errorContext.Struct != nil || len(d.errorContext.FieldStack) > 0) {
+ switch err := err.(type) {
+ case *UnmarshalTypeError:
+ err.Struct = d.errorContext.Struct.Name()
+ err.Field = strings.Join(d.errorContext.FieldStack, ".")
+ }
+ }
+ return err
+}
+
+// skip scans to the end of what was started.
+func (d *decodeState) skip() {
+ s, data, i := &d.scan, d.data, d.off
+ depth := len(s.parseState)
+ for {
+ op := s.step(s, data[i])
+ i++
+ if len(s.parseState) < depth {
+ d.off = i
+ d.opcode = op
+ return
+ }
+ }
+}
+
+// scanNext processes the byte at d.data[d.off].
+func (d *decodeState) scanNext() {
+ if d.off < len(d.data) {
+ d.opcode = d.scan.step(&d.scan, d.data[d.off])
+ d.off++
+ } else {
+ d.opcode = d.scan.eof()
+ d.off = len(d.data) + 1 // mark processed EOF with len+1
+ }
+}
+
+// scanWhile processes bytes in d.data[d.off:] until it
+// receives a scan code not equal to op.
+func (d *decodeState) scanWhile(op int) {
+ s, data, i := &d.scan, d.data, d.off
+ for i < len(data) {
+ newOp := s.step(s, data[i])
+ i++
+ if newOp != op {
+ d.opcode = newOp
+ d.off = i
+ return
+ }
+ }
+
+ d.off = len(data) + 1 // mark processed EOF with len+1
+ d.opcode = d.scan.eof()
+}
+
+// rescanLiteral is similar to scanWhile(scanContinue), but it specialises the
+// common case where we're decoding a literal. The decoder scans the input
+// twice, once for syntax errors and to check the length of the value, and the
+// second to perform the decoding.
+//
+// Only in the second step do we use decodeState to tokenize literals, so we
+// know there aren't any syntax errors. We can take advantage of that knowledge,
+// and scan a literal's bytes much more quickly.
+func (d *decodeState) rescanLiteral() {
+ data, i := d.data, d.off
+Switch:
+ switch data[i-1] {
+ case '"': // string
+ for ; i < len(data); i++ {
+ switch data[i] {
+ case '\\':
+ i++ // escaped char
+ case '"':
+ i++ // tokenize the closing quote too
+ break Switch
+ }
+ }
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-': // number
+ for ; i < len(data); i++ {
+ switch data[i] {
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+ '.', 'e', 'E', '+', '-':
+ default:
+ break Switch
+ }
+ }
+ case 't': // true
+ i += len("rue")
+ case 'f': // false
+ i += len("alse")
+ case 'n': // null
+ i += len("ull")
+ }
+ if i < len(data) {
+ d.opcode = stateEndValue(&d.scan, data[i])
+ } else {
+ d.opcode = scanEnd
+ }
+ d.off = i + 1
+}
+
+// value consumes a JSON value from d.data[d.off-1:], decoding into v, and
+// reads the following byte ahead. If v is invalid, the value is discarded.
+// The first byte of the value has been read already.
+func (d *decodeState) value(v reflect.Value) error {
+ switch d.opcode {
+ default:
+ panic(phasePanicMsg)
+
+ case scanBeginArray:
+ if v.IsValid() {
+ if err := d.array(v); err != nil {
+ return err
+ }
+ } else {
+ d.skip()
+ }
+ d.scanNext()
+
+ case scanBeginObject:
+ if v.IsValid() {
+ if err := d.object(v); err != nil {
+ return err
+ }
+ } else {
+ d.skip()
+ }
+ d.scanNext()
+
+ case scanBeginLiteral:
+ // All bytes inside literal return scanContinue op code.
+ start := d.readIndex()
+ d.rescanLiteral()
+
+ if v.IsValid() {
+ if err := d.literalStore(d.data[start:d.readIndex()], v, false); err != nil {
+ return err
+ }
+ }
+ }
+ return nil
+}
+
+type unquotedValue struct{}
+
+// valueQuoted is like value but decodes a
+// quoted string literal or literal null into an interface value.
+// If it finds anything other than a quoted string literal or null,
+// valueQuoted returns unquotedValue{}.
+func (d *decodeState) valueQuoted() any {
+ switch d.opcode {
+ default:
+ panic(phasePanicMsg)
+
+ case scanBeginArray, scanBeginObject:
+ d.skip()
+ d.scanNext()
+
+ case scanBeginLiteral:
+ v := d.literalInterface()
+ switch v.(type) {
+ case nil, string:
+ return v
+ }
+ }
+ return unquotedValue{}
+}
+
+// indirect walks down v allocating pointers as needed,
+// until it gets to a non-pointer.
+// If it encounters an Unmarshaler, indirect stops and returns that.
+// If decodingNull is true, indirect stops at the first settable pointer so it
+// can be set to nil.
+func indirect(v reflect.Value, decodingNull bool) (Unmarshaler, encoding.TextUnmarshaler, reflect.Value) {
+ // Issue #24153 indicates that it is generally not a guaranteed property
+ // that you may round-trip a reflect.Value by calling Value.Addr().Elem()
+ // and expect the value to still be settable for values derived from
+ // unexported embedded struct fields.
+ //
+ // The logic below effectively does this when it first addresses the value
+ // (to satisfy possible pointer methods) and continues to dereference
+ // subsequent pointers as necessary.
+ //
+ // After the first round-trip, we set v back to the original value to
+ // preserve the original RW flags contained in reflect.Value.
+ v0 := v
+ haveAddr := false
+
+ // If v is a named type and is addressable,
+ // start with its address, so that if the type has pointer methods,
+ // we find them.
+ if v.Kind() != reflect.Pointer && v.Type().Name() != "" && v.CanAddr() {
+ haveAddr = true
+ v = v.Addr()
+ }
+ for {
+ // Load value from interface, but only if the result will be
+ // usefully addressable.
+ if v.Kind() == reflect.Interface && !v.IsNil() {
+ e := v.Elem()
+ if e.Kind() == reflect.Pointer && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Pointer) {
+ haveAddr = false
+ v = e
+ continue
+ }
+ }
+
+ if v.Kind() != reflect.Pointer {
+ break
+ }
+
+ if decodingNull && v.CanSet() {
+ break
+ }
+
+ // Prevent infinite loop if v is an interface pointing to its own address:
+ // var v interface{}
+ // v = &v
+ if v.Elem().Kind() == reflect.Interface && v.Elem().Elem() == v {
+ v = v.Elem()
+ break
+ }
+ if v.IsNil() {
+ v.Set(reflect.New(v.Type().Elem()))
+ }
+ if v.Type().NumMethod() > 0 && v.CanInterface() {
+ if u, ok := v.Interface().(Unmarshaler); ok {
+ return u, nil, reflect.Value{}
+ }
+ if !decodingNull {
+ if u, ok := v.Interface().(encoding.TextUnmarshaler); ok {
+ return nil, u, reflect.Value{}
+ }
+ }
+ }
+
+ if haveAddr {
+ v = v0 // restore original value after round-trip Value.Addr().Elem()
+ haveAddr = false
+ } else {
+ v = v.Elem()
+ }
+ }
+ return nil, nil, v
+}
+
+// array consumes an array from d.data[d.off-1:], decoding into v.
+// The first byte of the array ('[') has been read already.
+func (d *decodeState) array(v reflect.Value) error {
+ // Check for unmarshaler.
+ u, ut, pv := indirect(v, false)
+ if u != nil {
+ start := d.readIndex()
+ d.skip()
+ return u.UnmarshalJSON(d.data[start:d.off])
+ }
+ if ut != nil {
+ d.saveError(&UnmarshalTypeError{Value: "array", Type: v.Type(), Offset: int64(d.off)})
+ d.skip()
+ return nil
+ }
+ v = pv
+
+ // Check type of target.
+ switch v.Kind() {
+ case reflect.Interface:
+ if v.NumMethod() == 0 {
+ // Decoding into nil interface? Switch to non-reflect code.
+ ai := d.arrayInterface()
+ v.Set(reflect.ValueOf(ai))
+ return nil
+ }
+ // Otherwise it's invalid.
+ fallthrough
+ default:
+ d.saveError(&UnmarshalTypeError{Value: "array", Type: v.Type(), Offset: int64(d.off)})
+ d.skip()
+ return nil
+ case reflect.Array, reflect.Slice:
+ break
+ }
+
+ i := 0
+ for {
+ // Look ahead for ] - can only happen on first iteration.
+ d.scanWhile(scanSkipSpace)
+ if d.opcode == scanEndArray {
+ break
+ }
+
+ // Get element of array, growing if necessary.
+ if v.Kind() == reflect.Slice {
+ // Grow slice if necessary
+ if i >= v.Cap() {
+ newcap := v.Cap() + v.Cap()/2
+ if newcap < 4 {
+ newcap = 4
+ }
+ newv := reflect.MakeSlice(v.Type(), v.Len(), newcap)
+ reflect.Copy(newv, v)
+ v.Set(newv)
+ }
+ if i >= v.Len() {
+ v.SetLen(i + 1)
+ }
+ }
+
+ if i < v.Len() {
+ // Decode into element.
+ if err := d.value(v.Index(i)); err != nil {
+ return err
+ }
+ } else {
+ // Ran out of fixed array: skip.
+ if err := d.value(reflect.Value{}); err != nil {
+ return err
+ }
+ }
+ i++
+
+ // Next token must be , or ].
+ if d.opcode == scanSkipSpace {
+ d.scanWhile(scanSkipSpace)
+ }
+ if d.opcode == scanEndArray {
+ break
+ }
+ if d.opcode != scanArrayValue {
+ panic(phasePanicMsg)
+ }
+ }
+
+ if i < v.Len() {
+ if v.Kind() == reflect.Array {
+ // Array. Zero the rest.
+ z := reflect.Zero(v.Type().Elem())
+ for ; i < v.Len(); i++ {
+ v.Index(i).Set(z)
+ }
+ } else {
+ v.SetLen(i)
+ }
+ }
+ if i == 0 && v.Kind() == reflect.Slice {
+ v.Set(reflect.MakeSlice(v.Type(), 0, 0))
+ }
+ return nil
+}
+
+var nullLiteral = []byte("null")
+var textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem()
+
+// object consumes an object from d.data[d.off-1:], decoding into v.
+// The first byte ('{') of the object has been read already.
+func (d *decodeState) object(v reflect.Value) error {
+ // Check for unmarshaler.
+ u, ut, pv := indirect(v, false)
+ if u != nil {
+ start := d.readIndex()
+ d.skip()
+ return u.UnmarshalJSON(d.data[start:d.off])
+ }
+ if ut != nil {
+ d.saveError(&UnmarshalTypeError{Value: "object", Type: v.Type(), Offset: int64(d.off)})
+ d.skip()
+ return nil
+ }
+ v = pv
+ t := v.Type()
+
+ // Decoding into nil interface? Switch to non-reflect code.
+ if v.Kind() == reflect.Interface && v.NumMethod() == 0 {
+ oi := d.objectInterface()
+ v.Set(reflect.ValueOf(oi))
+ return nil
+ }
+
+ var fields structFields
+
+ // Check type of target:
+ // struct or
+ // map[T1]T2 where T1 is string, an integer type,
+ // or an encoding.TextUnmarshaler
+ switch v.Kind() {
+ case reflect.Map:
+ // Map key must either have string kind, have an integer kind,
+ // or be an encoding.TextUnmarshaler.
+ switch t.Key().Kind() {
+ case reflect.String,
+ reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
+ reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+ default:
+ if !reflect.PointerTo(t.Key()).Implements(textUnmarshalerType) {
+ d.saveError(&UnmarshalTypeError{Value: "object", Type: t, Offset: int64(d.off)})
+ d.skip()
+ return nil
+ }
+ }
+ if v.IsNil() {
+ v.Set(reflect.MakeMap(t))
+ }
+ case reflect.Struct:
+ fields = cachedTypeFields(t)
+ // ok
+ default:
+ d.saveError(&UnmarshalTypeError{Value: "object", Type: t, Offset: int64(d.off)})
+ d.skip()
+ return nil
+ }
+
+ var mapElem reflect.Value
+ var origErrorContext errorContext
+ if d.errorContext != nil {
+ origErrorContext = *d.errorContext
+ }
+
+ var keys []string
+
+ for {
+ // Read opening " of string key or closing }.
+ d.scanWhile(scanSkipSpace)
+ if d.opcode == scanEndObject {
+ // closing } - can only happen on first iteration.
+ break
+ }
+ if d.opcode != scanBeginLiteral {
+ panic(phasePanicMsg)
+ }
+
+ // Read key.
+ start := d.readIndex()
+ d.rescanLiteral()
+ item := d.data[start:d.readIndex()]
+ key, ok := unquoteBytes(item)
+ if !ok {
+ panic(phasePanicMsg)
+ }
+
+ keys = append(keys, string(key))
+
+ // Figure out field corresponding to key.
+ var subv reflect.Value
+ destring := false // whether the value is wrapped in a string to be decoded first
+
+ if v.Kind() == reflect.Map {
+ elemType := t.Elem()
+ if !mapElem.IsValid() {
+ mapElem = reflect.New(elemType).Elem()
+ } else {
+ mapElem.Set(reflect.Zero(elemType))
+ }
+ subv = mapElem
+ } else {
+ var f *field
+ if i, ok := fields.nameIndex[string(key)]; ok {
+ // Found an exact name match.
+ f = &fields.list[i]
+ } else {
+ // Fall back to the expensive case-insensitive
+ // linear search.
+ for i := range fields.list {
+ ff := &fields.list[i]
+ if ff.equalFold(ff.nameBytes, key) {
+ f = ff
+ break
+ }
+ }
+ }
+ if f != nil {
+ subv = v
+ destring = f.quoted
+ for _, i := range f.index {
+ if subv.Kind() == reflect.Pointer {
+ if subv.IsNil() {
+ // If a struct embeds a pointer to an unexported type,
+ // it is not possible to set a newly allocated value
+ // since the field is unexported.
+ //
+ // See https://golang.org/issue/21357
+ if !subv.CanSet() {
+ d.saveError(fmt.Errorf("json: cannot set embedded pointer to unexported struct: %v", subv.Type().Elem()))
+ // Invalidate subv to ensure d.value(subv) skips over
+ // the JSON value without assigning it to subv.
+ subv = reflect.Value{}
+ destring = false
+ break
+ }
+ subv.Set(reflect.New(subv.Type().Elem()))
+ }
+ subv = subv.Elem()
+ }
+ subv = subv.Field(i)
+ }
+ if d.errorContext == nil {
+ d.errorContext = new(errorContext)
+ }
+ d.errorContext.FieldStack = append(d.errorContext.FieldStack, f.name)
+ d.errorContext.Struct = t
+ } else if d.disallowUnknownFields {
+ d.saveError(fmt.Errorf("json: unknown field %q", key))
+ }
+ }
+
+ // Read : before value.
+ if d.opcode == scanSkipSpace {
+ d.scanWhile(scanSkipSpace)
+ }
+ if d.opcode != scanObjectKey {
+ panic(phasePanicMsg)
+ }
+ d.scanWhile(scanSkipSpace)
+
+ if destring {
+ switch qv := d.valueQuoted().(type) {
+ case nil:
+ if err := d.literalStore(nullLiteral, subv, false); err != nil {
+ return err
+ }
+ case string:
+ if err := d.literalStore([]byte(qv), subv, true); err != nil {
+ return err
+ }
+ default:
+ d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v", subv.Type()))
+ }
+ } else {
+ if err := d.value(subv); err != nil {
+ return err
+ }
+ }
+
+ // Write value back to map;
+ // if using struct, subv points into struct already.
+ if v.Kind() == reflect.Map {
+ kt := t.Key()
+ var kv reflect.Value
+ switch {
+ case reflect.PointerTo(kt).Implements(textUnmarshalerType):
+ kv = reflect.New(kt)
+ if err := d.literalStore(item, kv, true); err != nil {
+ return err
+ }
+ kv = kv.Elem()
+ case kt.Kind() == reflect.String:
+ kv = reflect.ValueOf(key).Convert(kt)
+ default:
+ switch kt.Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ s := string(key)
+ n, err := strconv.ParseInt(s, 10, 64)
+ if err != nil || reflect.Zero(kt).OverflowInt(n) {
+ d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: kt, Offset: int64(start + 1)})
+ break
+ }
+ kv = reflect.ValueOf(n).Convert(kt)
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+ s := string(key)
+ n, err := strconv.ParseUint(s, 10, 64)
+ if err != nil || reflect.Zero(kt).OverflowUint(n) {
+ d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: kt, Offset: int64(start + 1)})
+ break
+ }
+ kv = reflect.ValueOf(n).Convert(kt)
+ default:
+ panic("json: Unexpected key type") // should never occur
+ }
+ }
+ if kv.IsValid() {
+ v.SetMapIndex(kv, subv)
+ }
+ }
+
+ // Next token must be , or }.
+ if d.opcode == scanSkipSpace {
+ d.scanWhile(scanSkipSpace)
+ }
+ if d.errorContext != nil {
+ // Reset errorContext to its original state.
+ // Keep the same underlying array for FieldStack, to reuse the
+ // space and avoid unnecessary allocs.
+ d.errorContext.FieldStack = d.errorContext.FieldStack[:len(origErrorContext.FieldStack)]
+ d.errorContext.Struct = origErrorContext.Struct
+ }
+ if d.opcode == scanEndObject {
+ break
+ }
+ if d.opcode != scanObjectValue {
+ panic(phasePanicMsg)
+ }
+ }
+
+ if v.Kind() == reflect.Map {
+ d.lastKeys = keys
+ }
+ return nil
+}
+
+// convertNumber converts the number literal s to a float64 or a Number
+// depending on the setting of d.useNumber.
+func (d *decodeState) convertNumber(s string) (any, error) {
+ if d.useNumber {
+ return Number(s), nil
+ }
+ f, err := strconv.ParseFloat(s, 64)
+ if err != nil {
+ return nil, &UnmarshalTypeError{Value: "number " + s, Type: reflect.TypeOf(0.0), Offset: int64(d.off)}
+ }
+ return f, nil
+}
+
+var numberType = reflect.TypeOf(Number(""))
+
+// literalStore decodes a literal stored in item into v.
+//
+// fromQuoted indicates whether this literal came from unwrapping a
+// string from the ",string" struct tag option. this is used only to
+// produce more helpful error messages.
+func (d *decodeState) literalStore(item []byte, v reflect.Value, fromQuoted bool) error {
+ // Check for unmarshaler.
+ if len(item) == 0 {
+ //Empty string given
+ d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
+ return nil
+ }
+ isNull := item[0] == 'n' // null
+ u, ut, pv := indirect(v, isNull)
+ if u != nil {
+ return u.UnmarshalJSON(item)
+ }
+ if ut != nil {
+ if item[0] != '"' {
+ if fromQuoted {
+ d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
+ return nil
+ }
+ val := "number"
+ switch item[0] {
+ case 'n':
+ val = "null"
+ case 't', 'f':
+ val = "bool"
+ }
+ d.saveError(&UnmarshalTypeError{Value: val, Type: v.Type(), Offset: int64(d.readIndex())})
+ return nil
+ }
+ s, ok := unquoteBytes(item)
+ if !ok {
+ if fromQuoted {
+ return fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())
+ }
+ panic(phasePanicMsg)
+ }
+ return ut.UnmarshalText(s)
+ }
+
+ v = pv
+
+ switch c := item[0]; c {
+ case 'n': // null
+ // The main parser checks that only true and false can reach here,
+ // but if this was a quoted string input, it could be anything.
+ if fromQuoted && string(item) != "null" {
+ d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
+ break
+ }
+ switch v.Kind() {
+ case reflect.Interface, reflect.Pointer, reflect.Map, reflect.Slice:
+ v.Set(reflect.Zero(v.Type()))
+ // otherwise, ignore null for primitives/string
+ }
+ case 't', 'f': // true, false
+ value := item[0] == 't'
+ // The main parser checks that only true and false can reach here,
+ // but if this was a quoted string input, it could be anything.
+ if fromQuoted && string(item) != "true" && string(item) != "false" {
+ d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
+ break
+ }
+ switch v.Kind() {
+ default:
+ if fromQuoted {
+ d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
+ } else {
+ d.saveError(&UnmarshalTypeError{Value: "bool", Type: v.Type(), Offset: int64(d.readIndex())})
+ }
+ case reflect.Bool:
+ v.SetBool(value)
+ case reflect.Interface:
+ if v.NumMethod() == 0 {
+ v.Set(reflect.ValueOf(value))
+ } else {
+ d.saveError(&UnmarshalTypeError{Value: "bool", Type: v.Type(), Offset: int64(d.readIndex())})
+ }
+ }
+
+ case '"': // string
+ s, ok := unquoteBytes(item)
+ if !ok {
+ if fromQuoted {
+ return fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())
+ }
+ panic(phasePanicMsg)
+ }
+ switch v.Kind() {
+ default:
+ d.saveError(&UnmarshalTypeError{Value: "string", Type: v.Type(), Offset: int64(d.readIndex())})
+ case reflect.Slice:
+ if v.Type().Elem().Kind() != reflect.Uint8 {
+ d.saveError(&UnmarshalTypeError{Value: "string", Type: v.Type(), Offset: int64(d.readIndex())})
+ break
+ }
+ b := make([]byte, base64.StdEncoding.DecodedLen(len(s)))
+ n, err := base64.StdEncoding.Decode(b, s)
+ if err != nil {
+ d.saveError(err)
+ break
+ }
+ v.SetBytes(b[:n])
+ case reflect.String:
+ if v.Type() == numberType && !isValidNumber(string(s)) {
+ return fmt.Errorf("json: invalid number literal, trying to unmarshal %q into Number", item)
+ }
+ v.SetString(string(s))
+ case reflect.Interface:
+ if v.NumMethod() == 0 {
+ v.Set(reflect.ValueOf(string(s)))
+ } else {
+ d.saveError(&UnmarshalTypeError{Value: "string", Type: v.Type(), Offset: int64(d.readIndex())})
+ }
+ }
+
+ default: // number
+ if c != '-' && (c < '0' || c > '9') {
+ if fromQuoted {
+ return fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())
+ }
+ panic(phasePanicMsg)
+ }
+ s := string(item)
+ switch v.Kind() {
+ default:
+ if v.Kind() == reflect.String && v.Type() == numberType {
+ // s must be a valid number, because it's
+ // already been tokenized.
+ v.SetString(s)
+ break
+ }
+ if fromQuoted {
+ return fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())
+ }
+ d.saveError(&UnmarshalTypeError{Value: "number", Type: v.Type(), Offset: int64(d.readIndex())})
+ case reflect.Interface:
+ n, err := d.convertNumber(s)
+ if err != nil {
+ d.saveError(err)
+ break
+ }
+ if v.NumMethod() != 0 {
+ d.saveError(&UnmarshalTypeError{Value: "number", Type: v.Type(), Offset: int64(d.readIndex())})
+ break
+ }
+ v.Set(reflect.ValueOf(n))
+
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ n, err := strconv.ParseInt(s, 10, 64)
+ if err != nil || v.OverflowInt(n) {
+ d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: v.Type(), Offset: int64(d.readIndex())})
+ break
+ }
+ v.SetInt(n)
+
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+ n, err := strconv.ParseUint(s, 10, 64)
+ if err != nil || v.OverflowUint(n) {
+ d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: v.Type(), Offset: int64(d.readIndex())})
+ break
+ }
+ v.SetUint(n)
+
+ case reflect.Float32, reflect.Float64:
+ n, err := strconv.ParseFloat(s, v.Type().Bits())
+ if err != nil || v.OverflowFloat(n) {
+ d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: v.Type(), Offset: int64(d.readIndex())})
+ break
+ }
+ v.SetFloat(n)
+ }
+ }
+ return nil
+}
+
+// The xxxInterface routines build up a value to be stored
+// in an empty interface. They are not strictly necessary,
+// but they avoid the weight of reflection in this common case.
+
+// valueInterface is like value but returns interface{}
+func (d *decodeState) valueInterface() (val any) {
+ switch d.opcode {
+ default:
+ panic(phasePanicMsg)
+ case scanBeginArray:
+ val = d.arrayInterface()
+ d.scanNext()
+ case scanBeginObject:
+ val = d.objectInterface()
+ d.scanNext()
+ case scanBeginLiteral:
+ val = d.literalInterface()
+ }
+ return
+}
+
+// arrayInterface is like array but returns []interface{}.
+func (d *decodeState) arrayInterface() []any {
+ var v = make([]any, 0)
+ for {
+ // Look ahead for ] - can only happen on first iteration.
+ d.scanWhile(scanSkipSpace)
+ if d.opcode == scanEndArray {
+ break
+ }
+
+ v = append(v, d.valueInterface())
+
+ // Next token must be , or ].
+ if d.opcode == scanSkipSpace {
+ d.scanWhile(scanSkipSpace)
+ }
+ if d.opcode == scanEndArray {
+ break
+ }
+ if d.opcode != scanArrayValue {
+ panic(phasePanicMsg)
+ }
+ }
+ return v
+}
+
+// objectInterface is like object but returns map[string]interface{}.
+func (d *decodeState) objectInterface() map[string]any {
+ m := make(map[string]any)
+ for {
+ // Read opening " of string key or closing }.
+ d.scanWhile(scanSkipSpace)
+ if d.opcode == scanEndObject {
+ // closing } - can only happen on first iteration.
+ break
+ }
+ if d.opcode != scanBeginLiteral {
+ panic(phasePanicMsg)
+ }
+
+ // Read string key.
+ start := d.readIndex()
+ d.rescanLiteral()
+ item := d.data[start:d.readIndex()]
+ key, ok := unquote(item)
+ if !ok {
+ panic(phasePanicMsg)
+ }
+
+ // Read : before value.
+ if d.opcode == scanSkipSpace {
+ d.scanWhile(scanSkipSpace)
+ }
+ if d.opcode != scanObjectKey {
+ panic(phasePanicMsg)
+ }
+ d.scanWhile(scanSkipSpace)
+
+ // Read value.
+ m[key] = d.valueInterface()
+
+ // Next token must be , or }.
+ if d.opcode == scanSkipSpace {
+ d.scanWhile(scanSkipSpace)
+ }
+ if d.opcode == scanEndObject {
+ break
+ }
+ if d.opcode != scanObjectValue {
+ panic(phasePanicMsg)
+ }
+ }
+ return m
+}
+
+// literalInterface consumes and returns a literal from d.data[d.off-1:] and
+// it reads the following byte ahead. The first byte of the literal has been
+// read already (that's how the caller knows it's a literal).
+func (d *decodeState) literalInterface() any {
+ // All bytes inside literal return scanContinue op code.
+ start := d.readIndex()
+ d.rescanLiteral()
+
+ item := d.data[start:d.readIndex()]
+
+ switch c := item[0]; c {
+ case 'n': // null
+ return nil
+
+ case 't', 'f': // true, false
+ return c == 't'
+
+ case '"': // string
+ s, ok := unquote(item)
+ if !ok {
+ panic(phasePanicMsg)
+ }
+ return s
+
+ default: // number
+ if c != '-' && (c < '0' || c > '9') {
+ panic(phasePanicMsg)
+ }
+ n, err := d.convertNumber(string(item))
+ if err != nil {
+ d.saveError(err)
+ }
+ return n
+ }
+}
+
+// getu4 decodes \uXXXX from the beginning of s, returning the hex value,
+// or it returns -1.
+func getu4(s []byte) rune {
+ if len(s) < 6 || s[0] != '\\' || s[1] != 'u' {
+ return -1
+ }
+ var r rune
+ for _, c := range s[2:6] {
+ switch {
+ case '0' <= c && c <= '9':
+ c = c - '0'
+ case 'a' <= c && c <= 'f':
+ c = c - 'a' + 10
+ case 'A' <= c && c <= 'F':
+ c = c - 'A' + 10
+ default:
+ return -1
+ }
+ r = r*16 + rune(c)
+ }
+ return r
+}
+
+// unquote converts a quoted JSON string literal s into an actual string t.
+// The rules are different than for Go, so cannot use strconv.Unquote.
+func unquote(s []byte) (t string, ok bool) {
+ s, ok = unquoteBytes(s)
+ t = string(s)
+ return
+}
+
+func unquoteBytes(s []byte) (t []byte, ok bool) {
+ if len(s) < 2 || s[0] != '"' || s[len(s)-1] != '"' {
+ return
+ }
+ s = s[1 : len(s)-1]
+
+ // Check for unusual characters. If there are none,
+ // then no unquoting is needed, so return a slice of the
+ // original bytes.
+ r := 0
+ for r < len(s) {
+ c := s[r]
+ if c == '\\' || c == '"' || c < ' ' {
+ break
+ }
+ if c < utf8.RuneSelf {
+ r++
+ continue
+ }
+ rr, size := utf8.DecodeRune(s[r:])
+ if rr == utf8.RuneError && size == 1 {
+ break
+ }
+ r += size
+ }
+ if r == len(s) {
+ return s, true
+ }
+
+ b := make([]byte, len(s)+2*utf8.UTFMax)
+ w := copy(b, s[0:r])
+ for r < len(s) {
+ // Out of room? Can only happen if s is full of
+ // malformed UTF-8 and we're replacing each
+ // byte with RuneError.
+ if w >= len(b)-2*utf8.UTFMax {
+ nb := make([]byte, (len(b)+utf8.UTFMax)*2)
+ copy(nb, b[0:w])
+ b = nb
+ }
+ switch c := s[r]; {
+ case c == '\\':
+ r++
+ if r >= len(s) {
+ return
+ }
+ switch s[r] {
+ default:
+ return
+ case '"', '\\', '/', '\'':
+ b[w] = s[r]
+ r++
+ w++
+ case 'b':
+ b[w] = '\b'
+ r++
+ w++
+ case 'f':
+ b[w] = '\f'
+ r++
+ w++
+ case 'n':
+ b[w] = '\n'
+ r++
+ w++
+ case 'r':
+ b[w] = '\r'
+ r++
+ w++
+ case 't':
+ b[w] = '\t'
+ r++
+ w++
+ case 'u':
+ r--
+ rr := getu4(s[r:])
+ if rr < 0 {
+ return
+ }
+ r += 6
+ if utf16.IsSurrogate(rr) {
+ rr1 := getu4(s[r:])
+ if dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar {
+ // A valid pair; consume.
+ r += 6
+ w += utf8.EncodeRune(b[w:], dec)
+ break
+ }
+ // Invalid surrogate; fall back to replacement rune.
+ rr = unicode.ReplacementChar
+ }
+ w += utf8.EncodeRune(b[w:], rr)
+ }
+
+ // Quote, control characters are invalid.
+ case c == '"', c < ' ':
+ return
+
+ // ASCII
+ case c < utf8.RuneSelf:
+ b[w] = c
+ r++
+ w++
+
+ // Coerce to well-formed UTF-8.
+ default:
+ rr, size := utf8.DecodeRune(s[r:])
+ r += size
+ w += utf8.EncodeRune(b[w:], rr)
+ }
+ }
+ return b[0:w], true
+}
diff --git a/vendor/github.com/evanphx/json-patch/v5/internal/json/encode.go b/vendor/github.com/evanphx/json-patch/v5/internal/json/encode.go
new file mode 100644
index 000000000..2e6eca448
--- /dev/null
+++ b/vendor/github.com/evanphx/json-patch/v5/internal/json/encode.go
@@ -0,0 +1,1486 @@
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package json implements encoding and decoding of JSON as defined in
+// RFC 7159. The mapping between JSON and Go values is described
+// in the documentation for the Marshal and Unmarshal functions.
+//
+// See "JSON and Go" for an introduction to this package:
+// https://golang.org/doc/articles/json_and_go.html
+package json
+
+import (
+ "bytes"
+ "encoding"
+ "encoding/base64"
+ "fmt"
+ "math"
+ "reflect"
+ "sort"
+ "strconv"
+ "strings"
+ "sync"
+ "unicode"
+ "unicode/utf8"
+)
+
+// Marshal returns the JSON encoding of v.
+//
+// Marshal traverses the value v recursively.
+// If an encountered value implements the Marshaler interface
+// and is not a nil pointer, Marshal calls its MarshalJSON method
+// to produce JSON. If no MarshalJSON method is present but the
+// value implements encoding.TextMarshaler instead, Marshal calls
+// its MarshalText method and encodes the result as a JSON string.
+// The nil pointer exception is not strictly necessary
+// but mimics a similar, necessary exception in the behavior of
+// UnmarshalJSON.
+//
+// Otherwise, Marshal uses the following type-dependent default encodings:
+//
+// Boolean values encode as JSON booleans.
+//
+// Floating point, integer, and Number values encode as JSON numbers.
+//
+// String values encode as JSON strings coerced to valid UTF-8,
+// replacing invalid bytes with the Unicode replacement rune.
+// So that the JSON will be safe to embed inside HTML