Skip to content

Commit dcaf0d4

Browse files
authored
feat: reconcile stale crds (#20)
* feat: reconcile stale crds When resources are deleted and created and the operator doesn't sync the delete, the newer resource never gets reconciled due to database unique constraint violations. * fix: retry interval
1 parent 3c832a3 commit dcaf0d4

File tree

5 files changed

+579
-1896
lines changed

5 files changed

+579
-1896
lines changed

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
- name: Install Go
1212
uses: actions/setup-go@v3
1313
with:
14-
go-version: 1.20.x
14+
go-version: 1.23.x
1515
- name: golangci-lint
1616
uses: golangci/golangci-lint-action@v3
1717
with:

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- name: Setup Go
3232
uses: actions/setup-go@v4
3333
with:
34-
go-version: v1.20.x
34+
go-version: v1.23.x
3535
- name: Create commits
3636
run: |
3737
# Sleep to let index refresh

go.mod

Lines changed: 131 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,162 +1,183 @@
11
module github.com/flanksource/kopper
22

3-
go 1.20
3+
go 1.23
4+
5+
toolchain go1.24.1
46

57
require (
6-
github.com/flanksource/commons v1.17.1
7-
github.com/flanksource/duty v1.0.250
8-
github.com/go-logr/logr v1.3.0
9-
k8s.io/apimachinery v0.28.3
10-
k8s.io/client-go v0.28.3
11-
sigs.k8s.io/controller-runtime v0.16.3
8+
github.com/flanksource/commons v1.36.1
9+
github.com/flanksource/duty v1.0.879
10+
github.com/go-logr/logr v1.4.2
11+
github.com/jackc/pgerrcode v0.0.0-20240316143900-6e2875d9b438
12+
github.com/jackc/pgx/v5 v5.6.0
13+
k8s.io/apimachinery v0.31.1
14+
k8s.io/client-go v0.31.1
15+
sigs.k8s.io/controller-runtime v0.19.0
1216
)
1317

1418
require (
15-
cloud.google.com/go v0.110.9 // indirect
16-
cloud.google.com/go/compute v1.23.2 // indirect
17-
cloud.google.com/go/compute/metadata v0.2.3 // indirect
18-
cloud.google.com/go/iam v1.1.4 // indirect
19-
cloud.google.com/go/storage v1.33.0 // indirect
20-
github.com/AlekSi/pointer v1.1.0 // indirect
19+
cel.dev/expr v0.18.0 // indirect
2120
github.com/Masterminds/goutils v1.1.1 // indirect
22-
github.com/Masterminds/semver/v3 v3.2.1 // indirect
21+
github.com/Masterminds/semver/v3 v3.3.1 // indirect
2322
github.com/RaveNoX/go-jsonmerge v1.0.0 // indirect
24-
github.com/TomOnTime/utfutil v0.0.0-20210710122150-437f72b26edf // indirect
25-
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df // indirect
26-
github.com/antonmedv/expr v1.15.3 // indirect
27-
github.com/aws/aws-sdk-go v1.45.24 // indirect
23+
github.com/TomOnTime/utfutil v0.0.0-20230223141146-125e65197b36 // indirect
24+
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
2825
github.com/beorn7/perks v1.0.1 // indirect
29-
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
30-
github.com/cespare/xxhash/v2 v2.2.0 // indirect
31-
github.com/davecgh/go-spew v1.1.1 // indirect
32-
github.com/dustin/go-humanize v1.0.1 // indirect
33-
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
34-
github.com/evanphx/json-patch v5.6.0+incompatible // indirect
35-
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
36-
github.com/flanksource/gomplate/v3 v3.20.16 // indirect
37-
github.com/flanksource/is-healthy v0.0.0-20231003215854-76c51e3a3ff7 // indirect
38-
github.com/flanksource/kommons v0.31.4 // indirect
39-
github.com/flanksource/mapstructure v1.6.0 // indirect
40-
github.com/fsnotify/fsnotify v1.6.0 // indirect
26+
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
27+
github.com/cert-manager/cert-manager v1.16.1 // indirect
28+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
29+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
30+
github.com/distribution/reference v0.5.0 // indirect
31+
github.com/eko/gocache/lib/v4 v4.1.6 // indirect
32+
github.com/eko/gocache/store/go_cache/v4 v4.2.2 // indirect
33+
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
34+
github.com/emirpasic/gods/v2 v2.0.0-alpha // indirect
35+
github.com/evanphx/json-patch/v5 v5.9.0 // indirect
36+
github.com/fatih/color v1.17.0 // indirect
37+
github.com/flanksource/gomplate/v3 v3.24.55 // indirect
38+
github.com/flanksource/is-healthy v1.0.60 // indirect
39+
github.com/flanksource/kubectl-neat v1.0.4 // indirect
40+
github.com/fsnotify/fsnotify v1.7.0 // indirect
41+
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
4142
github.com/ghodss/yaml v1.0.0 // indirect
42-
github.com/go-errors/errors v1.4.2 // indirect
43-
github.com/go-openapi/jsonpointer v0.20.0 // indirect
44-
github.com/go-openapi/jsonreference v0.20.2 // indirect
45-
github.com/go-openapi/swag v0.22.4 // indirect
43+
github.com/go-logr/stdr v1.2.2 // indirect
44+
github.com/go-ole/go-ole v1.2.6 // indirect
45+
github.com/go-openapi/jsonpointer v0.21.0 // indirect
46+
github.com/go-openapi/jsonreference v0.21.0 // indirect
47+
github.com/go-openapi/swag v0.23.0 // indirect
4648
github.com/gobwas/glob v0.2.3 // indirect
49+
github.com/goccy/go-yaml v1.12.0 // indirect
4750
github.com/gogo/protobuf v1.3.2 // indirect
51+
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
4852
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
49-
github.com/golang/protobuf v1.5.3 // indirect
50-
github.com/google/btree v1.0.1 // indirect
51-
github.com/google/cel-go v0.18.1 // indirect
52-
github.com/google/gnostic-models v0.6.8 // indirect
53+
github.com/golang/mock v1.6.0 // indirect
54+
github.com/golang/protobuf v1.5.4 // indirect
55+
github.com/google/btree v1.1.2 // indirect
56+
github.com/google/cel-go v0.22.1 // indirect
57+
github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect
5358
github.com/google/go-cmp v0.6.0 // indirect
5459
github.com/google/gofuzz v1.2.0 // indirect
55-
github.com/google/s2a-go v0.1.7 // indirect
56-
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
57-
github.com/google/uuid v1.4.0 // indirect
58-
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
59-
github.com/googleapis/gax-go/v2 v2.12.0 // indirect
60+
github.com/google/uuid v1.6.0 // indirect
61+
github.com/gorilla/websocket v1.5.1 // indirect
6062
github.com/gosimple/slug v1.13.1 // indirect
6163
github.com/gosimple/unidecode v1.0.1 // indirect
62-
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
64+
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect
65+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
6366
github.com/hairyhenderson/toml v0.4.2-0.20210923231440-40456b8e66cf // indirect
6467
github.com/hairyhenderson/yaml v0.0.0-20220618171115-2d35fca545ce // indirect
65-
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
66-
github.com/hashicorp/go-getter v1.7.4 // indirect
67-
github.com/hashicorp/go-safetemp v1.0.0 // indirect
68-
github.com/hashicorp/go-version v1.6.0 // indirect
69-
github.com/imdario/mergo v0.3.15 // indirect
70-
github.com/itchyny/gojq v0.12.13 // indirect
71-
github.com/itchyny/timefmt-go v0.1.5 // indirect
68+
github.com/henvic/httpretty v0.1.3 // indirect
69+
github.com/imdario/mergo v0.3.16 // indirect
70+
github.com/inconshreveable/mousetrap v1.1.0 // indirect
71+
github.com/itchyny/gojq v0.12.17 // indirect
72+
github.com/itchyny/timefmt-go v0.1.6 // indirect
73+
github.com/jackc/chunkreader/v2 v2.0.1 // indirect
74+
github.com/jackc/pgconn v1.14.0 // indirect
75+
github.com/jackc/pgio v1.0.0 // indirect
7276
github.com/jackc/pgpassfile v1.0.0 // indirect
73-
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
74-
github.com/jackc/pgx/v5 v5.5.4 // indirect
77+
github.com/jackc/pgproto3/v2 v2.3.2 // indirect
78+
github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 // indirect
79+
github.com/jackc/pgtype v1.14.0 // indirect
80+
github.com/jackc/pgx/v4 v4.18.1 // indirect
81+
github.com/jackc/puddle v1.3.0 // indirect
7582
github.com/jackc/puddle/v2 v2.2.1 // indirect
83+
github.com/jeremywohl/flatten v0.0.0-20180923035001-588fe0d4c603 // indirect
7684
github.com/jinzhu/inflection v1.0.0 // indirect
7785
github.com/jinzhu/now v1.1.5 // indirect
78-
github.com/jmespath/go-jmespath v0.4.0 // indirect
86+
github.com/jmespath/go-jmespath v0.4.1-0.20220621161143-b0104c826a24 // indirect
7987
github.com/josharian/intern v1.0.0 // indirect
8088
github.com/json-iterator/go v1.1.12 // indirect
81-
github.com/klauspost/compress v1.17.0 // indirect
89+
github.com/klauspost/compress v1.17.9 // indirect
8290
github.com/kr/pretty v0.3.1 // indirect
8391
github.com/kr/text v0.2.0 // indirect
92+
github.com/labstack/echo/v4 v4.12.0 // indirect
93+
github.com/labstack/gommon v0.4.2 // indirect
8494
github.com/liamylian/jsontime/v2 v2.0.0 // indirect
8595
github.com/lib/pq v1.10.9 // indirect
96+
github.com/lmittmann/tint v1.0.5 // indirect
97+
github.com/lrita/cmap v0.0.0-20231108122212-cb084a67f554 // indirect
98+
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
8699
github.com/mailru/easyjson v0.7.7 // indirect
87-
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
88-
github.com/mitchellh/go-homedir v1.1.0 // indirect
89-
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
90-
github.com/mitchellh/mapstructure v1.5.0 // indirect
100+
github.com/mattn/go-colorable v0.1.13 // indirect
101+
github.com/mattn/go-isatty v0.0.20 // indirect
91102
github.com/mitchellh/reflectwalk v1.0.2 // indirect
92-
github.com/moby/spdystream v0.2.0 // indirect
103+
github.com/moby/spdystream v0.4.0 // indirect
93104
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
94105
github.com/modern-go/reflect2 v1.0.2 // indirect
95-
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
96106
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
97-
github.com/ohler55/ojg v1.20.3 // indirect
107+
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
108+
github.com/ohler55/ojg v1.25.0 // indirect
109+
github.com/oklog/ulid/v2 v2.1.0 // indirect
110+
github.com/opencontainers/go-digest v1.0.0 // indirect
111+
github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect
98112
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
99113
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
100114
github.com/pkg/errors v0.9.1 // indirect
101-
github.com/prometheus/client_golang v1.16.0 // indirect
102-
github.com/prometheus/client_model v0.4.0 // indirect
103-
github.com/prometheus/common v0.44.0 // indirect
104-
github.com/prometheus/procfs v0.10.1 // indirect
105-
github.com/robertkrimen/otto v0.2.1 // indirect
106-
github.com/rogpeppe/go-internal v1.11.0 // indirect
107-
github.com/sergi/go-diff v1.3.1 // indirect
115+
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
116+
github.com/prometheus/client_golang v1.20.5 // indirect
117+
github.com/prometheus/client_model v0.6.1 // indirect
118+
github.com/prometheus/common v0.55.0 // indirect
119+
github.com/prometheus/procfs v0.15.1 // indirect
120+
github.com/robertkrimen/otto v0.3.0 // indirect
121+
github.com/rogpeppe/go-internal v1.13.1 // indirect
122+
github.com/samber/lo v1.47.0 // indirect
123+
github.com/samber/oops v1.13.1 // indirect
124+
github.com/shirou/gopsutil/v3 v3.24.5 // indirect
125+
github.com/shoenig/go-m1cpu v0.1.6 // indirect
108126
github.com/sirupsen/logrus v1.9.3 // indirect
127+
github.com/spf13/cobra v1.8.1 // indirect
109128
github.com/spf13/pflag v1.0.5 // indirect
110129
github.com/stoewer/go-strcase v1.3.0 // indirect
111130
github.com/tidwall/gjson v1.17.0 // indirect
112131
github.com/tidwall/match v1.1.1 // indirect
113132
github.com/tidwall/pretty v1.2.1 // indirect
114-
github.com/ugorji/go/codec v1.2.11 // indirect
115-
github.com/ulikunitz/xz v0.5.11 // indirect
116-
github.com/xlab/treeprint v1.2.0 // indirect
117-
github.com/yuin/gopher-lua v1.1.0 // indirect
118-
go.opencensus.io v0.24.0 // indirect
119-
go.opentelemetry.io/otel v1.19.0 // indirect
120-
go.opentelemetry.io/otel/trace v1.19.0 // indirect
121-
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect
122-
go.uber.org/multierr v1.11.0 // indirect
123-
go.uber.org/zap v1.26.0 // indirect
124-
golang.org/x/crypto v0.21.0 // indirect
125-
golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect
126-
golang.org/x/net v0.23.0 // indirect
127-
golang.org/x/oauth2 v0.14.0 // indirect
128-
golang.org/x/sync v0.5.0 // indirect
129-
golang.org/x/sys v0.18.0 // indirect
130-
golang.org/x/term v0.18.0 // indirect
131-
golang.org/x/text v0.14.0 // indirect
132-
golang.org/x/time v0.4.0 // indirect
133-
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
133+
github.com/tidwall/sjson v1.0.4 // indirect
134+
github.com/tklauser/go-sysconf v0.3.12 // indirect
135+
github.com/tklauser/numcpus v0.6.1 // indirect
136+
github.com/ugorji/go/codec v1.2.12 // indirect
137+
github.com/ulikunitz/xz v0.5.12 // indirect
138+
github.com/valyala/bytebufferpool v1.0.0 // indirect
139+
github.com/valyala/fasttemplate v1.2.2 // indirect
140+
github.com/x448/float16 v0.8.4 // indirect
141+
github.com/yuin/gopher-lua v1.1.1 // indirect
142+
github.com/yusufpapurcu/wmi v1.2.4 // indirect
143+
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
144+
go.opentelemetry.io/otel v1.34.0 // indirect
145+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 // indirect
146+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect
147+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 // indirect
148+
go.opentelemetry.io/otel/metric v1.34.0 // indirect
149+
go.opentelemetry.io/otel/sdk v1.34.0 // indirect
150+
go.opentelemetry.io/otel/trace v1.34.0 // indirect
151+
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
152+
golang.org/x/crypto v0.31.0 // indirect
153+
golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect
154+
golang.org/x/net v0.33.0 // indirect
155+
golang.org/x/oauth2 v0.23.0 // indirect
156+
golang.org/x/sync v0.10.0 // indirect
157+
golang.org/x/sys v0.29.0 // indirect
158+
golang.org/x/term v0.27.0 // indirect
159+
golang.org/x/text v0.21.0 // indirect
160+
golang.org/x/time v0.6.0 // indirect
161+
golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect
134162
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
135-
google.golang.org/api v0.150.0 // indirect
136-
google.golang.org/appengine v1.6.8 // indirect
137-
google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405 // indirect
138-
google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b // indirect
139-
google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect
140-
google.golang.org/grpc v1.59.0 // indirect
141-
google.golang.org/protobuf v1.33.0 // indirect
142-
gopkg.in/flanksource/yaml.v3 v3.2.3 // indirect
163+
google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed // indirect
164+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
165+
google.golang.org/grpc v1.66.2 // indirect
166+
google.golang.org/protobuf v1.36.1 // indirect
167+
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
143168
gopkg.in/inf.v0 v0.9.1 // indirect
144169
gopkg.in/sourcemap.v1 v1.0.5 // indirect
145170
gopkg.in/yaml.v2 v2.4.0 // indirect
146171
gopkg.in/yaml.v3 v3.0.1 // indirect
147-
gorm.io/gorm v1.25.5 // indirect
148-
k8s.io/api v0.28.3 // indirect
149-
k8s.io/apiextensions-apiserver v0.28.3 // indirect
150-
k8s.io/cli-runtime v0.28.0 // indirect
151-
k8s.io/component-base v0.28.3 // indirect
152-
k8s.io/klog/v2 v2.100.1 // indirect
153-
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
154-
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
172+
gorm.io/gorm v1.25.12 // indirect
173+
k8s.io/api v0.31.1 // indirect
174+
k8s.io/apiextensions-apiserver v0.31.1 // indirect
175+
k8s.io/klog/v2 v2.130.1 // indirect
176+
k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 // indirect
177+
k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 // indirect
155178
layeh.com/gopher-json v0.0.0-20201124131017-552bb3c4c3bf // indirect
179+
sigs.k8s.io/gateway-api v1.1.0 // indirect
156180
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
157-
sigs.k8s.io/kustomize v2.0.3+incompatible // indirect
158-
sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect
159-
sigs.k8s.io/kustomize/kyaml v0.14.3 // indirect
160-
sigs.k8s.io/structured-merge-diff/v4 v4.3.0 // indirect
161-
sigs.k8s.io/yaml v1.3.0 // indirect
181+
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
182+
sigs.k8s.io/yaml v1.4.0 // indirect
162183
)

0 commit comments

Comments
 (0)