Skip to content

Commit bec6499

Browse files
authored
chore: upgrade go and add agents docs (#378)
docs: add AGENTS.md and CLAUDE.md documentation files
1 parent 4e56536 commit bec6499

File tree

7 files changed

+186
-61
lines changed

7 files changed

+186
-61
lines changed

AGENTS.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Repository Guidelines
2+
3+
## Project Structure & Module Organization
4+
- `api/` CRD types (e.g., `v1alpha1`), generated code via controller-tools.
5+
- `controllers/` reconcilers and test suite (`suite_test.go`). Files follow `<resource>_controller.go`.
6+
- `pkg/` shared libraries and utilities.
7+
- `config/` Kustomize manifests, CRDs in `config/crd/bases`.
8+
- `charts/` Helm chart; sync CRDs with `make copy-crds`.
9+
- `tests/` integration/E2E (Ginkgo/Gomega) against a cluster.
10+
- `scripts/` lint/format helpers; `bin/` tool cache.
11+
12+
## Build, Test, and Development Commands
13+
- `make help` list targets.
14+
- `make build` compile manager to `bin/manager`.
15+
- `make run` run controller locally.
16+
- `make test` run unit/integration tests with envtest; writes `cover.out`.
17+
- `make manifests` and `make generate` regenerate CRDs and deepcopy code.
18+
- `make install`/`make uninstall` apply/remove CRDs from current kubeconfig.
19+
- `make deploy IMG=...` deploy to cluster; `make undeploy` remove.
20+
- `make docker-build IMG=...` and `make docker-push` build/push images.
21+
- `make copy-crds` sync CRDs into the Helm chart.
22+
23+
## Coding Style & Naming Conventions
24+
- Go 1.24+. Format with `make fmt`; imports via `goimports`.
25+
- Lint with `./scripts/lint.sh ./...` (golangci-lint). Fix license headers with `make license-fix`.
26+
- Use canonical aliases: `corev1`, `metav1`, `apierrors`, `ctrl` (see `.golangci.yml importas`).
27+
- Package and file names are lowercase; tests end with `_test.go`.
28+
29+
## Testing Guidelines
30+
- Frameworks: Ginkgo v2 + Gomega; controller-runtime envtest.
31+
- Run all tests with `make test`. Integration tests live under `tests/operator/` and expect a reachable Pulsar cluster; set `NAMESPACE`, `BROKER_NAME`, `PROXY_URL` as needed.
32+
- Keep tests deterministic and fast; prefer envtest for controller logic.
33+
34+
## Commit & Pull Request Guidelines
35+
- Conventional Commits for titles/messages (e.g., `feat(controller): add topic policy`, `fix(api): correct validation`).
36+
- Install hooks with `make husky`; pre-commit runs license, lint, gofmt, and govet.
37+
- PRs should: describe motivation, link issues, include test updates, and update `docs/` or `charts/` when user-visible.
38+
39+
## Security & Configuration Tips
40+
- Never commit secrets. Pass tokens via env (e.g., `ACCESS_TOKEN` for image builds).
41+
- After API changes, run `make manifests generate` and then `make copy-crds`.
42+
43+
## Agent-Specific Notes
44+
- Keep changes scoped; do not modify generated files manually. Regenerate with the Make targets above.

CLAUDE.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
Pulsar Resources Operator is a Kubernetes operator that manages Apache Pulsar resources (tenants, namespaces, topics, permissions, functions, sinks, sources, etc.) using Custom Resource Definitions. Built with the Operator SDK and controller-runtime framework.
8+
9+
## Common Commands
10+
11+
### Build and Run
12+
```bash
13+
make build # Build manager binary
14+
make run # Run controller locally (requires CRDs installed)
15+
go run . # Alternative: run operator locally
16+
```
17+
18+
### Code Generation
19+
```bash
20+
make generate # Generate DeepCopy methods for API types
21+
make generate-internal # Generate internal types and client code
22+
make manifests # Generate CRDs, RBAC, and webhook configurations
23+
```
24+
25+
### Testing
26+
```bash
27+
make test # Run all tests with coverage
28+
29+
# Run single test
30+
go test -v ./pkg/connection -run TestReconcileTenant
31+
32+
# E2E tests (separate module in tests/)
33+
cd tests && ginkgo --trace --progress ./operator
34+
35+
# Run E2E tests against external Pulsar cluster
36+
export ADMIN_SERVICE_URL=http://localhost:80
37+
export NAMESPACE=pulsar
38+
cd tests && ginkgo --trace --progress ./operator
39+
```
40+
41+
### Linting and Formatting
42+
```bash
43+
make fmt # Run go fmt
44+
make vet # Run go vet
45+
make license-check # Check license headers
46+
make license-fix # Fix license headers
47+
```
48+
49+
### Deployment
50+
```bash
51+
make install # Install CRDs to cluster
52+
make uninstall # Remove CRDs from cluster
53+
make deploy IMG=<image> # Deploy operator to cluster
54+
make undeploy # Remove operator from cluster
55+
```
56+
57+
### Helm Chart
58+
```bash
59+
make copy-crds # Sync CRDs to charts/pulsar-resources-operator/crds
60+
```
61+
62+
## Architecture
63+
64+
### Entry Point and Controller Setup
65+
- `main.go` - Initializes the controller manager and registers all reconcilers
66+
67+
### API Types (`api/v1alpha1/`)
68+
Custom Resource types organized by domain:
69+
- **Pulsar Resources**: `PulsarConnection`, `PulsarTenant`, `PulsarNamespace`, `PulsarTopic`, `PulsarPermission`, `PulsarFunction`, `PulsarSink`, `PulsarSource`, `PulsarPackage`, `PulsarGeoReplication`, `PulsarNSIsolationPolicy`
70+
- **StreamNative Cloud**: `StreamNativeCloudConnection`, `ComputeWorkspace`, `ComputeFlinkDeployment`, `Secret`, `APIKey`, `ServiceAccount`, `ServiceAccountBinding`, `RoleBinding`
71+
72+
### Controllers (`controllers/`)
73+
Two controller patterns:
74+
1. **PulsarConnectionReconciler** - Central controller that manages Pulsar resources by watching `PulsarConnection` and all related resource types. Triggers reconciliation when any dependent resource changes.
75+
2. **StreamNative Cloud Controllers** - Individual controllers for cloud resources (`APIServerConnectionReconciler`, `WorkspaceReconciler`, `FlinkDeploymentReconciler`, etc.) that share a `ConnectionManager` for API connectivity.
76+
77+
### Core Packages (`pkg/`)
78+
- `connection/` - Pulsar resource reconciliation logic with sub-reconcilers for each resource type (tenant, namespace, topic, permission, etc.)
79+
- `admin/` - Pulsar Admin API client wrapper
80+
- `streamnativecloud/` - StreamNative Cloud API clients and converters
81+
- `reconciler/` - Generic reconciler interface; `StatefulReconciler` provides annotation-based change detection using `SecretKeyHash` annotations
82+
- `utils/` - Retry logic, event source, and helper utilities
83+
- `feature/` - Feature gate management
84+
85+
### Reconciliation Pattern
86+
The operator uses a hierarchical reconciliation pattern:
87+
1. `PulsarConnection` serves as the parent resource linking to a Pulsar cluster
88+
2. Child resources (tenants, namespaces, topics) reference a connection via `spec.connectionRef` with an indexed field (`spec.connectionRef.name`) for efficient lookup
89+
3. When any child resource changes, it triggers the parent connection's reconciliation
90+
4. The connection reconciler iterates through all associated resources and reconciles them in dependency order
91+
92+
**Reconciliation order (creation):** GeoReplication → Tenants → Namespaces → Topics → Permissions → Packages → Functions → Sinks → Sources → NSIsolationPolicies
93+
*(Deletion uses reverse order)*
94+
95+
### Lifecycle Policy
96+
Resources support `PulsarResourceLifeCyclePolicy`:
97+
- `CleanUpAfterDeletion` (default) - Delete Pulsar resource when K8s CR is deleted
98+
- `KeepAfterDeletion` - Preserve Pulsar resource after K8s CR deletion
99+
100+
## Conventions
101+
102+
- Follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for PR titles
103+
- All source files require Apache 2.0 license headers (use `make license-fix`)
104+
- Filenames: lowercase with underscores for Go files, dashes for documentation
105+
- Package names: avoid redundancy, match directory name

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/streamnative/pulsar-resources-operator
22

3-
go 1.24.11
3+
go 1.24.12
44

55
require (
66
github.com/apache/pulsar-client-go v0.18.0-candidate-1.0.20260129140028-203dcf1cd22d

go.work

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
go 1.24.11
2-
3-
toolchain go1.24.11
1+
go 1.24.12
42

53
use (
64
.

go.work.sum

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3107,6 +3107,8 @@ gioui.org v0.0.0-20210308172011-57750fc8a0a6 h1:K72hopUosKG3ntOPNG4OzzbuhxGuVf06
31073107
gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
31083108
git.sr.ht/~sbinet/gg v0.3.1 h1:LNhjNn8DerC8f9DHLz6lS0YYul/b602DUxDgGkd/Aik=
31093109
git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc=
3110+
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4=
3111+
github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA=
31103112
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU=
31113113
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
31123114
github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 h1:59MxjQVfjXsBpLy+dbd2/ELV5ofnUkUZBvWSC85sheA=
@@ -3190,8 +3192,6 @@ github.com/PuerkitoBio/rehttp v1.0.0 h1:aJ7A7YI2lIvOxcJVeUZY4P6R7kKZtLeONjgyKGwO
31903192
github.com/PuerkitoBio/rehttp v1.0.0/go.mod h1:ItsOiHl4XeMOV3rzbZqQRjLc3QQxbE6391/9iNG7rE8=
31913193
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
31923194
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
3193-
github.com/RoaringBitmap/roaring/v2 v2.8.0 h1:y1rdtixfXvaITKzkfiKvScI0hlBJHe9sfzJp8cgeM7w=
3194-
github.com/RoaringBitmap/roaring/v2 v2.8.0/go.mod h1:FiJcsfkGje/nZBZgCu0ZxCPOKD/hVXDS2dXi7/eUFE0=
31953195
github.com/Venafi/vcert/v4 v4.14.3 h1:tlyhgQKTzMXn9B44hx8CDI4oiaisWEWSGH66KKUh088=
31963196
github.com/Venafi/vcert/v4 v4.14.3/go.mod h1:IL+6LA8QRWZbmcMzIr/vRhf9Aa6XDM2cQO50caWevjA=
31973197
github.com/agnivade/levenshtein v1.0.1 h1:3oJU7J3FGFmyhn8KHjmVaZCN5hxTr7GxgRue+sxIXdQ=
@@ -3313,7 +3313,6 @@ github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZx
33133313
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
33143314
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
33153315
github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=
3316-
github.com/bits-and-blooms/bitset v1.12.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
33173316
github.com/bketelsen/crypt v0.0.4 h1:w/jqZtC9YD4DS/Vp9GhWfWcCpuAL58oTnLoI8vE9YHU=
33183317
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
33193318
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
@@ -3483,6 +3482,7 @@ github.com/crossplane/crossplane-runtime v1.14.0-rc.0.0.20230912122805-43c9ceeb2
34833482
github.com/crossplane/crossplane-runtime v1.14.0-rc.0.0.20230912122805-43c9ceeb2071/go.mod h1:R80Kb/MddGNqL1A6khYup2d1eljmd9sFkcZkw1jVHME=
34843483
github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI=
34853484
github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
3485+
github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0=
34863486
github.com/daviddengcn/go-colortext v1.0.0 h1:ANqDyC0ys6qCSvuEK7l3g5RaehL/Xck9EX8ATG8oKsE=
34873487
github.com/daviddengcn/go-colortext v1.0.0/go.mod h1:zDqEI5NVUop5QPpVJUxE9UO10hRnmkD5G4Pmri9+m4c=
34883488
github.com/decred/dcrd/crypto/blake256 v1.1.0 h1:zPMNGQCm0g4QTY27fOCorQW7EryeQ/U0x++OzVrdms8=
@@ -3510,7 +3510,6 @@ github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4Kfc
35103510
github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8=
35113511
github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
35123512
github.com/docker/docker v27.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
3513-
github.com/docker/docker v28.0.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
35143513
github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ=
35153514
github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
35163515
github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A=
@@ -3526,15 +3525,14 @@ github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25Kn
35263525
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
35273526
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
35283527
github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU=
3528+
github.com/dvsekhvalnov/jose2go v1.7.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU=
35293529
github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk=
35303530
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
35313531
github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
35323532
github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
35333533
github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ=
35343534
github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
35353535
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
3536-
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
3537-
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
35383536
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
35393537
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
35403538
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
@@ -3669,8 +3667,6 @@ github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8Wd
36693667
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
36703668
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
36713669
github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
3672-
github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs=
3673-
github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
36743670
github.com/gobuffalo/flect v0.2.3 h1:f/ZukRnSNA/DUpSNDadko7Qc0PhGvsew35p/2tu+CRY=
36753671
github.com/gobuffalo/flect v0.2.3/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc=
36763672
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
@@ -3688,6 +3684,7 @@ github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MG
36883684
github.com/goccy/go-yaml v1.9.8/go.mod h1:JubOolP3gh0HpiBc4BLRD4YmjEjHAmIIB2aaXKkTfoE=
36893685
github.com/goccy/go-yaml v1.11.0 h1:n7Z+zx8S9f9KgzG6KtQKf+kwqXZlLNR2F6018Dgau54=
36903686
github.com/goccy/go-yaml v1.11.0/go.mod h1:H+mJrWtjPTJAHvRbV09MCK9xYwODM+wRTVFFTWckfng=
3687+
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
36913688
github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
36923689
github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
36933690
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
@@ -3895,8 +3892,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU
38953892
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
38963893
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
38973894
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1/go.mod h1:5SN9VR2LTsRFsrEC6FHgRbTWrTHu6tqPeKxEQv15giM=
3895+
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0=
38983896
github.com/hamba/avro/v2 v2.17.2/go.mod h1:Q9YK+qxAhtVrNqOhwlZTATLgLA8qxG2vtvkhK8fJ7Jo=
3899-
github.com/hamba/avro/v2 v2.29.0/go.mod h1:Pk3T+x74uJoJOFmHrdJ8PRdgSEL/kEKteJ31NytCKxI=
39003897
github.com/hashicorp/consul/api v1.1.0 h1:BNQPM9ytxj6jbjjdRPioQ94T6YXriSopn0i8COv6SRA=
39013898
github.com/hashicorp/consul/sdk v0.1.1 h1:LnuDWGNsoajlhGyHJvuWW6FVqRl8JOTPqS6CPTsYjhY=
39023899
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
@@ -3990,8 +3987,6 @@ github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j
39903987
github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY=
39913988
github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
39923989
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
3993-
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
3994-
github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
39953990
github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4=
39963991
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
39973992
github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
@@ -4122,7 +4117,7 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN
41224117
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
41234118
github.com/montanaflynn/stats v0.7.0 h1:r3y12KyNxj/Sb/iOE46ws+3mS1+MZca1wlHQFPsY/JU=
41244119
github.com/montanaflynn/stats v0.7.0/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
4125-
github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw=
4120+
github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns=
41264121
github.com/munnerz/crd-schema-fuzz v1.0.0 h1:8erI9yzEnOGw9K5O+a8zZdoo8N/OwrFi7c7SjBtkHAs=
41274122
github.com/munnerz/crd-schema-fuzz v1.0.0/go.mod h1:4z/rcm37JxUkSsExFcLL6ZIT1SgDRdLiu7qq1evdVS0=
41284123
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
@@ -5713,7 +5708,6 @@ gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76
57135708
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
57145709
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
57155710
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
5716-
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
57175711
gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0=
57185712
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
57195713
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=

0 commit comments

Comments
 (0)