Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking β€œSign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(dex): dex backend storage adapter implementation #839

Merged
merged 126 commits into from
Feb 25, 2025
Merged
Changes from 23 commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
cd6b3e5
feat(dex): create connector and client to sql along with the CRDs
kengou Jan 9, 2025
b2edebf
feat(dex): add sql backend to idproxy commented out
kengou Jan 9, 2025
df36be5
feat(dex): create connector and client to sql along with the CRDs
kengou Jan 9, 2025
274eaa1
feat(dex): add sql backend to idproxy commented out
kengou Jan 9, 2025
5a93642
Merge branch 'feat/dex-sql' of https://github.com/cloudoperators/gree…
kengou Jan 9, 2025
c76613c
fix(controller) go fmt, fix imports
kengou Jan 9, 2025
9500d0d
fix(dex) failing tests
kengou Jan 10, 2025
e9fe394
feat(dex) shared networkstorage, rm events
kengou Jan 15, 2025
47e1cca
fix(dex) use clienutil instead of osext
kengou Jan 16, 2025
2c0feb7
feat(idproxy): use struct in idproxy as input
kengou Jan 16, 2025
1605920
feat(dex): add mock for dex Storage
kengou Jan 16, 2025
f56f4d9
Automatic application of license header
Jan 16, 2025
5078f0e
(chore): removes unused vars
abhijith-darshan Jan 16, 2025
7caec01
(chore): spin up postgres test container for organization test
abhijith-darshan Jan 16, 2025
74f0bb4
(chore): tidy up!
abhijith-darshan Jan 16, 2025
6c9e6f6
(chore): go fmt
abhijith-darshan Jan 16, 2025
18791f5
(chore): lint fix
abhijith-darshan Jan 16, 2025
812c804
Merge branch 'main' into feat/dex-sql
abhijith-darshan Jan 16, 2025
d3c5cce
feat(ci) add flags, featureflag to deployments
kengou Jan 29, 2025
290bca1
fix(ci) rm license header frmo mockery generated code
kengou Jan 29, 2025
1096082
add licenserc to skip mockery
kengou Jan 29, 2025
59702e1
feat(idproxy) add featureflag to switch backend
kengou Jan 29, 2025
5356ec9
lint licenserc.yaml
kengou Jan 29, 2025
7476913
fix(dex) only create when ErrNotFound is the error during fetch
kengou Jan 30, 2025
42393b6
fix(feature) increase PollingInterval
kengou Jan 30, 2025
4baeee0
fix(idproxy) add comments to the code
kengou Jan 30, 2025
bfadac0
Merge branch 'main' into feat/dex-sql
kengou Jan 30, 2025
4af3b6f
Automatic application of license header
Jan 30, 2025
69449bb
(chore): move to dex pkg
abhijith-darshan Jan 31, 2025
3e496e7
(chore): adds GetEnv with error return
abhijith-darshan Jan 31, 2025
6f786df
(chore): adds feature resolver
abhijith-darshan Jan 31, 2025
c9aa70d
(chore): adds generic helper to return ptr types
abhijith-darshan Jan 31, 2025
366832e
(chore): adds dex storage resolver to idproxy
abhijith-darshan Jan 31, 2025
df1b96a
(chore): adds license headers
abhijith-darshan Jan 31, 2025
3f3e4fd
(chore): resolve feature flags from configmap
abhijith-darshan Jan 31, 2025
13e0fed
(chore): adds dex storage adapter interface
abhijith-darshan Jan 31, 2025
cf7b2d8
(chore): adds dex postgres storage adapter
abhijith-darshan Jan 31, 2025
41cf6ff
(chore): adds dex kubernetes storage adapter
abhijith-darshan Jan 31, 2025
76bfbae
(chore): adds dex storage adapter interface mocks
abhijith-darshan Jan 31, 2025
91759fc
(chore): adds dex storage adapter interface to reconciler
abhijith-darshan Jan 31, 2025
e4ba7b2
(chore): creates dex resources in organization namespace
abhijith-darshan Jan 31, 2025
d4b72df
(chore): setup dex storage adapter interface on operator start
abhijith-darshan Jan 31, 2025
6d86ff7
(chore): setup dex storage adapter interface on idproxy start
abhijith-darshan Jan 31, 2025
a3f1211
(chore): mock dex storage interface in unit tests
abhijith-darshan Jan 31, 2025
6e0541c
Merge branch 'feat/dex_storage' into feat/dex-sql
abhijith-darshan Jan 31, 2025
5382565
(chore): adds inline code comments
abhijith-darshan Jan 31, 2025
b3857ff
Automatic application of license header
Jan 31, 2025
4a9fdcb
(chore): use create update for writing oauth2client secrets
abhijith-darshan Feb 1, 2025
faba477
(chore): adds docs to run dex locally
abhijith-darshan Feb 1, 2025
43a284b
(chore): auto determine kubernetes
abhijith-darshan Feb 5, 2025
cdc76eb
(chore): uses org name as dex resource namespace
abhijith-darshan Feb 5, 2025
726dc2f
(chore): regenerate dexter mocks
abhijith-darshan Feb 5, 2025
55e946c
Merge branch 'main' into feat/dex-sql
abhijith-darshan Feb 5, 2025
7ec3a48
Merge branch 'main' into feat/dex-sql
abhijith-darshan Feb 7, 2025
6c87911
feat(dex): add postgresql helm chart to greenhouse, idproxy, manager …
kengou Feb 11, 2025
adf07c4
fix(charts): rm .gitignore from idproxy chart
kengou Feb 11, 2025
7d75177
fix fmt
kengou Feb 11, 2025
cfe3fbb
fix(charts): helm lint, update umbrellachart versions
kengou Feb 11, 2025
aa24488
Apply suggestions from code review
abhijith-darshan Feb 13, 2025
0146401
Apply suggestions from code review
abhijith-darshan Feb 13, 2025
e782dda
(chore): uses descriptive var names and const
abhijith-darshan Feb 13, 2025
2e343e6
(chore): remove mutex and use k8s ptr.To
abhijith-darshan Feb 13, 2025
153bdcd
(chore): inline homeDir usage
abhijith-darshan Feb 13, 2025
2565083
(chore): uses descriptive var names and const
abhijith-darshan Feb 13, 2025
d05bc49
(chore): adds logging
abhijith-darshan Feb 13, 2025
b107ded
Merge branch 'main' into feat/dex-sql
abhijith-darshan Feb 13, 2025
e7fa9aa
(chore): adds common redirect uri logic
abhijith-darshan Feb 13, 2025
a30ae0b
(chore): features as struct methods
abhijith-darshan Feb 13, 2025
727be1e
(chore): adds inline comments
abhijith-darshan Feb 13, 2025
02f09ba
(chore): use k8s ptr.To
abhijith-darshan Feb 13, 2025
e9a3203
(chore): fix lints
abhijith-darshan Feb 13, 2025
b3ec876
fix(postgres-ng) make chart working
kengou Feb 13, 2025
670c7b0
Merge branch 'feat/dex-sql' of https://github.com/cloudoperators/gree…
kengou Feb 13, 2025
3ed7b18
bump umbrella chart version
kengou Feb 13, 2025
6b86e16
(chore): simplifies dex storage usage
abhijith-darshan Feb 13, 2025
608c4c8
(chore): initialize dex backend for organization reconciler
abhijith-darshan Feb 13, 2025
2a86e58
(chore): regenerate mocks
abhijith-darshan Feb 13, 2025
962106c
(chore): refactors dex reconciliation
abhijith-darshan Feb 13, 2025
abbe59f
(chore): add go docs
abhijith-darshan Feb 13, 2025
2a89556
(chore): update org test suite
abhijith-darshan Feb 13, 2025
085d567
(chore): adds new conditions for appending redirects to default conne…
abhijith-darshan Feb 13, 2025
29fe086
(chore): uses simplified dex storage initialization
abhijith-darshan Feb 13, 2025
dc82fb5
(chore): adds .dockerignore
abhijith-darshan Feb 13, 2025
d1e5fbf
(chore): removes unused vars
abhijith-darshan Feb 13, 2025
dba8cf6
Automatic generation of CRD API Docs
cloud-operator Feb 13, 2025
09be246
(chore): fixes out of bounds issue for postgres port
abhijith-darshan Feb 13, 2025
06bae36
(chore): provide dex values for e2e
abhijith-darshan Feb 13, 2025
e06e445
(chore): allow dex api to create CRDs in local and e2e cluster
abhijith-darshan Feb 13, 2025
46ca51e
Merge branch 'main' into feat/dex-sql
abhijith-darshan Feb 13, 2025
0662211
(chore): uses postgres testcontainers for integration tests
abhijith-darshan Feb 13, 2025
aaa9a56
(chore): increase timeout for plugin preset test
abhijith-darshan Feb 14, 2025
6ec8254
(chore): go fmt!
abhijith-darshan Feb 14, 2025
30f1131
(chore): uses dex k8s backend for integration test
abhijith-darshan Feb 17, 2025
1f17721
(chore): uses global const
abhijith-darshan Feb 17, 2025
2d8c9b6
(chore): increase timeout on cluster delete
abhijith-darshan Feb 17, 2025
eca6f2d
(chore): removes timeout on preset test
abhijith-darshan Feb 17, 2025
b280812
Merge branch 'main' into feat/dex-sql
abhijith-darshan Feb 17, 2025
a88e378
Merge branch 'main' into feat/dex-sql
abhijith-darshan Feb 17, 2025
b1c608b
remove postgresng tableowner from root
kengou Feb 17, 2025
8737d1d
Merge branch 'main' into feat/dex-sql
kengou Feb 17, 2025
7cb0aa0
disable validation for kubernetes backend and postgres
kengou Feb 18, 2025
8237ce5
rename variable to avoid failing lint
kengou Feb 18, 2025
44de225
Merge branch 'main' into feat/dex-sql
abhijith-darshan Feb 18, 2025
01d7e8d
(chore): removes explicit timeouts in tests
abhijith-darshan Feb 18, 2025
c472e8a
use alias for chart to fix lint
kengou Feb 18, 2025
1371167
Merge branch 'feat/dex-sql' of https://github.com/cloudoperators/gree…
kengou Feb 18, 2025
f360f9c
(chore): enable owner ref on dex resources
abhijith-darshan Feb 19, 2025
0a3c2f4
(chore): handle deletion of org and dex resources
abhijith-darshan Feb 19, 2025
d0ab9e9
(chore): add tests for dex resources
abhijith-darshan Feb 19, 2025
ef5de60
Merge branch 'main' into feat/dex-sql
abhijith-darshan Feb 19, 2025
4a9012a
Merge branch 'main' into feat/dex-sql
abhijith-darshan Feb 19, 2025
8befc6c
bump chart version
kengou Feb 19, 2025
f4a2537
Merge branch 'main' into feat/dex-sql
abhijith-darshan Feb 24, 2025
364c3ff
(chore): rebuild chart dependencies
abhijith-darshan Feb 24, 2025
da3e6eb
(chore): bump chart version
abhijith-darshan Feb 24, 2025
0e52eeb
(chore): update docs
abhijith-darshan Feb 24, 2025
50a8f9c
(chore): adds connector and client deletion
abhijith-darshan Feb 24, 2025
8d259a9
(chore): remove unused org condition type
abhijith-darshan Feb 24, 2025
faec442
(chore): regenerate manifests
abhijith-darshan Feb 24, 2025
104e5e8
(chore): org deletion test
abhijith-darshan Feb 24, 2025
94cbbd1
Automatic generation of CRD API Docs
cloud-operator Feb 24, 2025
37cb154
(chore): removes unused finalizer const
abhijith-darshan Feb 24, 2025
21c7bd1
(chore): updates organization deletion phase and tests
abhijith-darshan Feb 25, 2025
f23d3fc
(chore): fixes lint errors
abhijith-darshan Feb 25, 2025
0975842
(chore): fixes org test
abhijith-darshan Feb 25, 2025
f242014
Merge branch 'main' into feat/dex-sql
kengou Feb 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/licenserc.yaml
Original file line number Diff line number Diff line change
@@ -38,8 +38,10 @@ header:
- 'pkg/idproxy/web/**'
- 'pkg/apis/scheme_builder.go' # Belongs to the Kubernetes authors
- '**/zz_generated.deepcopy.go' # Generated by Kubebuilder
- 'charts/**/templates/*.yaml' # license headers on helm templates are causing issues

- 'charts/**/templates/*.yaml' # license headers on helm templates are causing issues
- '.mockery.yaml' # Mockery config file
- 'pkg/mocks/**' # Mockery generated files

comment: on-failure

# license-location-threshold specifies the index threshold where the license header can be located,
8 changes: 4 additions & 4 deletions .mockery.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# SPDX-FileCopyrightText: 2024 SAP SE or an SAP affiliate company and Greenhouse contributors
# SPDX-License-Identifier: Apache-2.0

# .mockery.yaml
with-expecter: false
filename: "mock_{{.InterfaceName}}.go"
@@ -13,4 +10,7 @@ packages:
sigs.k8s.io/controller-runtime/pkg/client:
interfaces:
Client:
SubResourceWriter:
SubResourceWriter:
github.com/dexidp/dex/storage:
interfaces:
Storage:
19 changes: 19 additions & 0 deletions charts/idproxy/templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -54,6 +54,25 @@ spec:
{{- range $origin := .Values.corsAllowedOrigins | default (list "*") }}
- --allowed-origins={{ $origin }}
{{- end }}
env:
- name: DEX_POSTGRES_DATABASE
value: {{ .Values.postgresql.postgresqlDatabase }}
- name: DEX_POSTGRES_HOST
value: {{ .Values.postgresql.postgresqlHost }}
- name: DEX_POSTGRES_USER
value: {{ .Values.postgresql.postgresqlUsername }}
- name: DEX_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
key: postgres-password
name: dex-postgres-pguser-dex
- name: FEATURE_FLAG_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: FEATURE_FLAG_CONFIG_MAP_NAME
value: {{ include "manager.fullname" . }}-feature-flags
ports:
- name: oidc
containerPort: 8080
13 changes: 13 additions & 0 deletions charts/manager/etc/feature_flags.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
dex-sql-backend:
variations:
true: true
false: false
defaultRule:
variation: false

dex-kubernetes-backend:
variations:
true: true
false: false
defaultRule:
variation: true
11 changes: 11 additions & 0 deletions charts/manager/templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -35,6 +35,17 @@ spec:
{{- include "manager.params" . | indent 8 }}
{{- end }}
env:
- name: DEX_POSTGRES_DATABASE
value: {{ .Values.postgresql.postgresqlDatabase }}
- name: DEX_POSTGRES_HOST
value:
- name: DEX_POSTGRES_USER
value: {{ .Values.postgresql.postgresqlUsername }}
- name: DEX_POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
key: postgres-password
name: dex-postgres-pguser-dex
- name: POD_NAMESPACE
valueFrom:
fieldRef:
8 changes: 8 additions & 0 deletions charts/manager/templates/manager-featureflag.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "manager.fullname" . }}-feature-flags
data:
config.yaml: |-
{{- .Files.Get "etc/feature_flags.yaml" | nindent 4 }}
2 changes: 2 additions & 0 deletions cmd/greenhouse/controllers.go
Original file line number Diff line number Diff line change
@@ -76,8 +76,10 @@ func startOrganizationReconciler(name string, mgr ctrl.Manager) error {
if v, ok := os.LookupEnv("POD_NAMESPACE"); ok {
namespace = v
}

return (&organizationcontrollers.OrganizationReconciler{
Namespace: namespace,
NetworkDB: postgresDB,
}).SetupWithManager(name, mgr)
}

9 changes: 9 additions & 0 deletions cmd/greenhouse/main.go
Original file line number Diff line number Diff line change
@@ -12,6 +12,7 @@ import (
"strings"
"time"

"github.com/dexidp/dex/storage/sql"
flag "github.com/spf13/pflag"
"go.uber.org/zap/zapcore"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@@ -58,6 +59,8 @@ var (
remoteClusterBearerTokenValidity,
renewRemoteClusterBearerTokenAfter time.Duration
kubeClientOpts clientutil.RuntimeOptions
// DB connection parameters
postgresDB sql.NetworkDB
)

func init() {
@@ -91,6 +94,12 @@ func main() {
flag.StringVar(&common.DNSDomain, "dns-domain", "",
"The DNS domain to use for the Greenhouse central cluster")

flag.StringVar(&postgresDB.Database, "database", clientutil.GetEnvOrDefault("DEX_POSTGRES_DATABASE", "dex"), "Database name")
flag.StringVar(&postgresDB.Host, "dbHost", clientutil.GetEnvOrDefault("DEX_POSTGRES_HOST", "localhost"), "Database host")
flag.Uint16Var(&postgresDB.Port, "dbPort", 5432, "Database port")
flag.StringVar(&postgresDB.User, "dbUser", clientutil.GetEnvOrDefault("DEX_POSTGRES_USER", "dex"), "Database user")
flag.StringVar(&postgresDB.Password, "dbPassword", clientutil.GetEnvOrDefault("DEX_POSTGRES_PASSWORD", "dex"), "Database password")

opts := zap.Options{
Development: true,
TimeEncoder: zapcore.RFC3339TimeEncoder,
43 changes: 41 additions & 2 deletions cmd/idproxy/main.go
Original file line number Diff line number Diff line change
@@ -16,8 +16,11 @@ import (
"time"

"github.com/dexidp/dex/server"
"github.com/dexidp/dex/storage"
"github.com/dexidp/dex/storage/sql"
"github.com/go-logr/logr"
"github.com/oklog/run"
"github.com/open-feature/go-sdk/openfeature"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/collectors"
"github.com/prometheus/client_golang/prometheus/promhttp"
@@ -29,6 +32,7 @@ import (
logk "sigs.k8s.io/controller-runtime/pkg/log"

greenhousesapv1alpha1 "github.com/cloudoperators/greenhouse/pkg/apis/greenhouse/v1alpha1"
"github.com/cloudoperators/greenhouse/pkg/features"
"github.com/cloudoperators/greenhouse/pkg/idproxy"
"github.com/cloudoperators/greenhouse/pkg/idproxy/web"
)
@@ -39,6 +43,11 @@ func main() {
var idTokenValidity time.Duration
var listenAddr, metricsAddr string
var allowedOrigins []string
// DB connection parameters
var postgresDB sql.NetworkDB
var dexStorage storage.Storage
var err error

logger := slog.New(slog.NewJSONHandler(os.Stdout, nil))
// set default logger to be used by log
slog.SetDefault(logger)
@@ -48,6 +57,11 @@ func main() {
flag.StringVar(&kubeconfig, "kubeconfig", os.Getenv("KUBECONFIG"), "Use kubeconfig for authentication")
flag.StringVar(&kubecontext, "kubecontext", os.Getenv("KUBECONTEXT"), "Use context from kubeconfig")
flag.StringVar(&kubenamespace, "kubenamespace", os.Getenv("KUBENAMESPACE"), "Use namespace")
flag.StringVar(&postgresDB.Database, "database", os.Getenv("DEX_POSTGRES_DATABASE"), "Database name")
flag.StringVar(&postgresDB.Host, "dbHost", os.Getenv("DEX_POSTGRES_HOST"), "Database host")
flag.Uint16Var(&postgresDB.Port, "dbPort", 5432, "Database port")
flag.StringVar(&postgresDB.User, "dbUser", os.Getenv("DEX_POSTGRES_USER"), "Database user")
flag.StringVar(&postgresDB.Password, "dbPassword", os.Getenv("DEX_POSTGRES_PASSWORD"), "Database password")
flag.StringVar(&issuer, "issuer", "", "Issuer URL")
flag.StringVar(&listenAddr, "listen-addr", ":8080", "oidc listen address")
flag.StringVar(&metricsAddr, "metrics-addr", ":6543", "bind address for metrics")
@@ -59,9 +73,34 @@ func main() {
log.Fatal("No --issuer given")
}

dexStorage, err := idproxy.NewKubernetesStorage(kubeconfig, kubecontext, kubenamespace, logger.With("component", "storage"))
ofClient := features.GetOFClient("idproxy")
evalCtx := openfeature.NewEvaluationContext(
"backend",
map[string]interface{}{},
)
postgresBackend, err := ofClient.BooleanValue(context.TODO(), "dex-sql-backend", false, evalCtx)
if err != nil {
log.Fatalf("Failed to initialize kubernetes storage: %s", err)
log.Fatalf("Failed to get dex-sql-backend value details: %s", err)
}

k8sBackend, err := ofClient.BooleanValue(context.TODO(), "dex-kubernetes-backend", false, evalCtx)
if err != nil {
log.Fatalf("Failed to get dex-kubernetes-backend value details: %s", err)
}

switch {
case postgresBackend:
dexStorage, err = idproxy.NewPostgresStorage(sql.SSL{Mode: "disable"}, postgresDB, logger.With("component", "storage"))
if err != nil {
log.Fatalf("Failed to initialize postgres storage: %s", err)
}
case k8sBackend:
dexStorage, err = idproxy.NewKubernetesStorage(kubeconfig, kubecontext, kubenamespace, logger.With("component", "storage"))
if err != nil {
log.Fatalf("Failed to initialize kubernetes storage: %s", err)
}
default:
log.Fatalf("Exactly one of dex-sql-backend or dex-kubernetes-backend must be true")
}

refreshPolicy, err := server.NewRefreshTokenPolicy(logger.With("component", "refreshtokenpolicy"), true, "24h", "24h", "5s")
60 changes: 43 additions & 17 deletions go.mod
Original file line number Diff line number Diff line change
@@ -26,12 +26,17 @@ require (
github.com/oklog/run v1.1.1-0.20240127200640-eee6e044b77c
github.com/onsi/ginkgo/v2 v2.22.2
github.com/onsi/gomega v1.36.2
github.com/open-feature/go-sdk v1.14.1
github.com/open-feature/go-sdk-contrib/providers/go-feature-flag-in-process v0.1.0
github.com/pkg/errors v0.9.1
github.com/prometheus/client_golang v1.20.5
github.com/sirupsen/logrus v1.9.3
github.com/spf13/cobra v1.8.1
github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.10.0
github.com/testcontainers/testcontainers-go v0.35.0
github.com/testcontainers/testcontainers-go/modules/postgres v0.35.0
github.com/thomaspoignant/go-feature-flag v1.40.0
github.com/vladimirvivien/gexe v0.4.1
github.com/wI2L/jsondiff v0.6.1
go.uber.org/zap v1.27.0
@@ -52,42 +57,63 @@ require (
)

require (
cloud.google.com/go/auth v0.9.2 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect
cloud.google.com/go/auth v0.11.0 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.6 // indirect
dario.cat/mergo v1.0.1 // indirect
filippo.io/edwards25519 v1.1.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/Microsoft/hcsshim v0.12.6 // indirect
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/blang/semver v3.5.1+incompatible // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/containerd/errdefs v0.3.0 // indirect
github.com/containerd/log v0.1.0 // indirect
github.com/containerd/platforms v0.2.1 // indirect
github.com/cpuguy83/dockercfg v0.3.2 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
github.com/creack/pty v1.1.23 // indirect
github.com/distribution/reference v0.6.0 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-sql-driver/mysql v1.8.1 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect
github.com/gorilla/websocket v1.5.3 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/mattn/go-sqlite3 v1.14.22 // indirect
github.com/miekg/dns v1.1.58 // indirect
github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/moby/patternmatcher v0.6.0 // indirect
github.com/moby/sys/sequential v0.5.0 // indirect
github.com/moby/sys/user v0.3.0 // indirect
github.com/moby/sys/userns v0.1.0 // indirect
github.com/morikuni/aec v1.0.0 // indirect
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
github.com/nikunjy/rules v1.5.0 // indirect
github.com/otiai10/mint v1.6.3 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
github.com/sergi/go-diff v1.3.1 // indirect
github.com/shirou/gopsutil/v3 v3.23.12 // indirect
github.com/shoenig/go-m1cpu v0.1.6 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/tidwall/gjson v1.18.0 // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.1 // indirect
github.com/tidwall/sjson v1.2.5 // indirect
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/yusufpapurcu/wmi v1.2.3 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240827150818-7e3bb234dfed // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gotest.tools/v3 v3.5.1 // indirect
)

require (
cloud.google.com/go/compute/metadata v0.5.0 // indirect
cloud.google.com/go/compute/metadata v0.5.2 // indirect
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect
github.com/AppsFlyer/go-sundheit v0.6.0 // indirect
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
@@ -142,8 +168,8 @@ require (
github.com/google/s2a-go v0.1.8 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.3 // indirect
github.com/googleapis/gax-go/v2 v2.13.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect
github.com/googleapis/gax-go/v2 v2.14.0 // indirect
github.com/gorilla/handlers v1.5.2 // indirect
github.com/gorilla/mux v1.8.1 // indirect
github.com/gosuri/uitable v0.0.4 // indirect
@@ -157,7 +183,7 @@ require (
github.com/jonboulle/clockwork v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.17.9 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
github.com/lib/pq v1.10.9 // indirect
@@ -182,7 +208,7 @@ require (
github.com/otiai10/copy v1.14.1
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.59.1 // indirect
github.com/prometheus/common v0.60.1 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rubenv/sql-migrate v1.7.0 // indirect
@@ -195,24 +221,24 @@ require (
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
github.com/xlab/treeprint v1.2.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/otel v1.29.0 // indirect
go.opentelemetry.io/otel/metric v1.29.0 // indirect
go.opentelemetry.io/otel/trace v1.29.0 // indirect
go.opentelemetry.io/otel v1.32.0 // indirect
go.opentelemetry.io/otel/metric v1.32.0 // indirect
go.opentelemetry.io/otel/trace v1.32.0 // indirect
go.starlark.net v0.0.0-20240725214946-42030a7cedce // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/crypto v0.31.0 // indirect
golang.org/x/exp v0.0.0-20240823005443-9b4947da3948 // indirect
golang.org/x/net v0.33.0 // indirect
golang.org/x/oauth2 v0.22.0 // indirect
golang.org/x/oauth2 v0.24.0 // indirect
golang.org/x/sync v0.10.0 // indirect
golang.org/x/sys v0.28.0 // indirect
golang.org/x/term v0.27.0 // indirect
golang.org/x/time v0.9.0
golang.org/x/tools v0.28.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/api v0.195.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed // indirect
google.golang.org/grpc v1.66.3 // indirect
google.golang.org/api v0.210.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 // indirect
google.golang.org/grpc v1.68.1 // indirect
google.golang.org/protobuf v1.36.1 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
Loading