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

Ta update configs to enable mtls #3015

Open
wants to merge 93 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 76 commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
69b4c63
Initial commit
ItielOlenick May 13, 2024
684afbd
Added Cert Manager CRDs & RBAC validation and management
ItielOlenick Jun 1, 2024
50d568a
Added relevant resources and started adding tests
ItielOlenick Jun 5, 2024
61ba6fc
Bump github.com/gin-gonic/gin from 1.9.1 to 1.10.0 (#2953)
dependabot[bot] May 13, 2024
f67c7d1
Bump github.com/prometheus/prometheus in the prometheus group (#2951)
dependabot[bot] May 13, 2024
ef3e6a4
Support for collector readinessProbe (#2944)
janario May 13, 2024
62484ae
Bump github.com/docker/docker (#2954)
dependabot[bot] May 13, 2024
801ca16
Added new Log Enconder Config (#2927)
yuriolisa May 13, 2024
dfc7882
[chore] move VineethReddy02 to emeritus (#2957)
jpkrohling May 15, 2024
c2f569d
Cleanup cluster roles and bindings (#2938)
pavolloffay May 16, 2024
7fafce9
Fixed non-expected warnings on TA webhook. (#2962)
yuriolisa May 16, 2024
53c5046
Verify ServiceMonitor and PodMonitor are installed in prom cr availab…
akselleirv May 17, 2024
f0a2ba9
Bump kyverno/action-install-chainsaw from 0.2.0 to 0.2.1 (#2968)
dependabot[bot] May 20, 2024
b314e7f
Fix labels for Service Monitors (#2878)
iblancasa May 20, 2024
314d7c1
Prepare release 0.100.0 (#2960)
VineethReddy02 May 20, 2024
97495ec
[chore] Refactor allocation strategies (#2928)
swiatekm May 20, 2024
d1126a2
Bring back webhook port (#2973)
jaronoff97 May 20, 2024
435b900
patch 0.100.1 (#2974)
jaronoff97 May 20, 2024
2a9db5f
Update the OpenTelemetry Java agent version to 2.4.0 (#2967)
opentelemetrybot May 21, 2024
eaa4e63
simplify deletion logic (#2971)
jaronoff97 May 21, 2024
ac93c7e
Update maintainers in the operator hub PR (#2977)
pavolloffay May 21, 2024
1a731c9
Support for kubernetes 1.30 version (#2975)
vasireddy99 May 22, 2024
cfc1dc3
[chore] Move TargetAllocator CRD to v1alpha1 (#2918)
swiatekm May 22, 2024
cb7aaa8
[featuregate] Automatically set GOMEMLIMIT and GOMAXPROCS for collect…
jaronoff97 May 22, 2024
5326614
Fix querying OpenShift user workload monitoring stack. (#2984)
IshwarKanse May 23, 2024
a8f63a1
Bump alpine from 3.19 to 3.20 (#2990)
dependabot[bot] May 27, 2024
65d6c4f
Bump alpine from 3.19 to 3.20 in /cmd/operator-opamp-bridge (#2991)
dependabot[bot] May 27, 2024
307a6ba
Bump github.com/go-logr/logr from 1.4.1 to 1.4.2 (#2987)
dependabot[bot] May 27, 2024
8138afe
Bump kyverno/action-install-chainsaw from 0.2.1 to 0.2.2 (#2989)
dependabot[bot] May 27, 2024
cf26609
Bump the otel group with 5 updates (#2986)
dependabot[bot] May 28, 2024
5919733
Bump alpine from 3.19 to 3.20 in /cmd/otel-allocator (#2992)
dependabot[bot] May 28, 2024
fa40888
Keep multiple versions of Collector Config (#2946)
matthagenbuch May 28, 2024
c678e14
Prepare v0.101.0 release (#2994)
TylerHelmuth May 29, 2024
438773a
Add crd metrics usage information (#2825)
rubenvp8510 May 30, 2024
04d107c
Update selector documentation for Target Allocator (#3001)
swiatekm May 31, 2024
5e95eb7
Bump github.com/prometheus/prometheus in the prometheus group (#3004)
dependabot[bot] Jun 3, 2024
365ddf4
Bump kyverno/action-install-chainsaw from 0.2.2 to 0.2.3 (#3003)
dependabot[bot] Jun 3, 2024
bff19dc
Introduce simplified parsers (#2972)
jaronoff97 Jun 3, 2024
0a209c6
Bump go.opentelemetry.io/otel/exporters/prometheus in the otel group …
dependabot[bot] Jun 3, 2024
e14a3e7
Bump go.uber.org/zap from 1.26.0 to 1.27.0 (#3006)
dependabot[bot] Jun 3, 2024
8d5f5af
Update Kafka version in e2e test (#3009)
IshwarKanse Jun 4, 2024
028aa56
[chore] Bump opentelemetry-autoinstrumentation-python to 0.45b0 (#3000)
brandonkzw Jun 4, 2024
10c2575
Fix annotation/label filter setting (#3008)
jaronoff97 Jun 5, 2024
cb266f2
Added Cert Manager CRDs & RBAC validation and management
ItielOlenick Jun 1, 2024
c06c486
Added relevant resources and started adding tests
ItielOlenick Jun 5, 2024
1a39bf1
minor change
ItielOlenick Jun 6, 2024
8affdf2
Minor change
ItielOlenick Jun 6, 2024
446f570
minor change
ItielOlenick Jun 6, 2024
71614fc
Cleanup
ItielOlenick Jun 6, 2024
1078c9d
Cleanup, go tidy and resolved conflics
ItielOlenick Jun 6, 2024
eb0ad3d
Merge branch 'main' into TA-update-configs-to-enable-mtls
ItielOlenick Jun 6, 2024
85c7292
Restored local dev changes
ItielOlenick Jun 6, 2024
815c4d9
Refactored, removed init container, minor changes
ItielOlenick Jun 11, 2024
c7b23d9
Merge remote-tracking branch 'upstream/main' into TA-update-configs-t…
ItielOlenick Jun 11, 2024
2ab7e72
Use correct files in TLS config
ItielOlenick Jun 11, 2024
306f6f3
Added default value to getHttpsListenAddr
ItielOlenick Jun 11, 2024
a1c8dfb
Merge remote-tracking branch 'upstream/main' into TA-update-configs-t…
ItielOlenick Jun 13, 2024
9e1ae16
Added flag to enable mTLS between the Target Allocator and the Collec…
ItielOlenick Jun 13, 2024
caa497e
Using the enable mTLS flag
ItielOlenick Jun 13, 2024
a4aacec
Using feature gate in place of command line flags to enable the feature
ItielOlenick Jun 16, 2024
94363e0
Removed flag from manager yaml
ItielOlenick Jun 16, 2024
2ef561b
Added featuregate func description
ItielOlenick Jun 16, 2024
afdacb6
Initial unit/e2e tests. some cleanup
ItielOlenick Jul 4, 2024
0389c7c
Merged main
ItielOlenick Jul 4, 2024
c3eda01
Using TA params
ItielOlenick Jul 4, 2024
9c12441
Cleanup makefile from local changes
ItielOlenick Jul 4, 2024
bea9947
Added step to create cert manager RBAC for e2e mtls tests
ItielOlenick Jul 4, 2024
e4ff571
Using Kustomize for patching certmanager permissions
ItielOlenick Jul 4, 2024
612546e
Cleanup chainsaw test
ItielOlenick Jul 4, 2024
7dafe91
Cleanup chainsaw tests
ItielOlenick Jul 4, 2024
73d0ce9
e2e test case verifying Collector got secret from TA over mTLS
ItielOlenick Jul 5, 2024
c392952
Added changelog, fixed unit tests
ItielOlenick Jul 5, 2024
475a1e2
restored makefile
ItielOlenick Jul 5, 2024
e293a78
Renamed fg import
ItielOlenick Jul 5, 2024
71ca0c0
Linting rules for imports
ItielOlenick Jul 5, 2024
09bdf3c
Added more tests, updated the readme
ItielOlenick Jul 5, 2024
fd99776
Added steps in e2e tests for new app
ItielOlenick Jul 11, 2024
e239dcc
Merge remote-tracking branch 'upstream/main' into TA-update-configs-t…
ItielOlenick Aug 19, 2024
5410b44
Merge remote-tracking branch 'upstream/main' into TA-update-configs-t…
ItielOlenick Aug 29, 2024
4cd6b9d
Ran go mod tidy
ItielOlenick Aug 29, 2024
ca26b01
Added new variable to test TA's AddTAConfigToPromConfig
ItielOlenick Aug 29, 2024
0460197
Setting otel-col-contrib 0.108.0 in e2e test until operator gets updated
ItielOlenick Aug 30, 2024
e4bc208
Merge branch 'main' into TA-update-configs-to-enable-mtls
ItielOlenick Aug 30, 2024
4093554
Update pkg/featuregate/featuregate.go
ItielOlenick Aug 31, 2024
6f7f817
Added https, serviceMonitor and tls resources assertions to e2e tests
ItielOlenick Aug 31, 2024
80cd205
Using namespaced names for ClusterRoles
ItielOlenick Sep 2, 2024
06b1dfe
Cleanup
ItielOlenick Sep 2, 2024
e073de6
Added CertManager resources unit tests
ItielOlenick Sep 2, 2024
7e412ed
Added unit tests and e2e assertions
ItielOlenick Sep 3, 2024
17ff564
Added missing assertion call
ItielOlenick Sep 3, 2024
7a8e8dd
Update 00-install.yaml
ItielOlenick Sep 10, 2024
e39f354
Merge branch 'main' into TA-update-configs-to-enable-mtls
ItielOlenick Sep 10, 2024
e8f7ae2
Update pkg/featuregate/featuregate.go
ItielOlenick Sep 10, 2024
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
18 changes: 18 additions & 0 deletions .chloggen/TA-update-configs-to-enable-mtls.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: enhancement

# The name of the component, or a single word describing the area of concern, (e.g. collector, target allocator, auto-instrumentation, opamp, github action)
component: target allocator collector
ItielOlenick marked this conversation as resolved.
Show resolved Hide resolved

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: "Enable mTLS between the TA and collector for passing secrets in the scrape_config securely"

# One or more tracking issues related to the change
issues: [1669]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext: |
This change enables mTLS between the collector and the target allocator.
This is necessary for passing secrets securely from the TA to the collector for scraping endpoints that have authentication.
3 changes: 3 additions & 0 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,16 @@ jobs:
- e2e-upgrade
- e2e-multi-instrumentation
- e2e-metadata-filters
- e2e-ta-collector-mtls
include:
- group: e2e-instrumentation
setup: "add-instrumentation-params prepare-e2e"
- group: e2e-multi-instrumentation
setup: "add-multi-instrumentation-params prepare-e2e"
- group: e2e-metadata-filters
setup: "add-operator-arg OPERATOR_ARG='--annotations-filter=.*filter.out --annotations-filter=config.*.gke.io.* --labels=.*filter.out' prepare-e2e"
- group: e2e-ta-collector-mtls
setup: "add-operator-arg OPERATOR_ARG='--feature-gates=operator.targetallocator.mtls' add-certmanager-permissions prepare-e2e"
- group: e2e-automatic-rbac
setup: "add-rbac-permissions-to-operator prepare-e2e"
steps:
Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

# Binaries for programs and plugins
*.exe
*.exe~
Expand Down Expand Up @@ -39,8 +38,9 @@ config/manager/kustomization.yaml
kubeconfig
tests/_build/
config/rbac/extra-permissions-operator/
config/rbac/certmanager-permissions/

# autoinstrumentation artifacts
build
node_modules
package-lock.json
package-lock.json
12 changes: 12 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,18 @@ e2e-prometheuscr: chainsaw
e2e-targetallocator: chainsaw
$(CHAINSAW) test --test-dir ./tests/e2e-targetallocator

.PHONY: add-certmanager-permissions
add-certmanager-permissions:
# Kustomize only allows patches in the folder where the kustomization is located
# This folder is ignored by .gitignore
cp -r tests/e2e-ta-collector-mtls/certmanager-permissions config/rbac/certmanager-permissions
cd config/rbac && $(KUSTOMIZE) edit add patch --kind ClusterRole --name manager-role --path certmanager-permissions/certmanager.yaml

# Target allocator collector mTLS end-to-tests
.PHONY: e2e-ta-collector-mtls
e2e-ta-collector-mtls: chainsaw
$(CHAINSAW) test --test-dir ./tests/e2e-ta-collector-mtls

# end-to-end-test for Annotations/Labels Filters
.PHONY: e2e-metadata-filters
e2e-metadata-filters: chainsaw
Expand Down
37 changes: 35 additions & 2 deletions cmd/otel-allocator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,9 +211,42 @@ rules:

### Service / Pod monitor endpoint credentials

If your service or pod monitor endpoints require credentials or other supported form of authentication (bearer token, basic auth, OAuth2 etc.), you need to ensure that the collector has access to this information. Due to some limitations in how the endpoints configuration is handled, target allocator currently does **not** support credentials provided via secrets. It is only possible to provide credentials in a file (for more details see issue https://github.com/open-telemetry/opentelemetry-operator/issues/1669).
If your service or pod monitor endpoints require authentication (such as bearer tokens, basic auth, OAuth2, etc.), you must ensure that the collector has access to these credentials.

To secure the connection between the target allocator and the collector so that the secrets can be retrieved, mTLS is used. This involves the use of cert-manager to manage the CA, server, and client certificates.

Prerequisites:
- Ensure cert-manager is installed in your Kubernetes cluster.
- Grant RBAC Permissions:

- The target allocator needs the appropriate RBAC permissions to get the secrets referenced in the Service / Pod monitor.

- The operator needs the appropriate RBAC permissions to manage cert-manager resources. The following clusterRole can be used to grant the necessary permissions:

```yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: opentelemetry-operator-controller-manager-cert-manager-role
rules:
- apiGroups:
- cert-manager.io
resources:
- issuers
- certificaterequests
- certificates
verbs:
- create
- get
- list
- watch
- update
- patch
- delete
```

- Enable the `operator.targetallocator.mtls` feature gate in the operator's deployment.

In order to ensure your endpoints can be scraped, your collector instance needs to have the particular secret mounted as a file at the correct path.


# Design
Expand Down
25 changes: 15 additions & 10 deletions cmd/otel-allocator/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,29 +115,34 @@ func LoadFromCLI(target *Config, flagSet *pflag.FlagSet) error {
target.PrometheusCR.Enabled = prometheusCREnabled
}

target.HTTPS.Enabled, err = getHttpsEnabled(flagSet)
if err != nil {
if httpsEnabled, changed, err := getHttpsEnabled(flagSet); err != nil {
swiatekm marked this conversation as resolved.
Show resolved Hide resolved
return err
} else if changed {
target.HTTPS.Enabled = httpsEnabled
}

target.HTTPS.ListenAddr, err = getHttpsListenAddr(flagSet)
if err != nil {
if listenAddrHttps, changed, err := getHttpsListenAddr(flagSet); err != nil {
return err
} else if changed {
target.HTTPS.ListenAddr = listenAddrHttps
}

target.HTTPS.CAFilePath, err = getHttpsCAFilePath(flagSet)
if err != nil {
if caFilePath, changed, err := getHttpsCAFilePath(flagSet); err != nil {
return err
} else if changed {
target.HTTPS.CAFilePath = caFilePath
}

target.HTTPS.TLSCertFilePath, err = getHttpsTLSCertFilePath(flagSet)
if err != nil {
if tlsCertFilePath, changed, err := getHttpsTLSCertFilePath(flagSet); err != nil {
return err
} else if changed {
target.HTTPS.TLSCertFilePath = tlsCertFilePath
}

target.HTTPS.TLSKeyFilePath, err = getHttpsTLSKeyFilePath(flagSet)
if err != nil {
if tlsKeyFilePath, changed, err := getHttpsTLSKeyFilePath(flagSet); err != nil {
return err
} else if changed {
target.HTTPS.TLSKeyFilePath = tlsKeyFilePath
}

return nil
Expand Down
1 change: 1 addition & 0 deletions cmd/otel-allocator/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ func TestLoad(t *testing.T) {
},
HTTPS: HTTPSServerConfig{
Enabled: true,
ListenAddr: ":8443",
CAFilePath: "/path/to/ca.pem",
TLSCertFilePath: "/path/to/cert.pem",
TLSKeyFilePath: "/path/to/key.pem",
Expand Down
45 changes: 35 additions & 10 deletions cmd/otel-allocator/config/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,22 +78,47 @@ func getPrometheusCREnabled(flagSet *pflag.FlagSet) (value bool, changed bool, e
return
}

func getHttpsListenAddr(flagSet *pflag.FlagSet) (string, error) {
return flagSet.GetString(listenAddrHttpsFlagName)
func getHttpsListenAddr(flagSet *pflag.FlagSet) (value string, changed bool, err error) {
if changed = flagSet.Changed(listenAddrHttpsFlagName); !changed {
swiatekm marked this conversation as resolved.
Show resolved Hide resolved
value, err = ":8443", nil
return
}
value, err = flagSet.GetString(listenAddrHttpsFlagName)
return
}

func getHttpsEnabled(flagSet *pflag.FlagSet) (bool, error) {
return flagSet.GetBool(httpsEnabledFlagName)
func getHttpsEnabled(flagSet *pflag.FlagSet) (value bool, changed bool, err error) {
if changed = flagSet.Changed(httpsEnabledFlagName); !changed {
value, err = false, nil
return
}
value, err = flagSet.GetBool(httpsEnabledFlagName)
return
}

func getHttpsCAFilePath(flagSet *pflag.FlagSet) (string, error) {
return flagSet.GetString(httpsCAFilePathFlagName)
func getHttpsCAFilePath(flagSet *pflag.FlagSet) (value string, changed bool, err error) {
if changed = flagSet.Changed(httpsCAFilePathFlagName); !changed {
value, err = "", nil
return
}
value, err = flagSet.GetString(httpsCAFilePathFlagName)
return
}

func getHttpsTLSCertFilePath(flagSet *pflag.FlagSet) (string, error) {
return flagSet.GetString(httpsTLSCertFilePathFlagName)
func getHttpsTLSCertFilePath(flagSet *pflag.FlagSet) (value string, changed bool, err error) {
if changed = flagSet.Changed(httpsTLSCertFilePathFlagName); !changed {
value, err = "", nil
return
}
value, err = flagSet.GetString(httpsTLSCertFilePathFlagName)
return
}

func getHttpsTLSKeyFilePath(flagSet *pflag.FlagSet) (string, error) {
return flagSet.GetString(httpsTLSKeyFilePathFlagName)
func getHttpsTLSKeyFilePath(flagSet *pflag.FlagSet) (value string, changed bool, err error) {
if changed = flagSet.Changed(httpsTLSKeyFilePathFlagName); !changed {
value, err = "", nil
return
}
value, err = flagSet.GetString(httpsTLSKeyFilePathFlagName)
return
}
10 changes: 8 additions & 2 deletions cmd/otel-allocator/config/flags_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,19 @@ func TestFlagGetters(t *testing.T) {
name: "HttpsServer",
flagArgs: []string{"--" + httpsEnabledFlagName, "true"},
expectedValue: true,
getterFunc: func(fs *pflag.FlagSet) (interface{}, error) { return getHttpsEnabled(fs) },
getterFunc: func(fs *pflag.FlagSet) (interface{}, error) {
value, _, err := getHttpsEnabled(fs)
return value, err
},
},
{
name: "HttpsServerKey",
flagArgs: []string{"--" + httpsTLSKeyFilePathFlagName, "/path/to/tls.key"},
expectedValue: "/path/to/tls.key",
getterFunc: func(fs *pflag.FlagSet) (interface{}, error) { return getHttpsTLSKeyFilePath(fs) },
getterFunc: func(fs *pflag.FlagSet) (interface{}, error) {
value, _, err := getHttpsTLSKeyFilePath(fs)
return value, err
},
},
}

Expand Down
1 change: 1 addition & 0 deletions cmd/otel-allocator/config/testdata/config_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ prometheus_cr:
scrape_interval: 60s
https:
enabled: true
listen_addr: :8443
ca_file_path: /path/to/ca.pem
tls_cert_file_path: /path/to/cert.pem
tls_key_file_path: /path/to/key.pem
Expand Down
9 changes: 9 additions & 0 deletions controllers/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ import (
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
"github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
"github.com/open-telemetry/opentelemetry-operator/internal/autodetect"
"github.com/open-telemetry/opentelemetry-operator/internal/autodetect/certmanager"
"github.com/open-telemetry/opentelemetry-operator/internal/autodetect/openshift"
"github.com/open-telemetry/opentelemetry-operator/internal/autodetect/prometheus"
autoRBAC "github.com/open-telemetry/opentelemetry-operator/internal/autodetect/rbac"
Expand Down Expand Up @@ -99,6 +100,7 @@ type mockAutoDetect struct {
OpenShiftRoutesAvailabilityFunc func() (openshift.RoutesAvailability, error)
PrometheusCRsAvailabilityFunc func() (prometheus.Availability, error)
RBACPermissionsFunc func(ctx context.Context) (autoRBAC.Availability, error)
CertManagerAvailabilityFunc func(ctx context.Context) (certmanager.Availability, error)
}

func (m *mockAutoDetect) PrometheusCRsAvailability() (prometheus.Availability, error) {
Expand All @@ -122,6 +124,13 @@ func (m *mockAutoDetect) RBACPermissions(ctx context.Context) (autoRBAC.Availabi
return autoRBAC.NotAvailable, nil
}

func (m *mockAutoDetect) CertManagerAvailability(ctx context.Context) (certmanager.Availability, error) {
if m.CertManagerAvailabilityFunc != nil {
return m.CertManagerAvailabilityFunc(ctx)
}
return certmanager.NotAvailable, nil
}

func TestMain(m *testing.M) {
ctx, cancel = context.WithCancel(context.TODO())
defer cancel()
Expand Down
9 changes: 6 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ require (
sigs.k8s.io/yaml v1.4.0
)

require sigs.k8s.io/gateway-api v1.0.0 // indirect
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this not in the other require block?


require (
cloud.google.com/go/auth v0.5.1 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect
Expand All @@ -73,6 +75,7 @@ require (
github.com/bytedance/sonic v1.11.6 // indirect
github.com/bytedance/sonic/loader v0.1.1 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cert-manager/cert-manager v1.14.5
github.com/cloudwego/base64x v0.1.4 // indirect
github.com/cloudwego/iasm v0.2.0 // indirect
github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50 // indirect
Expand Down Expand Up @@ -149,7 +152,7 @@ require (
github.com/imdario/mergo v0.3.16 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/ionos-cloud/sdk-go/v6 v6.1.11 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/jmespath/go-jmespath v0.4.1-0.20220621161143-b0104c826a24 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/jpillora/backoff v1.0.0 // indirect
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
Expand Down Expand Up @@ -183,13 +186,13 @@ require (
github.com/prometheus/common/sigv4 v0.1.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.27 // indirect
github.com/spf13/cobra v1.7.0 // indirect
github.com/spf13/cobra v1.8.0 // indirect
github.com/tklauser/go-sysconf v0.3.13 // indirect
github.com/tklauser/numcpus v0.7.0 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.12 // indirect
github.com/vultr/govultr/v2 v2.17.2 // indirect
github.com/yusufpapurcu/wmi v1.2.3 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
go.mongodb.org/mongo-driver v1.14.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect
Expand Down
17 changes: 11 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@ github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cert-manager/cert-manager v1.14.5 h1:uuM1O2g2S80nxiH3eW2cZYMGiL2zmDFVdAzg8sibWuc=
github.com/cert-manager/cert-manager v1.14.5/go.mod h1:fmr/cU5jiLxWj69CroDggSOa49RljUK+dU583TaQUXM=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
Expand All @@ -121,7 +123,7 @@ github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50 h1:DBmgJDC9dTfkVyGgipa
github.com/cncf/xds/go v0.0.0-20240318125728-8a4994d93e50/go.mod h1:5e1+Vvlzido69INQaVO6d87Qn543Xr6nooe9Kz7oBFM=
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
Expand Down Expand Up @@ -393,8 +395,9 @@ github.com/ionos-cloud/sdk-go/v6 v6.1.11 h1:J/uRN4UWO3wCyGOeDdMKv8LWRzKu6UIkLEae
github.com/ionos-cloud/sdk-go/v6 v6.1.11/go.mod h1:EzEgRIDxBELvfoa/uBN0kOQaqovLjUWEB7iW4/Q+t4k=
github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww=
github.com/jarcoal/httpmock v1.3.1/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg=
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/jmespath/go-jmespath v0.4.1-0.20220621161143-b0104c826a24 h1:liMMTbpW34dhU4az1GN0pTPADwNmvoRSeoZ6PItiqnY=
github.com/jmespath/go-jmespath v0.4.1-0.20220621161143-b0104c826a24/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
Expand Down Expand Up @@ -590,8 +593,8 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
Expand Down Expand Up @@ -628,8 +631,8 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw=
github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80=
go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
Expand Down Expand Up @@ -1069,6 +1072,8 @@ 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/controller-runtime v0.18.4 h1:87+guW1zhvuPLh1PHybKdYFLU0YJp4FhJRmiHvm5BZw=
sigs.k8s.io/controller-runtime v0.18.4/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg=
sigs.k8s.io/gateway-api v1.0.0 h1:iPTStSv41+d9p0xFydll6d7f7MOBGuqXM6p2/zVYMAs=
sigs.k8s.io/gateway-api v1.0.0/go.mod h1:4cUgr0Lnp5FZ0Cdq8FdRwCvpiWws7LVhLHGIudLlf4c=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
Expand Down
Loading
Loading