From 8158fa98b3f2692e6d44e1df415fa12db90d49e1 Mon Sep 17 00:00:00 2001 From: Bence Csati Date: Tue, 3 Dec 2024 15:05:06 +0100 Subject: [PATCH 1/7] feat: add migration solution to use telemetry-controller Signed-off-by: Bence Csati --- charts/logging-operator/Chart.lock | 9 + charts/logging-operator/Chart.yaml | 4 + charts/logging-operator/README.md | 1 + ...xtensions.banzaicloud.io_eventtailers.yaml | 3 + .../logging.banzaicloud.io_loggings.yaml | 14 ++ .../charts/telemetry-controller-0.0.13.tgz | Bin 0 -> 156553 bytes ...xtensions.banzaicloud.io_eventtailers.yaml | 3 + .../crds/logging.banzaicloud.io_loggings.yaml | 14 ++ .../templates/clusterrole.yaml | 16 ++ charts/logging-operator/values.yaml | 5 + ...xtensions.banzaicloud.io_eventtailers.yaml | 3 + .../logging.banzaicloud.io_loggings.yaml | 14 ++ config/rbac/role.yaml | 16 ++ .../telemetry_controller_controller.go | 184 ++++++++++++++++++ .../crds/v1beta1/logging_types.md | 23 +++ go.mod | 71 +++---- go.sum | 156 ++++++++------- go.work | 4 +- main.go | 16 +- pkg/resources/fluentbit/tenants.go | 3 + .../telemetry-controller/resources.go | 147 ++++++++++++++ .../api/v1alpha1/eventtailer_types.go | 3 +- pkg/sdk/logging/api/v1beta1/logging_types.go | 24 +++ .../api/v1beta1/zz_generated.deepcopy.go | 27 +++ 24 files changed, 639 insertions(+), 121 deletions(-) create mode 100644 charts/logging-operator/Chart.lock create mode 100644 charts/logging-operator/charts/telemetry-controller-0.0.13.tgz create mode 100644 controllers/logging/telemetry_controller_controller.go create mode 100644 pkg/resources/telemetry-controller/resources.go diff --git a/charts/logging-operator/Chart.lock b/charts/logging-operator/Chart.lock new file mode 100644 index 000000000..ef3051f4d --- /dev/null +++ b/charts/logging-operator/Chart.lock @@ -0,0 +1,9 @@ +dependencies: +- name: logging-operator-crds + repository: "" + version: 0.0.0 +- name: telemetry-controller + repository: oci://ghcr.io/kube-logging/helm-charts + version: 0.0.13 +digest: sha256:e760bc606b1ce484a13b0382a6c67e6b5511066c02b5296759f64d4f7ee50ef0 +generated: "2024-12-06T09:31:12.29452+01:00" diff --git a/charts/logging-operator/Chart.yaml b/charts/logging-operator/Chart.yaml index f31cef473..ca7539991 100644 --- a/charts/logging-operator/Chart.yaml +++ b/charts/logging-operator/Chart.yaml @@ -17,3 +17,7 @@ dependencies: - name: logging-operator-crds version: 0.0.0 condition: logging-operator-crds.install + - name: telemetry-controller + version: 0.0.13 + repository: oci://ghcr.io/kube-logging/helm-charts + condition: telemetry-controller.install diff --git a/charts/logging-operator/README.md b/charts/logging-operator/README.md index 229547039..19e3c1e23 100644 --- a/charts/logging-operator/README.md +++ b/charts/logging-operator/README.md @@ -50,6 +50,7 @@ Use `createCustomResource=false` with Helm v3 to avoid trying to create CRDs fro | createCustomResource | bool | `false` | Deploy CRDs used by Logging Operator. | | logging-operator-crds.install | bool | `false` | Toggle to install and upgrade CRDs from a subchart. Make sure to use it with `--skip-crds` to avoid conflicts. [More info about limitations on CRDs in Helm 3](https://helm.sh/docs/topics/charts/#limitations-on-crds) | | logging-operator-crds.annotations | object | `{}` | Annotations to be added to all CRDs | +| telemetry-controller.install | bool | `false` | Toggle to install and upgrade Telemetry Controller from a subchart. | | http.port | int | `8080` | HTTP listen port number. | | http.service | object | `{"annotations":{},"clusterIP":"None","labels":{},"type":"ClusterIP"}` | Service definition for query http service. | | rbac.enabled | bool | `true` | Create rbac service account and roles. | diff --git a/charts/logging-operator/charts/logging-operator-crds/templates/logging-extensions.banzaicloud.io_eventtailers.yaml b/charts/logging-operator/charts/logging-operator-crds/templates/logging-extensions.banzaicloud.io_eventtailers.yaml index c948cc5cf..903d50ee9 100644 --- a/charts/logging-operator/charts/logging-operator-crds/templates/logging-extensions.banzaicloud.io_eventtailers.yaml +++ b/charts/logging-operator/charts/logging-operator-crds/templates/logging-extensions.banzaicloud.io_eventtailers.yaml @@ -333,6 +333,9 @@ spec: type: object controlNamespace: type: string + x-kubernetes-validations: + - message: Value is immutable, please recreate the resource + rule: self == oldSelf image: properties: imagePullSecrets: diff --git a/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_loggings.yaml b/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_loggings.yaml index f73a3a777..66caf6f99 100644 --- a/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_loggings.yaml +++ b/charts/logging-operator/charts/logging-operator-crds/templates/logging.banzaicloud.io_loggings.yaml @@ -84,6 +84,9 @@ spec: type: object controlNamespace: type: string + x-kubernetes-validations: + - message: Value is immutable, please recreate the resource + rule: self == oldSelf defaultFlow: properties: filters: @@ -12597,6 +12600,17 @@ spec: type: string type: object type: array + routeConfig: + properties: + disableLoggingRoute: + type: boolean + enableTelemetryControllerRoute: + type: boolean + tenantLabels: + additionalProperties: + type: string + type: object + type: object skipInvalidResources: type: boolean syslogNG: diff --git a/charts/logging-operator/charts/telemetry-controller-0.0.13.tgz b/charts/logging-operator/charts/telemetry-controller-0.0.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ecd355e6faf2256b5d1197f31bd6298beca06b3c GIT binary patch literal 156553 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 aoX-OU2oT_C;Qt2z0RR6jU5T0iwjBU=%A0He diff --git a/hack/test.sh b/hack/test.sh index e1a2bdea6..e16cd5104 100755 --- a/hack/test.sh +++ b/hack/test.sh @@ -28,13 +28,15 @@ function load_images() function helm_deploy_logging_operator() { + local chart_dir="charts/logging-operator" + helm dependency update "${chart_dir}" helm upgrade --install \ --debug \ --wait \ --create-namespace \ -f hack/values.yaml \ logging-operator \ - "charts/logging-operator" + "${chart_dir}" } function get_test_pod_name() From 26d3ee2d6694800cf364121f150f5e2e68fb8441 Mon Sep 17 00:00:00 2001 From: Bence Csati Date: Wed, 11 Dec 2024 10:49:10 +0100 Subject: [PATCH 3/7] chore: tc bump and changes Signed-off-by: Bence Csati --- charts/logging-operator/Chart.lock | 6 +- charts/logging-operator/Chart.yaml | 2 +- go.mod | 14 +- go.sum | 190 +++++++++++++++++- .../telemetry-controller/resources.go | 25 ++- 5 files changed, 219 insertions(+), 18 deletions(-) diff --git a/charts/logging-operator/Chart.lock b/charts/logging-operator/Chart.lock index ef3051f4d..23864ef35 100644 --- a/charts/logging-operator/Chart.lock +++ b/charts/logging-operator/Chart.lock @@ -4,6 +4,6 @@ dependencies: version: 0.0.0 - name: telemetry-controller repository: oci://ghcr.io/kube-logging/helm-charts - version: 0.0.13 -digest: sha256:e760bc606b1ce484a13b0382a6c67e6b5511066c02b5296759f64d4f7ee50ef0 -generated: "2024-12-06T09:31:12.29452+01:00" + version: 0.0.14-dev5 +digest: sha256:5531289f2326888b97c64bd1af4652a4656cfab7e12f8719343471a70b99e661 +generated: "2024-12-13T11:47:32.933261+01:00" diff --git a/charts/logging-operator/Chart.yaml b/charts/logging-operator/Chart.yaml index ca7539991..645a98c23 100644 --- a/charts/logging-operator/Chart.yaml +++ b/charts/logging-operator/Chart.yaml @@ -18,6 +18,6 @@ dependencies: version: 0.0.0 condition: logging-operator-crds.install - name: telemetry-controller - version: 0.0.13 + version: "0.0.14-dev5" repository: oci://ghcr.io/kube-logging/helm-charts condition: telemetry-controller.install diff --git a/go.mod b/go.mod index 0e75e3e05..78e465ee9 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/go-logr/logr v1.4.2 github.com/kube-logging/logging-operator/pkg/sdk v0.11.0 github.com/kube-logging/logging-operator/pkg/sdk/logging/model/syslogng/config v0.0.0 - github.com/kube-logging/telemetry-controller v0.0.0-20241205150407-8e64c0e0ca6a + github.com/kube-logging/telemetry-controller v0.0.0-20241211124618-b4f40aba29db github.com/onsi/ginkgo v1.16.5 github.com/onsi/gomega v1.36.0 github.com/pborman/uuid v1.2.1 @@ -29,6 +29,7 @@ require ( ) require ( + dario.cat/mergo v1.0.1 // indirect github.com/Masterminds/semver/v3 v3.3.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/briandowns/spinner v1.23.1 // indirect @@ -42,6 +43,7 @@ require ( github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/zapr v1.3.0 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect @@ -53,6 +55,7 @@ require ( github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect github.com/iancoleman/orderedmap v0.3.0 // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -61,10 +64,12 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/nxadm/tail v1.4.8 // indirect + github.com/open-telemetry/opentelemetry-operator v0.114.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.1 // indirect @@ -76,6 +81,13 @@ require ( github.com/x448/float16 v0.8.4 // indirect go.opentelemetry.io/collector/config/configcompression v1.21.0 // indirect go.opentelemetry.io/collector/config/configopaque v1.21.0 // indirect + go.opentelemetry.io/collector/featuregate v1.21.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.54.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/net v0.32.0 // indirect diff --git a/go.sum b/go.sum index 2dd118b3b..cabe259b9 100644 --- a/go.sum +++ b/go.sum @@ -1,35 +1,85 @@ +cloud.google.com/go/auth v0.9.4 h1:DxF7imbEbiFu9+zdKC6cKBko1e8XeJnipNqIbWZ+kDI= +cloud.google.com/go/auth v0.9.4/go.mod h1:SHia8n6//Ya940F1rLimhJCjjx7KE17t0ctFEci3HkA= +cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= +cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= +cloud.google.com/go/compute/metadata v0.5.1 h1:NM6oZeZNlYjiwYje+sYFjEpP0Q0zCan1bmQW/KmIrGs= +cloud.google.com/go/compute/metadata v0.5.1/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= +dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= +dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= emperror.dev/errors v0.8.1 h1:UavXZ5cSX/4u9iyvH6aDcuGkVjeexUGJ7Ij7G4VfQT0= emperror.dev/errors v0.8.1/go.mod h1:YcRvLPh626Ubn2xqtoprejnA5nFha+TJ+2vew48kWuE= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 h1:nyQWyZvwGTvunIMxi1Y9uXkcyr+I7TeNrr/foo4Kpk8= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 h1:LkHbJbgF3YyvC53aqYGR+wWQDn2Rdp9AQdGndf9QvY4= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0/go.mod h1:QyiQdW4f4/BIfB8ZutZ2s+28RAgfa/pT+zS++ZHyM1I= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 h1:bXwSugBiSbgtz7rOtbfGf+woewp4f06orW9OP5BjHLA= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0/go.mod h1:Y/HgrePTmGy9HjdSGTqZNa+apUpTVIEVKXJyARP2lrk= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= +github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30 h1:t3eaIm0rUkzbrIewtiFmMK5RXHej2XnoXNhxVsAYUfg= +github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30/go.mod h1:fvzegU4vN3H1qMT+8wDmzjAcDONcgo2/SZ/TyfdUOFs= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= +github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= +github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/briandowns/spinner v1.23.1 h1:t5fDPmScwUjozhDj4FA46p5acZWIPXYE30qW2Ptu650= github.com/briandowns/spinner v1.23.1/go.mod h1:LaZeM4wm2Ywy6vO571mvhQNRcWfRUnXOs0RcKV0wYKM= +github.com/cert-manager/cert-manager v1.16.2 h1:c9UU2E+8XWGruyvC/mdpc1wuLddtgmNr8foKdP7a8Jg= +github.com/cert-manager/cert-manager v1.16.2/go.mod h1:MfLVTL45hFZsqmaT1O0+b2ugaNNQQZttSFV9hASHUb0= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cisco-open/k8s-objectmatcher v1.10.0 h1:1TdhMPqVaU+NqECqytAkRF1SFU0QIMqrqbNTnTl933A= github.com/cisco-open/k8s-objectmatcher v1.10.0/go.mod h1:O/TFG3vW12jbKNQejpc8SGgSfujlaWYIOCZHcXeK514= github.com/cisco-open/operator-tools v0.37.0 h1:qAkAbWQA+aeWHZOqpWL8FuiZ42cWWUZ0OmWfr3TBeGw= github.com/cisco-open/operator-tools v0.37.0/go.mod h1:SaMi2aMNILC5Wrqw9m92ptN5InMH2Zt3CSKkGlzyqfQ= +github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20 h1:N+3sFI5GUjRKBi+i0TxYVST9h4Ie192jJWpHvthBBgg= +github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/cppforlife/go-patch v0.2.0 h1:Y14MnCQjDlbw7WXT4k+u6DPAA9XnygN4BfrSpI/19RU= github.com/cppforlife/go-patch v0.2.0/go.mod h1:67a7aIi94FHDZdoeGSJRRFDp66l9MhaAG1yGxpUoFD8= 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= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/digitalocean/godo v1.125.0 h1:wGPBQRX9Wjo0qCF0o8d25mT3A84Iw8rfHnZOPyvHcMQ= +github.com/digitalocean/godo v1.125.0/go.mod h1:PU8JB6I1XYkQIdHFop8lLAY9ojp6M0XcU0TWaQSxbrc= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v27.2.0+incompatible h1:Rk9nIVdfH3+Vz4cyI/uhbINhEZ/oLmc+CBXmH6fbNk4= +github.com/docker/docker v27.2.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/envoyproxy/go-control-plane v0.13.0 h1:HzkeUz1Knt+3bK+8LG1bxOO/jzWZmdxpwC51i202les= +github.com/envoyproxy/go-control-plane v0.13.0/go.mod h1:GRaKG3dwvFoTg4nj7aXdZnvMg4d7nvT/wl9WgVXn3Q8= +github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= +github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg= github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -38,8 +88,15 @@ github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/ github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= +github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= @@ -48,14 +105,20 @@ github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U= github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= +github.com/go-zookeeper/zk v1.0.3 h1:7M2kwOsc//9VeeFiPtf+uSJlVpU66x9Ba5+8XK7/TDg= +github.com/go-zookeeper/zk v1.0.3/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= +github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -75,27 +138,77 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= +github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= +github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= +github.com/gophercloud/gophercloud v1.14.0 h1:Bt9zQDhPrbd4qX7EILGmy+i7GP35cc+AAL2+wIJpUE8= +github.com/gophercloud/gophercloud v1.14.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc h1:GN2Lv3MGO7AS6PrRoT6yV5+wkrOpcszoIsO4+4ds248= +github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= +github.com/hashicorp/consul/api v1.29.4 h1:P6slzxDLBOxUSj3fWo2o65VuKtbtOXFi7TSSgtXutuE= +github.com/hashicorp/consul/api v1.29.4/go.mod h1:HUlfw+l2Zy68ceJavv2zAyArl2fqhGWnMycyt56sBgg= +github.com/hashicorp/cronexpr v1.1.2 h1:wG/ZYIKT+RT3QkOdgYc+xsKWVRgnxJ1OJtjjy84fJ9A= +github.com/hashicorp/cronexpr v1.1.2/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= +github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= +github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= +github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= +github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4= +github.com/hashicorp/golang-lru v0.6.0/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3 h1:fgVfQ4AC1avVOnu2cfms8VAiD8lUq3vWI8mTocOXN/w= +github.com/hashicorp/nomad/api v0.0.0-20240717122358-3d93bd3778f3/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= +github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= +github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= +github.com/hetznercloud/hcloud-go/v2 v2.13.1 h1:jq0GP4QaYE5d8xR/Zw17s9qoaESRJMXfGmtD1a/qckQ= +github.com/hetznercloud/hcloud-go/v2 v2.13.1/go.mod h1:dhix40Br3fDiBhwaSG/zgaYOFFddpfBm/6R1Zz0IiF0= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc= github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJDkXXS7VoV7XGE= github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/ionos-cloud/sdk-go/v6 v6.2.1 h1:mxxN+frNVmbFrmmFfXnBC3g2USYJrl6mc1LW2iNYbFY= +github.com/ionos-cloud/sdk-go/v6 v6.2.1/go.mod h1:SXrO9OGyWjd2rZhAhEpdYN6VUAODzzqRdqA9BCviQtI= +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/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b h1:udzkj9S/zlT5X367kqJis0QP7YMxobob6zhzq6Yre00= +github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -103,10 +216,12 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kube-logging/telemetry-controller v0.0.0-20241205150407-8e64c0e0ca6a h1:dSO8iAZkDPsGOmKk/ZCYkTYxkSWynCy5GkJcJGgBQxY= -github.com/kube-logging/telemetry-controller v0.0.0-20241205150407-8e64c0e0ca6a/go.mod h1:IYFH6OWWdKPskUDXfE9x6iF0aXErG++yTQpuGga4ulE= +github.com/kube-logging/telemetry-controller v0.0.0-20241211124618-b4f40aba29db h1:m/X61DCo3ljx/0qIlrEhjABE8AaCpMcNQOMXK2MCMmM= +github.com/kube-logging/telemetry-controller v0.0.0-20241211124618-b4f40aba29db/go.mod h1:FY/uC3VVXBhaJvInLuz7OEWU7vzkznT/iWuumUirkjs= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/linode/linodego v1.40.0 h1:7ESY0PwK94hoggoCtIroT1Xk6b1flrFBNZ6KwqbTqlI= +github.com/linode/linodego v1.40.0/go.mod h1:NsUw4l8QrLdIofRg1NYFBbW5ZERnmbZykVBszPZLORM= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= @@ -114,6 +229,14 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= +github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= +github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -121,6 +244,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -134,10 +259,26 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.36.0 h1:Pb12RlruUtj4XUuPUqeEWc6j5DkVVVA49Uf6YLfC95Y= github.com/onsi/gomega v1.36.0/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/open-telemetry/opentelemetry-operator v0.114.0 h1:3TBgSSOSbPqcw/mR0cYUXJREYcqsW0cBg4T1GgHUfTQ= +github.com/open-telemetry/opentelemetry-operator v0.114.0/go.mod h1:KoXlAWiOYftXKy2qJG7Yffeg87cS8yVfQwYCTtHDvhY= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/openshift/api v0.0.0-20240124164020-e2ce40831f2e h1:cxgCNo/R769CO23AK5TCh45H9SMUGZ8RukiF2/Qif3o= +github.com/openshift/api v0.0.0-20240124164020-e2ce40831f2e/go.mod h1:CxgbWAlvu2iQB0UmKTtRu1YfepRg1/vJ64n2DlIEVz4= +github.com/operator-framework/operator-lib v0.15.0 h1:0QeRM4PMtThqINpcFGCEBnIV3Z8u7/8fYLEx6mUtdcM= +github.com/operator-framework/operator-lib v0.15.0/go.mod h1:ZxLvFuQ7bRWiTNBOqodbuNvcsy/Iq0kOygdxhlbNdI0= +github.com/ovh/go-ovh v1.6.0 h1:ixLOwxQdzYDx296sXcgS35TOPEahJkpjMGtzPadCjQI= +github.com/ovh/go-ovh v1.6.0/go.mod h1:cTVDnl94z4tl8pP1uZ/8jlVxntjSIf09bNcQ5TJSC7c= github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw= github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -149,10 +290,16 @@ github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= +github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4= +github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/prometheus v0.55.1 h1:+NM9V/h4A+wRkOyQzGewzgPPgq/iX2LUQoISNvmjZmI= +github.com/prometheus/prometheus v0.55.1/go.mod h1:GGS7QlWKCqCbcEzWsVahYIfQwiGhcExkarHyLJTsv6I= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30 h1:yoKAVkEVwAqbGbR8n87rHQ1dulL25rKloGadb3vm770= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30/go.mod h1:sH0u6fq6x4R5M7WxkoQFY/o7UaiItec0o1LinLCJNq8= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/siliconbrain/go-seqs v0.13.0 h1:3xvOlPDs4FB/XZzmagMU/DTTbHhLcEVPsjauKHsT990= @@ -167,16 +314,36 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/vultr/govultr/v2 v2.17.2 h1:gej/rwr91Puc/tgh+j33p/BLR16UrIPnSr+AIwYWZQs= +github.com/vultr/govultr/v2 v2.17.2/go.mod h1:ZFOKGWmgjytfyjeyAdhQlSWwTjh2ig+X49cAp50dzXI= github.com/wayneashleyberry/terminal-dimensions v1.1.0 h1:EB7cIzBdsOzAgmhTUtTTQXBByuPheP/Zv1zL2BRPY6g= github.com/wayneashleyberry/terminal-dimensions v1.1.0/go.mod h1:2lc/0eWCObmhRczn2SdGSQtgBooLUzIotkkEGXqghyg= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/collector/config/configcompression v1.21.0 h1:0zbPdZAgPFMAarwJEC4gaR6f/JBP686A3TYSgb3oa+E= go.opentelemetry.io/collector/config/configcompression v1.21.0/go.mod h1:LvYG00tbPTv0NOLoZN0wXq1F5thcxvukO8INq7xyfWU= go.opentelemetry.io/collector/config/configopaque v1.21.0 h1:PcvRGkBk4Px8BQM7tX+kw4i3jBsfAHGoGQbtZg6Ox7U= go.opentelemetry.io/collector/config/configopaque v1.21.0/go.mod h1:sW0t0iI/VfRL9VYX7Ik6XzVgPcR+Y5kejTLsYcMyDWs= +go.opentelemetry.io/collector/featuregate v1.21.0 h1:+EULHPJDLMipcwAGZVp9Nm8NriRvoBBMxp7MSiIZVMI= +go.opentelemetry.io/collector/featuregate v1.21.0/go.mod h1:3GaXqflNDVwWndNGBJ1+XJFy3Fv/XrFgjMN60N3z7yg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU= +go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= @@ -188,10 +355,14 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= +golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d h1:0olWaB5pg3+oychR51GUVCEsGkeCU/2JxjBgIo4f3M0= golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -206,6 +377,8 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -240,6 +413,15 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= +google.golang.org/api v0.198.0 h1:OOH5fZatk57iN0A7tjJQzt6aPfYQ1JiWkt1yGseazks= +google.golang.org/api v0.198.0/go.mod h1:/Lblzl3/Xqqk9hw/yS97TImKTUwnf1bv89v7+OagJzc= +google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 h1:XVhgTWWV3kGQlwJHR3upFWZeTsei6Oks1apkZSeonIE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -257,6 +439,8 @@ gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWM gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -282,6 +466,8 @@ k8s.io/utils v0.0.0-20241104163129-6fe5fd82f078 h1:jGnCPejIetjiy2gqaJ5V0NLwTpF4w k8s.io/utils v0.0.0-20241104163129-6fe5fd82f078/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/controller-runtime v0.19.3 h1:XO2GvC9OPftRst6xWCpTgBZO04S2cbp0Qqkj8bX1sPw= sigs.k8s.io/controller-runtime v0.19.3/go.mod h1:j4j87DqtsThvwTv5/Tc5NFRyyF/RF0ip4+62tbTSIUM= +sigs.k8s.io/gateway-api v1.1.0 h1:DsLDXCi6jR+Xz8/xd0Z1PYl2Pn0TyaFMOPPZIj4inDM= +sigs.k8s.io/gateway-api v1.1.0/go.mod h1:ZH4lHrL2sDi0FHZ9jjneb8kKnGzFWyrTya35sWUTrRs= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/structured-merge-diff/v4 v4.4.3 h1:sCP7Vv3xx/CWIuTPVN38lUPx0uw0lcLfzaiDa8Ja01A= diff --git a/pkg/resources/telemetry-controller/resources.go b/pkg/resources/telemetry-controller/resources.go index 36cc512a6..3b19cea16 100644 --- a/pkg/resources/telemetry-controller/resources.go +++ b/pkg/resources/telemetry-controller/resources.go @@ -49,14 +49,18 @@ func CreateTenant(logging *v1beta1.Logging) *telemetryv1alpha1.Tenant { }, }, }, - LogSourceNamespaceSelectors: []metav1.LabelSelector{}, + PersistenceConfig: telemetryv1alpha1.PersistenceConfig{ + EnableFileStorage: true, + }, }, } + // If no watchNamespaces are specified, the tenant should watch all namespaces LogSourceNamespaceSelectors := convertToLabelSelectors(logging.Spec.WatchNamespaces, logging.Spec.WatchNamespaceSelector) if LogSourceNamespaceSelectors != nil { tenantBase.Spec.LogSourceNamespaceSelectors = LogSourceNamespaceSelectors - return tenantBase + } else { + tenantBase.Spec.SelectFromAllNamespaces = true } return tenantBase @@ -97,17 +101,19 @@ func CreateOutput(logging *v1beta1.Logging) *telemetryv1alpha1.Output { Spec: telemetryv1alpha1.OutputSpec{ Fluentforward: &telemetryv1alpha1.Fluentforward{ TCPClientSettings: telemetryv1alpha1.TCPClientSettings{ - Endpoint: aggregatorEndpoint(logging), + Endpoint: &telemetryv1alpha1.Endpoint{ + TCPAddr: aggregatorEndpoint(logging), + ValidateTCPResolution: false, + }, TLSSetting: &telemetryv1alpha1.TLSClientSetting{ Insecure: true, }, }, Tag: utils.StringPointer("otelcol"), - // Will be available once the fluentforwardexporter is released - // Kubernetes: &telemetryv1alpha1.KubernetesMetadata{ - // Key: "kubernetes", - // IncludePodLabels: true, - // }, + Kubernetes: &telemetryv1alpha1.KubernetesMetadata{ + Key: "kubernetes", + IncludePodLabels: true, + }, }, }, } @@ -124,8 +130,6 @@ func convertToLabelSelectors(watchNamespaces []string, watchNamespaceSelector *m } var labelSelectors []metav1.LabelSelector - - // Convert WatchNamespaces to LabelSelectors for _, ns := range watchNamespaces { labelSelectors = append(labelSelectors, metav1.LabelSelector{ MatchExpressions: []metav1.LabelSelectorRequirement{ @@ -138,7 +142,6 @@ func convertToLabelSelectors(watchNamespaces []string, watchNamespaceSelector *m }) } - // Append WatchNamespaceSelector if it exists if watchNamespaceSelector != nil { labelSelectors = append(labelSelectors, *watchNamespaceSelector) } From 5d1a52496b3b617ce97ec42b20e92ec2070f60e7 Mon Sep 17 00:00:00 2001 From: Bence Csati Date: Fri, 13 Dec 2024 12:18:41 +0100 Subject: [PATCH 4/7] docs: add tc-routing sample Signed-off-by: Bence Csati --- .../telemetry-controller-routing/README.md | 65 +++++++++++++ .../tc-tenant-a-logging.yaml | 59 +++++++++++ .../tc-tenant-b-logging.yaml | 59 +++++++++++ .../tc-tenant-infra-logging.yaml | 97 +++++++++++++++++++ .../tc-tenant-infra-receiver.yaml | 38 ++++++++ 5 files changed, 318 insertions(+) create mode 100644 config/samples/telemetry-controller-routing/README.md create mode 100644 config/samples/telemetry-controller-routing/tc-tenant-a-logging.yaml create mode 100644 config/samples/telemetry-controller-routing/tc-tenant-b-logging.yaml create mode 100644 config/samples/telemetry-controller-routing/tc-tenant-infra-logging.yaml create mode 100644 config/samples/telemetry-controller-routing/tc-tenant-infra-receiver.yaml diff --git a/config/samples/telemetry-controller-routing/README.md b/config/samples/telemetry-controller-routing/README.md new file mode 100644 index 000000000..7e5deadfa --- /dev/null +++ b/config/samples/telemetry-controller-routing/README.md @@ -0,0 +1,65 @@ +# TC-routing + +## Setup + +```shell +make kind-cluster +make docker-build +kind load docker-image controller:local + +helm upgrade --install \ + --wait \ + --create-namespace \ + --namespace logging \ + logging-operator ./charts/logging-operator/ \ + --set image.repository=controller \ + --set image.tag=local \ + --set extraArgs='{"-enable-leader-election=true","-enable-telemetry-controller-route"}' \ + --set telemetry-controller.install=true \ + --set testReceiver.enabled=true + +kubectl apply -f config/samples/telemetry-controller-routing/ + +helm upgrade --install --namespace customer-a log-generator oci://ghcr.io/kube-logging/helm-charts/log-generator +helm upgrade --install --namespace customer-b log-generator oci://ghcr.io/kube-logging/helm-charts/log-generator +helm upgrade --install --namespace infra log-generator oci://ghcr.io/kube-logging/helm-charts/log-generator +``` + +## Switching between logging-routes or TC routing + +To use only logging-routes (This is the default behaviour!): + +- Don't set anything. + +```yaml +apiVersion: logging.banzaicloud.io/v1beta1 +kind: Logging +spec: + routeConfig: + enableTelemetryControllerRoute: false + disableLoggingRoute: false +``` + +To use logging-routes and TC routing in parallel: + +```yaml +apiVersion: logging.banzaicloud.io/v1beta1 +kind: Logging +spec: + routeConfig: + enableTelemetryControllerRoute: true + disableLoggingRoute: false +``` + +To use only TC routing: + +```yaml +apiVersion: logging.banzaicloud.io/v1beta1 +kind: Logging +spec: + routeConfig: + enableTelemetryControllerRoute: true + disableLoggingRoute: true +``` + +NOTE: You can change these setting on the fly, the only requirement is to have the necessary components deployed. diff --git a/config/samples/telemetry-controller-routing/tc-tenant-a-logging.yaml b/config/samples/telemetry-controller-routing/tc-tenant-a-logging.yaml new file mode 100644 index 000000000..7595ce0af --- /dev/null +++ b/config/samples/telemetry-controller-routing/tc-tenant-a-logging.yaml @@ -0,0 +1,59 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: customer-a + labels: + tenant: customer-a +--- +apiVersion: v1 +kind: Namespace +metadata: + name: customer-a-infra +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: Logging +metadata: + name: customer-a + labels: + tenant: customer-a +spec: + fluentd: + disablePvc: true + logLevel: trace + controlNamespace: customer-a-infra + watchNamespaceSelector: + matchLabels: + tenant: customer-a + routeConfig: + enableTelemetryControllerRoute: true + disableLoggingRoute: true + tenantLabels: + tenant: customer-a +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: Flow +metadata: + name: all + namespace: customer-a +spec: + match: + - select: + labels: + app.kubernetes.io/name: log-generator + localOutputRefs: + - http-a +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: Output +metadata: + name: http-a + namespace: customer-a +spec: + http: + endpoint: http://logging-operator-test-receiver.logging:8080 + content_type: application/json + buffer: + type: memory + tags: time + timekey: 1s + timekey_wait: 0s diff --git a/config/samples/telemetry-controller-routing/tc-tenant-b-logging.yaml b/config/samples/telemetry-controller-routing/tc-tenant-b-logging.yaml new file mode 100644 index 000000000..96af74630 --- /dev/null +++ b/config/samples/telemetry-controller-routing/tc-tenant-b-logging.yaml @@ -0,0 +1,59 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: customer-b + labels: + tenant: customer-b +--- +apiVersion: v1 +kind: Namespace +metadata: + name: customer-b-infra +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: Logging +metadata: + name: customer-b + labels: + tenant: customer-b +spec: + fluentd: + disablePvc: true + logLevel: trace + controlNamespace: customer-b-infra + watchNamespaceSelector: + matchLabels: + tenant: customer-b + routeConfig: + enableTelemetryControllerRoute: true + disableLoggingRoute: true + tenantLabels: + tenant: customer-b +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: Flow +metadata: + name: all + namespace: customer-b +spec: + match: + - select: + labels: + app.kubernetes.io/name: log-generator + localOutputRefs: + - http-b +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: Output +metadata: + name: http-b + namespace: customer-b +spec: + http: + endpoint: http://logging-operator-test-receiver.logging:8080 + content_type: application/json + buffer: + type: memory + tags: time + timekey: 1s + timekey_wait: 0s diff --git a/config/samples/telemetry-controller-routing/tc-tenant-infra-logging.yaml b/config/samples/telemetry-controller-routing/tc-tenant-infra-logging.yaml new file mode 100644 index 000000000..535e778cd --- /dev/null +++ b/config/samples/telemetry-controller-routing/tc-tenant-infra-logging.yaml @@ -0,0 +1,97 @@ +apiVersion: telemetry.kube-logging.dev/v1alpha1 +kind: Collector +metadata: + name: cluster +spec: + controlNamespace: infra + debug: true + tenantSelector: + matchExpressions: + - key: tenant + operator: Exists +--- +apiVersion: v1 +kind: Namespace +metadata: + name: infra + labels: + tenant: infra +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: Logging +metadata: + name: infra + labels: + tenant: infra +spec: + loggingRef: infra + fluentd: + disablePvc: true + logLevel: trace + controlNamespace: infra + watchNamespaceSelector: + matchLabels: + tenant: infra + routeConfig: + enableTelemetryControllerRoute: true + disableLoggingRoute: true + tenantLabels: + tenant: infra +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: ClusterFlow +metadata: + name: all + namespace: infra +spec: + loggingRef: infra + match: + - select: + labels: + app.kubernetes.io/name: log-generator + globalOutputRefs: + - http-infra +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: ClusterOutput +metadata: + name: http-infra + namespace: infra +spec: + loggingRef: infra + http: + endpoint: http://test-receiver.infra:8080/infra + content_type: application/json + buffer: + type: memory + timekey: 1s + timekey_wait: 0s +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: FluentbitAgent +metadata: + name: infra +spec: + loggingRef: infra + inputTail: + storage.type: filesystem + positiondb: + hostPath: + path: "" + bufferStorageVolume: + hostPath: + path: "" + network: + connectTimeout: 2 + metrics: {} +--- +apiVersion: logging.banzaicloud.io/v1beta1 +kind: LoggingRoute +metadata: + name: tenants +spec: + source: infra + targets: + matchExpressions: + - key: tenant + operator: Exists diff --git a/config/samples/telemetry-controller-routing/tc-tenant-infra-receiver.yaml b/config/samples/telemetry-controller-routing/tc-tenant-infra-receiver.yaml new file mode 100644 index 000000000..3fbf7bedc --- /dev/null +++ b/config/samples/telemetry-controller-routing/tc-tenant-infra-receiver.yaml @@ -0,0 +1,38 @@ +apiVersion: v1 +kind: Service +metadata: + name: test-receiver + namespace: infra +spec: + type: ClusterIP + ports: + - port: 8080 + targetPort: receiver + protocol: TCP + name: receiver + selector: + app.kubernetes.io/name: test-receiver +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: test-receiver + namespace: infra +spec: + selector: + matchLabels: + app.kubernetes.io/name: test-receiver + template: + metadata: + labels: + app.kubernetes.io/name: test-receiver + annotations: + fluentbit.io/exclude: "true" + spec: + containers: + - name: fluentbit + image: fluent/fluent-bit + args: ["-i", "http", "-p", "port=8080", "-o", "stdout"] + ports: + - name: receiver + containerPort: 8080 From 601e4a934603f6a7be00c929e21e92768be2b75d Mon Sep 17 00:00:00 2001 From: Peter Wilcsinszky Date: Fri, 13 Dec 2024 18:30:28 +0100 Subject: [PATCH 5/7] chore: add helm dep up for the local demo scenario Signed-off-by: Peter Wilcsinszky --- config/samples/telemetry-controller-routing/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/config/samples/telemetry-controller-routing/README.md b/config/samples/telemetry-controller-routing/README.md index 7e5deadfa..13212186d 100644 --- a/config/samples/telemetry-controller-routing/README.md +++ b/config/samples/telemetry-controller-routing/README.md @@ -7,6 +7,7 @@ make kind-cluster make docker-build kind load docker-image controller:local +helm dependency update charts/logging-operator helm upgrade --install \ --wait \ --create-namespace \ From 2664a867be9f0ac9e62eed19062f68a75c1e4adb Mon Sep 17 00:00:00 2001 From: Peter Wilcsinszky Date: Fri, 13 Dec 2024 18:34:28 +0100 Subject: [PATCH 6/7] chore: make the traditional path the default for customer-a Signed-off-by: Peter Wilcsinszky --- config/samples/telemetry-controller-routing/README.md | 5 +++++ .../telemetry-controller-routing/tc-tenant-a-logging.yaml | 6 +++--- .../telemetry-controller-routing/tc-tenant-b-logging.yaml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/config/samples/telemetry-controller-routing/README.md b/config/samples/telemetry-controller-routing/README.md index 13212186d..df38ef5d8 100644 --- a/config/samples/telemetry-controller-routing/README.md +++ b/config/samples/telemetry-controller-routing/README.md @@ -2,6 +2,11 @@ ## Setup +In this setup customer-a sends logs over the traditional path (fluentbit -> fluentd) while +customer-b sends over the telemetry-controller path (opentelemetry collector -> fluentd). + +In both cases, flows and outputs should work and behave the same. + ```shell make kind-cluster make docker-build diff --git a/config/samples/telemetry-controller-routing/tc-tenant-a-logging.yaml b/config/samples/telemetry-controller-routing/tc-tenant-a-logging.yaml index 7595ce0af..0b1cd24bb 100644 --- a/config/samples/telemetry-controller-routing/tc-tenant-a-logging.yaml +++ b/config/samples/telemetry-controller-routing/tc-tenant-a-logging.yaml @@ -25,8 +25,8 @@ spec: matchLabels: tenant: customer-a routeConfig: - enableTelemetryControllerRoute: true - disableLoggingRoute: true + enableTelemetryControllerRoute: false + disableLoggingRoute: false tenantLabels: tenant: customer-a --- @@ -50,7 +50,7 @@ metadata: namespace: customer-a spec: http: - endpoint: http://logging-operator-test-receiver.logging:8080 + endpoint: http://logging-operator-test-receiver.logging:8080/customer-a content_type: application/json buffer: type: memory diff --git a/config/samples/telemetry-controller-routing/tc-tenant-b-logging.yaml b/config/samples/telemetry-controller-routing/tc-tenant-b-logging.yaml index 96af74630..d6217fb6c 100644 --- a/config/samples/telemetry-controller-routing/tc-tenant-b-logging.yaml +++ b/config/samples/telemetry-controller-routing/tc-tenant-b-logging.yaml @@ -50,7 +50,7 @@ metadata: namespace: customer-b spec: http: - endpoint: http://logging-operator-test-receiver.logging:8080 + endpoint: http://logging-operator-test-receiver.logging:8080/customer-b content_type: application/json buffer: type: memory From 9c964ef9773894a82fe629bfcb1ff7a4b5a2a9c2 Mon Sep 17 00:00:00 2001 From: Bence Csati Date: Wed, 11 Dec 2024 10:49:10 +0100 Subject: [PATCH 7/7] chore: tc bump and changes Signed-off-by: Bence Csati --- charts/logging-operator/Chart.lock | 6 +++--- charts/logging-operator/Chart.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/charts/logging-operator/Chart.lock b/charts/logging-operator/Chart.lock index 23864ef35..d37c6251a 100644 --- a/charts/logging-operator/Chart.lock +++ b/charts/logging-operator/Chart.lock @@ -4,6 +4,6 @@ dependencies: version: 0.0.0 - name: telemetry-controller repository: oci://ghcr.io/kube-logging/helm-charts - version: 0.0.14-dev5 -digest: sha256:5531289f2326888b97c64bd1af4652a4656cfab7e12f8719343471a70b99e661 -generated: "2024-12-13T11:47:32.933261+01:00" + version: 0.0.15 +digest: sha256:8ff43abc414a65d3069a1c6b697826e639134c1791bb84b1fbde054ff7de450c +generated: "2024-12-16T17:13:49.863948+01:00" diff --git a/charts/logging-operator/Chart.yaml b/charts/logging-operator/Chart.yaml index 645a98c23..760d43abc 100644 --- a/charts/logging-operator/Chart.yaml +++ b/charts/logging-operator/Chart.yaml @@ -18,6 +18,6 @@ dependencies: version: 0.0.0 condition: logging-operator-crds.install - name: telemetry-controller - version: "0.0.14-dev5" + version: "0.0.15" repository: oci://ghcr.io/kube-logging/helm-charts condition: telemetry-controller.install

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 aoX-OU2oT_C;Qt2z0RR6jU5T0iwjBU=%A0He literal 0 HcmV?d00001 diff --git a/charts/logging-operator/crds/logging-extensions.banzaicloud.io_eventtailers.yaml b/charts/logging-operator/crds/logging-extensions.banzaicloud.io_eventtailers.yaml index 4cdc6c583..45726d717 100644 --- a/charts/logging-operator/crds/logging-extensions.banzaicloud.io_eventtailers.yaml +++ b/charts/logging-operator/crds/logging-extensions.banzaicloud.io_eventtailers.yaml @@ -330,6 +330,9 @@ spec: type: object controlNamespace: type: string + x-kubernetes-validations: + - message: Value is immutable, please recreate the resource + rule: self == oldSelf image: properties: imagePullSecrets: diff --git a/charts/logging-operator/crds/logging.banzaicloud.io_loggings.yaml b/charts/logging-operator/crds/logging.banzaicloud.io_loggings.yaml index 5e6986e5b..f36867851 100644 --- a/charts/logging-operator/crds/logging.banzaicloud.io_loggings.yaml +++ b/charts/logging-operator/crds/logging.banzaicloud.io_loggings.yaml @@ -81,6 +81,9 @@ spec: type: object controlNamespace: type: string + x-kubernetes-validations: + - message: Value is immutable, please recreate the resource + rule: self == oldSelf defaultFlow: properties: filters: @@ -12594,6 +12597,17 @@ spec: type: string type: object type: array + routeConfig: + properties: + disableLoggingRoute: + type: boolean + enableTelemetryControllerRoute: + type: boolean + tenantLabels: + additionalProperties: + type: string + type: object + type: object skipInvalidResources: type: boolean syslogNG: diff --git a/charts/logging-operator/templates/clusterrole.yaml b/charts/logging-operator/templates/clusterrole.yaml index c720e85e8..f92be5d53 100644 --- a/charts/logging-operator/templates/clusterrole.yaml +++ b/charts/logging-operator/templates/clusterrole.yaml @@ -243,4 +243,20 @@ rules: - patch - update - watch +- apiGroups: + - telemetry.kube-logging.dev + resources: + - bridges + - collectors + - outputs + - subscriptions + - tenants + verbs: + - create + - delete + - get + - list + - patch + - update + - watch {{- end }} diff --git a/charts/logging-operator/values.yaml b/charts/logging-operator/values.yaml index 33125bf54..d997fb882 100644 --- a/charts/logging-operator/values.yaml +++ b/charts/logging-operator/values.yaml @@ -44,6 +44,11 @@ logging-operator-crds: # -- Annotations to be added to all CRDs annotations: {} +## Telemetry Controller defined as a dependency chart +telemetry-controller: + # -- Toggle to install and upgrade Telemetry Controller from a subchart. + install: false + http: # -- HTTP listen port number. port: 8080 diff --git a/config/crd/bases/logging-extensions.banzaicloud.io_eventtailers.yaml b/config/crd/bases/logging-extensions.banzaicloud.io_eventtailers.yaml index 4cdc6c583..45726d717 100644 --- a/config/crd/bases/logging-extensions.banzaicloud.io_eventtailers.yaml +++ b/config/crd/bases/logging-extensions.banzaicloud.io_eventtailers.yaml @@ -330,6 +330,9 @@ spec: type: object controlNamespace: type: string + x-kubernetes-validations: + - message: Value is immutable, please recreate the resource + rule: self == oldSelf image: properties: imagePullSecrets: diff --git a/config/crd/bases/logging.banzaicloud.io_loggings.yaml b/config/crd/bases/logging.banzaicloud.io_loggings.yaml index 5e6986e5b..f36867851 100644 --- a/config/crd/bases/logging.banzaicloud.io_loggings.yaml +++ b/config/crd/bases/logging.banzaicloud.io_loggings.yaml @@ -81,6 +81,9 @@ spec: type: object controlNamespace: type: string + x-kubernetes-validations: + - message: Value is immutable, please recreate the resource + rule: self == oldSelf defaultFlow: properties: filters: @@ -12594,6 +12597,17 @@ spec: type: string type: object type: array + routeConfig: + properties: + disableLoggingRoute: + type: boolean + enableTelemetryControllerRoute: + type: boolean + tenantLabels: + additionalProperties: + type: string + type: object + type: object skipInvalidResources: type: boolean syslogNG: diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index 220d42442..2a2299dee 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -238,3 +238,19 @@ rules: - patch - update - watch +- apiGroups: + - telemetry.kube-logging.dev + resources: + - bridges + - collectors + - outputs + - subscriptions + - tenants + verbs: + - create + - delete + - get + - list + - patch + - update + - watch diff --git a/controllers/logging/telemetry_controller_controller.go b/controllers/logging/telemetry_controller_controller.go new file mode 100644 index 000000000..3e5a2c13d --- /dev/null +++ b/controllers/logging/telemetry_controller_controller.go @@ -0,0 +1,184 @@ +// Copyright © 2024 Kube logging authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package controllers + +import ( + "context" + "fmt" + + "github.com/go-logr/logr" + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" + "sigs.k8s.io/controller-runtime/pkg/reconcile" + + telemetry_controller "github.com/kube-logging/logging-operator/pkg/resources/telemetry-controller" + "github.com/kube-logging/logging-operator/pkg/sdk/logging/api/v1beta1" + loggingv1beta1 "github.com/kube-logging/logging-operator/pkg/sdk/logging/api/v1beta1" +) + +const ( + TelemetryControllerFinalizer = "telemetrycontroller.logging.banzaicloud.io/finalizer" +) + +// +kubebuilder:rbac:groups=telemetry.kube-logging.dev,resources=collectors;tenants;subscriptions;outputs;bridges;,verbs=get;list;watch;create;update;patch;delete + +func NewTelemetryControllerReconciler(client client.Client, log logr.Logger) *TelemetryControllerReconciler { + return &TelemetryControllerReconciler{ + Client: client, + Log: log, + } +} + +// TelemetryControllerReconciler reconciles Logging resources for the Telemetry controller +type TelemetryControllerReconciler struct { + client.Client + Log logr.Logger +} + +func (r *TelemetryControllerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { + log := r.Log.WithValues("telemetry-controller", req.Name) + + var logging loggingv1beta1.Logging + if err := r.Client.Get(ctx, req.NamespacedName, &logging); err != nil { + return reconcile.Result{}, client.IgnoreNotFound(err) + } + + if logging.Spec.RouteConfig.EnableTelemetryControllerRoute { + log.Info("Reconciling Logging resource for Telemetry controller", "name", logging.Name) + + objectsToCreate := r.createTelemetryControllerResources(log, &logging) + + if err := r.finalizeLoggingForTelemetryController(ctx, log, &logging, &objectsToCreate); err != nil { + return ctrl.Result{}, err + } + + if err := r.isAggregatorReady(ctx, log, logging); err != nil { + r.Log.Info(fmt.Sprintf("Aggregator pod is not ready yet: %s", err)) + return ctrl.Result{RequeueAfter: 5}, nil + } + + if err := r.deployTelemetryControllerResources(ctx, log, &objectsToCreate); err != nil { + return ctrl.Result{}, err + } + } + + return ctrl.Result{}, nil +} + +func SetupTelemetryControllerWithManager(mgr ctrl.Manager, logger logr.Logger) error { + return ctrl.NewControllerManagedBy(mgr). + For(&loggingv1beta1.Logging{}). + Named("telemetrycontroller"). + Complete(NewTelemetryControllerReconciler(mgr.GetClient(), logger)) +} + +func (r *TelemetryControllerReconciler) createTelemetryControllerResources(logger logr.Logger, logging *loggingv1beta1.Logging) []client.Object { + logger.Info("Creating Telemetry controller resources") + + objectsToCreate := []client.Object{} + objectsToCreate = append(objectsToCreate, telemetry_controller.CreateTenant(logging)) + objectsToCreate = append(objectsToCreate, telemetry_controller.CreateSubscription(logging)) + objectsToCreate = append(objectsToCreate, telemetry_controller.CreateOutput(logging)) + + return objectsToCreate +} + +func (r *TelemetryControllerReconciler) finalizeLoggingForTelemetryController(ctx context.Context, logger logr.Logger, logging *loggingv1beta1.Logging, objectsToCreate *[]client.Object) error { + logger.Info("Finalizing Telemetry controller resources") + + if logging.ObjectMeta.DeletionTimestamp.IsZero() { + if !controllerutil.ContainsFinalizer(logging, TelemetryControllerFinalizer) { + r.Log.Info("adding telemetrycontroller finalizer") + controllerutil.AddFinalizer(logging, TelemetryControllerFinalizer) + if err := r.Client.Update(ctx, logging); err != nil { + return err + } + } + } else { + // The object is being deleted + if controllerutil.ContainsFinalizer(logging, TelemetryControllerFinalizer) { + if err := r.deleteTelemetryControllerResources(ctx, logger, objectsToCreate); err != nil { + return err + } + + r.Log.Info("removing telemetrycontroller finalizer") + controllerutil.RemoveFinalizer(logging, TelemetryControllerFinalizer) + if err := r.Client.Update(ctx, logging); err != nil { + return err + } + } + } + + return nil +} + +func (r *TelemetryControllerReconciler) deployTelemetryControllerResources(ctx context.Context, logger logr.Logger, objectsToCreate *[]client.Object) error { + logger.Info("Deploying Telemetry controller resources") + + for _, objectToCreate := range *objectsToCreate { + if err := r.Client.Get(ctx, client.ObjectKeyFromObject(objectToCreate), objectToCreate); err != nil { + if !apierrors.IsNotFound(err) { + return err + } + if err := r.Client.Create(ctx, objectToCreate); err != nil { + return err + } + logger.Info("Created object", "object", objectToCreate.GetName()) + } else { + logger.Info("Object already exists", "object", objectToCreate.GetName()) + } + } + + return nil +} + +func (r *TelemetryControllerReconciler) deleteTelemetryControllerResources(ctx context.Context, logger logr.Logger, objectsToCreate *[]client.Object) error { + logger.Info("Logging resource is being deleted, deleting Telemetry controller resources") + + for _, obj := range *objectsToCreate { + if err := r.Client.Delete(ctx, obj); err != nil { + return client.IgnoreNotFound(err) + } + logger.Info("Deleted object", "object", obj.GetName()) + } + + return nil +} + +func (r *TelemetryControllerReconciler) isAggregatorReady(ctx context.Context, logger logr.Logger, logging v1beta1.Logging) error { + logger.Info("Waiting for aggregator pod to be ready") + + podName := fmt.Sprintf("%s-fluentd-0", logging.Name) + pod := &corev1.Pod{} + err := r.Client.Get(ctx, client.ObjectKey{Name: podName, Namespace: logging.Spec.ControlNamespace}, pod) + if err != nil { + if apierrors.IsNotFound(err) { + return fmt.Errorf("aggregator pod: %s not found", podName) + } + return err + } + + for _, condition := range pod.Status.Conditions { + if condition.Type == corev1.PodReady && condition.Status == corev1.ConditionTrue { + r.Log.Info("Aggregator pod is ready", "pod", pod.Name) + return nil + } + } + + return fmt.Errorf("aggregator pod: %s is not ready", podName) +} diff --git a/docs/configuration/crds/v1beta1/logging_types.md b/docs/configuration/crds/v1beta1/logging_types.md index 46963c642..b3ce30ad4 100644 --- a/docs/configuration/crds/v1beta1/logging_types.md +++ b/docs/configuration/crds/v1beta1/logging_types.md @@ -84,6 +84,11 @@ Reference to the logging system. Each of the `loggingRef`s can manage a fluentbi InlineNodeAgent Configuration Deprecated, will be removed with next major version +### routeConfig (*RouteConfig, optional) {#loggingspec-routeconfig} + +RouteConfig determines whether to use loggingRoutes or to create resources based on the logging resource that can be managed by the Telemetry Controller. + + ### skipInvalidResources (bool, optional) {#loggingspec-skipinvalidresources} Whether to skip invalid Flow and ClusterFlow resources @@ -123,6 +128,24 @@ Configure timeout in seconds if strategy is StartWithTimeout +## RouteConfig + +### disableLoggingRoute (bool, optional) {#routeconfig-disableloggingroute} + +If DisableLoggingRoute is set to true, the logging route controller should remove the given tenant from the status of the logging resource. + + +### enableTelemetryControllerRoute (bool, optional) {#routeconfig-enabletelemetrycontrollerroute} + +If EnableTelemtryControllerRoute set to true, the operator will create the corresponding Tenant, Subscription, Output based on the logging resource. + + +### tenantLabels (map[string]string, optional) {#routeconfig-tenantlabels} + +TenantLabels is a map of labels that will be added to the tenant object so it can be matched with TelemetryController's TenantSelector ref: https://github.com/kube-logging/telemetry-controller/blob/main/api/telemetry/v1alpha1/collector_types.go + + + ## LoggingStatus LoggingStatus defines the observed state of Logging diff --git a/go.mod b/go.mod index d722f2de9..0e75e3e05 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,6 @@ module github.com/kube-logging/logging-operator -go 1.23 - -toolchain go1.23.3 +go 1.23.3 require ( emperror.dev/errors v0.8.1 @@ -12,45 +10,46 @@ require ( github.com/go-logr/logr v1.4.2 github.com/kube-logging/logging-operator/pkg/sdk v0.11.0 github.com/kube-logging/logging-operator/pkg/sdk/logging/model/syslogng/config v0.0.0 + github.com/kube-logging/telemetry-controller v0.0.0-20241205150407-8e64c0e0ca6a github.com/onsi/ginkgo v1.16.5 - github.com/onsi/gomega v1.35.1 + github.com/onsi/gomega v1.36.0 github.com/pborman/uuid v1.2.1 - github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.78.1 + github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.78.2 github.com/prometheus/client_golang v1.20.5 github.com/siliconbrain/go-seqs v0.13.0 github.com/spf13/cast v1.7.0 - github.com/stretchr/testify v1.9.0 - golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f - k8s.io/api v0.31.2 - k8s.io/apiextensions-apiserver v0.31.2 - k8s.io/apimachinery v0.31.2 - k8s.io/client-go v0.31.2 + github.com/stretchr/testify v1.10.0 + golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d + k8s.io/api v0.31.3 + k8s.io/apiextensions-apiserver v0.31.3 + k8s.io/apimachinery v0.31.3 + k8s.io/client-go v0.31.3 k8s.io/klog/v2 v2.130.1 - sigs.k8s.io/controller-runtime v0.19.1 + sigs.k8s.io/controller-runtime v0.19.3 ) require ( - github.com/Masterminds/semver/v3 v3.3.0 // indirect + github.com/Masterminds/semver/v3 v3.3.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/briandowns/spinner v1.23.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cisco-open/k8s-objectmatcher v1.10.0 // indirect github.com/cppforlife/go-patch v0.2.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.1 // indirect github.com/evanphx/json-patch v5.9.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.9.0 // indirect - github.com/fatih/color v1.17.0 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/go-logr/zapr v1.3.0 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.4 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/gnostic-models v0.6.9 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.6.0 // indirect @@ -58,7 +57,7 @@ require ( github.com/imdario/mergo v0.3.16 // 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/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -69,31 +68,33 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/common v0.61.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/sergi/go-diff v1.2.0 // indirect + github.com/sergi/go-diff v1.3.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/wayneashleyberry/terminal-dimensions v1.1.0 // indirect github.com/x448/float16 v0.8.4 // indirect + go.opentelemetry.io/collector/config/configcompression v1.21.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.21.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - golang.org/x/net v0.31.0 // indirect - golang.org/x/oauth2 v0.21.0 // indirect - golang.org/x/sys v0.27.0 // indirect - golang.org/x/term v0.26.0 // indirect - golang.org/x/text v0.20.0 // indirect - golang.org/x/time v0.3.0 // indirect + golang.org/x/net v0.32.0 // indirect + golang.org/x/oauth2 v0.24.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/time v0.8.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect - k8s.io/utils v0.0.0-20240902221715-702e33fdd3c3 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + k8s.io/kube-openapi v0.0.0-20241127205056-99599406b04f // indirect + k8s.io/utils v0.0.0-20241104163129-6fe5fd82f078 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.3 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index 9e410a97f..2dd118b3b 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ emperror.dev/errors v0.8.1 h1:UavXZ5cSX/4u9iyvH6aDcuGkVjeexUGJ7Ij7G4VfQT0= emperror.dev/errors v0.8.1/go.mod h1:YcRvLPh626Ubn2xqtoprejnA5nFha+TJ+2vew48kWuE= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= -github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0= -github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= +github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -18,38 +18,36 @@ github.com/cisco-open/operator-tools v0.37.0 h1:qAkAbWQA+aeWHZOqpWL8FuiZ42cWWUZ0 github.com/cisco-open/operator-tools v0.37.0/go.mod h1:SaMi2aMNILC5Wrqw9m92ptN5InMH2Zt3CSKkGlzyqfQ= github.com/cppforlife/go-patch v0.2.0 h1:Y14MnCQjDlbw7WXT4k+u6DPAA9XnygN4BfrSpI/19RU= github.com/cppforlife/go-patch v0.2.0/go.mod h1:67a7aIi94FHDZdoeGSJRRFDp66l9MhaAG1yGxpUoFD8= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 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= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= -github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= +github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg= github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= -github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= -github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= -github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= @@ -58,8 +56,8 @@ github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U= github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -69,8 +67,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= +github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -80,8 +78,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= -github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -96,16 +94,17 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= -github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kube-logging/telemetry-controller v0.0.0-20241205150407-8e64c0e0ca6a h1:dSO8iAZkDPsGOmKk/ZCYkTYxkSWynCy5GkJcJGgBQxY= +github.com/kube-logging/telemetry-controller v0.0.0-20241205150407-8e64c0e0ca6a/go.mod h1:IYFH6OWWdKPskUDXfE9x6iF0aXErG++yTQpuGga4ulE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= @@ -129,12 +128,12 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.20.1 h1:YlVIbqct+ZmnEph770q9Q7NVAz4wwIiVNahee6JyUzo= -github.com/onsi/ginkgo/v2 v2.20.1/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI= +github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= +github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= -github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/onsi/gomega v1.36.0 h1:Pb12RlruUtj4XUuPUqeEWc6j5DkVVVA49Uf6YLfC95Y= +github.com/onsi/gomega v1.36.0/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw= github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -142,20 +141,20 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.78.1 h1:Fm9Z+FabnB+6EoGq15j+pyLmaK6hYrYOpBlTzOLTQ+E= -github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.78.1/go.mod h1:SvsRXw4m1F2vk7HquU5h475bFpke27mIUswfyw9u3ug= +github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.78.2 h1:SyoVBXD/r0PntR1rprb90ClI32FSUNOCWqqTatnipHM= +github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.78.2/go.mod h1:SvsRXw4m1F2vk7HquU5h475bFpke27mIUswfyw9u3ug= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= -github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= +github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= -github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/siliconbrain/go-seqs v0.13.0 h1:3xvOlPDs4FB/XZzmagMU/DTTbHhLcEVPsjauKHsT990= github.com/siliconbrain/go-seqs v0.13.0/go.mod h1:8kptI0u8epC1dPx/nCo3fUM2xJnfAoo59/UJiCsxkR4= github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= @@ -163,22 +162,21 @@ github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cA 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= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/wayneashleyberry/terminal-dimensions v1.1.0 h1:EB7cIzBdsOzAgmhTUtTTQXBByuPheP/Zv1zL2BRPY6g= github.com/wayneashleyberry/terminal-dimensions v1.1.0/go.mod h1:2lc/0eWCObmhRczn2SdGSQtgBooLUzIotkkEGXqghyg= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opentelemetry.io/collector/config/configcompression v1.21.0 h1:0zbPdZAgPFMAarwJEC4gaR6f/JBP686A3TYSgb3oa+E= +go.opentelemetry.io/collector/config/configcompression v1.21.0/go.mod h1:LvYG00tbPTv0NOLoZN0wXq1F5thcxvukO8INq7xyfWU= +go.opentelemetry.io/collector/config/configopaque v1.21.0 h1:PcvRGkBk4Px8BQM7tX+kw4i3jBsfAHGoGQbtZg6Ox7U= +go.opentelemetry.io/collector/config/configopaque v1.21.0/go.mod h1:sW0t0iI/VfRL9VYX7Ik6XzVgPcR+Y5kejTLsYcMyDWs= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= @@ -190,8 +188,8 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= -golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= +golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d h1:0olWaB5pg3+oychR51GUVCEsGkeCU/2JxjBgIo4f3M0= +golang.org/x/exp v0.0.0-20241204233417-43b7b7cde48d/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -200,10 +198,10 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= -golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= -golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -219,23 +217,23 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= -golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= -golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -248,8 +246,8 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= @@ -263,32 +261,30 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkep gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= -k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= -k8s.io/apiextensions-apiserver v0.31.2 h1:W8EwUb8+WXBLu56ser5IudT2cOho0gAKeTOnywBLxd0= -k8s.io/apiextensions-apiserver v0.31.2/go.mod h1:i+Geh+nGCJEGiCGR3MlBDkS7koHIIKWVfWeRFiOsUcM= -k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= -k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= -k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= +k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= +k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= +k8s.io/apiextensions-apiserver v0.31.3 h1:+GFGj2qFiU7rGCsA5o+p/rul1OQIq6oYpQw4+u+nciE= +k8s.io/apiextensions-apiserver v0.31.3/go.mod h1:2DSpFhUZZJmn/cr/RweH1cEVVbzFw9YBu4T+U3mf1e4= +k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= +k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= +k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= -k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/utils v0.0.0-20240902221715-702e33fdd3c3 h1:b2FmK8YH+QEwq/Sy2uAEhmqL5nPfGYbJOcaqjeYYZoA= -k8s.io/utils v0.0.0-20240902221715-702e33fdd3c3/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.19.1 h1:Son+Q40+Be3QWb+niBXAg2vFiYWolDjjRfO8hn/cxOk= -sigs.k8s.io/controller-runtime v0.19.1/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= -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= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +k8s.io/kube-openapi v0.0.0-20241127205056-99599406b04f h1:nLHvOvs1CZ+FAEwR4EqLeRLfbtWQNlIu5g393Hq/1UM= +k8s.io/kube-openapi v0.0.0-20241127205056-99599406b04f/go.mod h1:iZjdMQzunI7O/sUrf/5WRX1gvaAIam32lKx9+paoLbU= +k8s.io/utils v0.0.0-20241104163129-6fe5fd82f078 h1:jGnCPejIetjiy2gqaJ5V0NLwTpF4wbQ6cZIItJCSHno= +k8s.io/utils v0.0.0-20241104163129-6fe5fd82f078/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.19.3 h1:XO2GvC9OPftRst6xWCpTgBZO04S2cbp0Qqkj8bX1sPw= +sigs.k8s.io/controller-runtime v0.19.3/go.mod h1:j4j87DqtsThvwTv5/Tc5NFRyyF/RF0ip4+62tbTSIUM= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/structured-merge-diff/v4 v4.4.3 h1:sCP7Vv3xx/CWIuTPVN38lUPx0uw0lcLfzaiDa8Ja01A= +sigs.k8s.io/structured-merge-diff/v4 v4.4.3/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/go.work b/go.work index 8962adaf6..c8a8ca6bf 100644 --- a/go.work +++ b/go.work @@ -1,6 +1,4 @@ -go 1.23 - -toolchain go1.23.1 +go 1.23.3 use ( . diff --git a/main.go b/main.go index 2f89b264a..02faa495e 100644 --- a/main.go +++ b/main.go @@ -56,6 +56,7 @@ import ( loggingv1beta1 "github.com/kube-logging/logging-operator/pkg/sdk/logging/api/v1beta1" "github.com/kube-logging/logging-operator/pkg/sdk/logging/model/types" "github.com/kube-logging/logging-operator/pkg/webhook/podhandler" + telemetryv1alpha1 "github.com/kube-logging/telemetry-controller/api/telemetry/v1alpha1" // +kubebuilder:scaffold:imports ) @@ -72,6 +73,7 @@ func init() { // +kubebuilder:scaffold:scheme _ = prometheusOperator.AddToScheme(scheme) _ = apiextensions.AddToScheme(scheme) + _ = telemetryv1alpha1.AddToScheme(scheme) } func main() { @@ -83,6 +85,7 @@ func main() { var namespace string var loggingRef string var finalizerCleanup bool + var enableTelemetryControllerRoute bool var klogLevel int flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.") @@ -95,6 +98,7 @@ func main() { flag.StringVar(&namespace, "watch-namespace", "", "Namespace to filter the list of watched objects") flag.StringVar(&loggingRef, "watch-logging-name", "", "Logging resource name to optionally filter the list of watched objects based on which logging they belong to by checking the app.kubernetes.io/managed-by label") flag.BoolVar(&finalizerCleanup, "finalizer-cleanup", false, "Remove finalizers from Logging resources during operator shutdown, useful for Helm uninstallation") + flag.BoolVar(&enableTelemetryControllerRoute, "enable-telemetry-controller-route", false, "Enable the Telemetry Controller route for Logging resources") flag.Parse() ctx := context.Background() @@ -201,6 +205,13 @@ func main() { os.Exit(1) } + if enableTelemetryControllerRoute { + if err := loggingControllers.SetupTelemetryControllerWithManager(mgr, ctrl.Log.WithName("telemetry-controller")); err != nil { + setupLog.Error(err, "unable to create controller", "controller", "TelemetryController") + os.Exit(1) + } + } + if os.Getenv("ENABLE_WEBHOOKS") == "true" { if err := loggingv1beta1.SetupWebhookWithManager(mgr, loggingv1beta1.APITypes()...); err != nil { setupLog.Error(err, "unable to create webhook", "webhook", "v1beta1.logging") @@ -353,8 +364,9 @@ func cleanupFinalizers(ctx context.Context, client client.Client) { } finalizers := []string{ - "fluentdconfig.logging.banzaicloud.io/finalizer", - "syslogngconfig.logging.banzaicloud.io/finalizer", + loggingControllers.FluentdConfigFinalizer, + loggingControllers.SyslogNGConfigFinalizer, + loggingControllers.TelemetryControllerFinalizer, } for _, logging := range loggingList.Items { for _, finalizer := range finalizers { diff --git a/pkg/resources/fluentbit/tenants.go b/pkg/resources/fluentbit/tenants.go index 9f15bd2c5..5d275fbe3 100644 --- a/pkg/resources/fluentbit/tenants.go +++ b/pkg/resources/fluentbit/tenants.go @@ -56,6 +56,9 @@ func FindTenants(ctx context.Context, target metav1.LabelSelector, reader client } for _, l := range loggingList.Items { l := l + if l.Spec.RouteConfig != nil && l.Spec.RouteConfig.DisableLoggingRoute { + continue + } targetNamespaces, err := model.UniqueWatchNamespaces(ctx, reader, &l) if err != nil { return nil, err diff --git a/pkg/resources/telemetry-controller/resources.go b/pkg/resources/telemetry-controller/resources.go new file mode 100644 index 000000000..36cc512a6 --- /dev/null +++ b/pkg/resources/telemetry-controller/resources.go @@ -0,0 +1,147 @@ +// Copyright © 2024 Kube logging authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package telemetry_controller + +import ( + "fmt" + + "github.com/cisco-open/operator-tools/pkg/utils" + "github.com/kube-logging/logging-operator/pkg/resources/fluentd" + "github.com/kube-logging/logging-operator/pkg/sdk/logging/api/v1beta1" + telemetryv1alpha1 "github.com/kube-logging/telemetry-controller/api/telemetry/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +const ( + k8sMetadataName = "kubernetes.io/metadata.name" + tenantKind = "Tenant" + subscriptionKind = "Subscription" + outputKind = "Output" +) + +func CreateTenant(logging *v1beta1.Logging) *telemetryv1alpha1.Tenant { + tenantBase := &telemetryv1alpha1.Tenant{ + TypeMeta: metav1.TypeMeta{ + APIVersion: telemetryv1alpha1.GroupVersion.String(), + Kind: tenantKind, + }, + ObjectMeta: metav1.ObjectMeta{ + Name: logging.Name, + Labels: logging.Spec.RouteConfig.TenantLabels, + }, + Spec: telemetryv1alpha1.TenantSpec{ + SubscriptionNamespaceSelectors: []metav1.LabelSelector{ + { + MatchLabels: map[string]string{ + k8sMetadataName: logging.Spec.ControlNamespace, + }, + }, + }, + LogSourceNamespaceSelectors: []metav1.LabelSelector{}, + }, + } + + LogSourceNamespaceSelectors := convertToLabelSelectors(logging.Spec.WatchNamespaces, logging.Spec.WatchNamespaceSelector) + if LogSourceNamespaceSelectors != nil { + tenantBase.Spec.LogSourceNamespaceSelectors = LogSourceNamespaceSelectors + return tenantBase + } + + return tenantBase +} + +func CreateSubscription(logging *v1beta1.Logging) *telemetryv1alpha1.Subscription { + return &telemetryv1alpha1.Subscription{ + TypeMeta: metav1.TypeMeta{ + APIVersion: telemetryv1alpha1.GroupVersion.String(), + Kind: subscriptionKind, + }, + ObjectMeta: metav1.ObjectMeta{ + Name: logging.Name, + Namespace: logging.Spec.ControlNamespace, + }, + Spec: telemetryv1alpha1.SubscriptionSpec{ + Condition: "true", + Outputs: []telemetryv1alpha1.NamespacedName{ + { + Namespace: logging.Spec.ControlNamespace, + Name: logging.Name, + }, + }, + }, + } +} + +func CreateOutput(logging *v1beta1.Logging) *telemetryv1alpha1.Output { + return &telemetryv1alpha1.Output{ + TypeMeta: metav1.TypeMeta{ + APIVersion: telemetryv1alpha1.GroupVersion.String(), + Kind: outputKind, + }, + ObjectMeta: metav1.ObjectMeta{ + Name: logging.Name, + Namespace: logging.Spec.ControlNamespace, + }, + Spec: telemetryv1alpha1.OutputSpec{ + Fluentforward: &telemetryv1alpha1.Fluentforward{ + TCPClientSettings: telemetryv1alpha1.TCPClientSettings{ + Endpoint: aggregatorEndpoint(logging), + TLSSetting: &telemetryv1alpha1.TLSClientSetting{ + Insecure: true, + }, + }, + Tag: utils.StringPointer("otelcol"), + // Will be available once the fluentforwardexporter is released + // Kubernetes: &telemetryv1alpha1.KubernetesMetadata{ + // Key: "kubernetes", + // IncludePodLabels: true, + // }, + }, + }, + } +} + +func aggregatorEndpoint(l *v1beta1.Logging) *string { + endpoint := fmt.Sprintf("%s.%s.svc%s:%d", l.QualifiedName(fluentd.ServiceName), l.Spec.ControlNamespace, l.ClusterDomainAsSuffix(), fluentd.ServicePort) + return &endpoint +} + +func convertToLabelSelectors(watchNamespaces []string, watchNamespaceSelector *metav1.LabelSelector) []metav1.LabelSelector { + if len(watchNamespaces) == 0 && watchNamespaceSelector == nil { + return nil + } + + var labelSelectors []metav1.LabelSelector + + // Convert WatchNamespaces to LabelSelectors + for _, ns := range watchNamespaces { + labelSelectors = append(labelSelectors, metav1.LabelSelector{ + MatchExpressions: []metav1.LabelSelectorRequirement{ + { + Key: k8sMetadataName, + Operator: metav1.LabelSelectorOpIn, + Values: []string{ns}, + }, + }, + }) + } + + // Append WatchNamespaceSelector if it exists + if watchNamespaceSelector != nil { + labelSelectors = append(labelSelectors, *watchNamespaceSelector) + } + + return labelSelectors +} diff --git a/pkg/sdk/extensions/api/v1alpha1/eventtailer_types.go b/pkg/sdk/extensions/api/v1alpha1/eventtailer_types.go index 69e05ba67..1f49e82bf 100644 --- a/pkg/sdk/extensions/api/v1alpha1/eventtailer_types.go +++ b/pkg/sdk/extensions/api/v1alpha1/eventtailer_types.go @@ -35,7 +35,8 @@ type _metaEventTailer = interface{} //nolint:deadcode,unused // EventTailerSpec defines the desired state of EventTailer type EventTailerSpec struct { - //+kubebuilder:validation:Required + // +kubebuilder:validation:Required + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable, please recreate the resource" // The resources of EventTailer will be placed into this namespace ControlNamespace string `json:"controlNamespace"` diff --git a/pkg/sdk/logging/api/v1beta1/logging_types.go b/pkg/sdk/logging/api/v1beta1/logging_types.go index 7f7a35e61..cd2a186bf 100644 --- a/pkg/sdk/logging/api/v1beta1/logging_types.go +++ b/pkg/sdk/logging/api/v1beta1/logging_types.go @@ -72,6 +72,10 @@ type LoggingSpec struct { WatchNamespaceSelector *metav1.LabelSelector `json:"watchNamespaceSelector,omitempty"` // Cluster domain name to be used when templating URLs to services (default: "cluster.local."). ClusterDomain *string `json:"clusterDomain,omitempty"` + + // +kubebuilder:validation:Required + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable, please recreate the resource" + // Namespace for cluster wide configuration resources like ClusterFlow and ClusterOutput. // This should be a protected namespace from regular users. // Resources like fluentbit and fluentd will run in this namespace as well. @@ -92,6 +96,9 @@ type LoggingSpec struct { // - downstream parsers can use the `log` field instead of `message` as they did with the docker runtime // - the `concat` and `parser` filters are automatically set back to use the `log` field EnableDockerParserCompatibilityForCRI bool `json:"enableDockerParserCompatibilityForCRI,omitempty"` + // RouteConfig determines whether to use loggingRoutes or to create resources based on the logging resource + // that can be managed by the Telemetry Controller. + RouteConfig *RouteConfig `json:"routeConfig,omitempty"` } type ConfigCheckStrategy string @@ -114,6 +121,19 @@ type ConfigCheck struct { Labels map[string]string `json:"labels,omitempty"` } +type RouteConfig struct { + // If DisableLoggingRoute is set to true, the logging route controller + // should remove the given tenant from the status of the logging resource. + DisableLoggingRoute bool `json:"disableLoggingRoute,omitempty"` + // If EnableTelemtryControllerRoute set to true, the operator will create + // the corresponding Tenant, Subscription, Output based on the logging resource. + EnableTelemetryControllerRoute bool `json:"enableTelemetryControllerRoute,omitempty"` + // TenantLabels is a map of labels that will be added to the tenant object + // so it can be matched with TelemetryController's TenantSelector + // ref: https://github.com/kube-logging/telemetry-controller/blob/main/api/telemetry/v1alpha1/collector_types.go + TenantLabels map[string]string `json:"tenantLabels,omitempty"` +} + // LoggingStatus defines the observed state of Logging type LoggingStatus struct { // Result of the config check. Under normal conditions there is a single item in the map with a bool value. @@ -207,6 +227,10 @@ func (l *Logging) SetDefaults() error { return err } } + if l.Spec.RouteConfig == nil { + l.Spec.RouteConfig = &RouteConfig{} + } + l.configCheckDefaults() if len(l.Status.SyslogNGConfigName) == 0 { l.Spec.SyslogNGSpec.SetDefaults() diff --git a/pkg/sdk/logging/api/v1beta1/zz_generated.deepcopy.go b/pkg/sdk/logging/api/v1beta1/zz_generated.deepcopy.go index a1c0f5131..fa99c569c 100644 --- a/pkg/sdk/logging/api/v1beta1/zz_generated.deepcopy.go +++ b/pkg/sdk/logging/api/v1beta1/zz_generated.deepcopy.go @@ -2057,6 +2057,11 @@ func (in *LoggingSpec) DeepCopyInto(out *LoggingSpec) { } } } + if in.RouteConfig != nil { + in, out := &in.RouteConfig, &out.RouteConfig + *out = new(RouteConfig) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingSpec. @@ -2704,6 +2709,28 @@ func (in *ReadinessDefaultCheck) DeepCopy() *ReadinessDefaultCheck { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteConfig) DeepCopyInto(out *RouteConfig) { + *out = *in + if in.TenantLabels != nil { + in, out := &in.TenantLabels, &out.TenantLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteConfig. +func (in *RouteConfig) DeepCopy() *RouteConfig { + if in == nil { + return nil + } + out := new(RouteConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Security) DeepCopyInto(out *Security) { *out = *in From 211aa4420f97d27d553ad5b193deee21aa4f0894 Mon Sep 17 00:00:00 2001 From: Bence Csati Date: Fri, 6 Dec 2024 17:36:37 +0100 Subject: [PATCH 2/7] chore: remove chart tgz Signed-off-by: Bence Csati --- .github/workflows/artifacts.yaml | 3 +++ .gitignore | 2 +- .../charts/telemetry-controller-0.0.13.tgz | Bin 156553 -> 0 bytes hack/test.sh | 4 +++- 4 files changed, 7 insertions(+), 2 deletions(-) delete mode 100644 charts/logging-operator/charts/telemetry-controller-0.0.13.tgz diff --git a/.github/workflows/artifacts.yaml b/.github/workflows/artifacts.yaml index 97f86889a..9596ad0cf 100644 --- a/.github/workflows/artifacts.yaml +++ b/.github/workflows/artifacts.yaml @@ -270,6 +270,9 @@ jobs: id: oci-chart-name run: echo "value=${{ steps.oci-registry-name.outputs.value }}/${{ steps.chart-name.outputs.value }}" >> "$GITHUB_OUTPUT" + - name: Helm dependency update + run: helm dependency update charts/${{ steps.chart-name.outputs.value }} + - name: Helm lint run: helm lint charts/${{ steps.chart-name.outputs.value }} diff --git a/.gitignore b/.gitignore index 55dec88a4..869acccab 100644 --- a/.gitignore +++ b/.gitignore @@ -93,7 +93,7 @@ testbin example/tls-cluster-forward/*.pem example/tls-cluster-forward/*.csr example/tls-cluster-forward/*.key - +charts/logging-operator/charts/*.tgz .licensei.cache .DS_Store diff --git a/charts/logging-operator/charts/telemetry-controller-0.0.13.tgz b/charts/logging-operator/charts/telemetry-controller-0.0.13.tgz deleted file mode 100644 index ecd355e6faf2256b5d1197f31bd6298beca06b3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156553 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