-
Notifications
You must be signed in to change notification settings - Fork 51
Replace kube-rbac-proxy sidecar with controller-runtime FilterProvider
#502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -32,13 +32,17 @@ spec: | |
| - name: external-dns-operator | ||
| image: quay.io/openshift/origin-external-dns-operator:latest | ||
| args: | ||
| - --metrics-bind-address=127.0.0.1:8080 | ||
| - --metrics-bind-address=:8443 | ||
| - --metrics-tls-cert-dir=/var/run/secrets/serving-cert | ||
| - --operator-namespace=$(OPERATOR_NAMESPACE) | ||
| - --operand-namespace=$(OPERATOR_NAMESPACE) | ||
| - --externaldns-image=$(RELATED_IMAGE_EXTERNAL_DNS) | ||
| - --trusted-ca-configmap=$(TRUSTED_CA_CONFIGMAP_NAME) | ||
| - --leader-elect | ||
| - --webhook-disable-http2 | ||
| ports: | ||
| - containerPort: 8443 | ||
| name: https | ||
|
Comment on lines
+43
to
+45
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
rg -n -C 4 \
'livenessProbe|readinessProbe|health-check|/healthz|/readyz' \
--glob '*.yaml' --glob '*.yml' .Repository: openshift/external-dns-operator Length of output: 2763 🏁 Script executed: cat -n config/manager/manager.yaml | head -60Repository: openshift/external-dns-operator Length of output: 2351 🏁 Script executed: cat -n config/default/manager_webhook_patch.yamlRepository: openshift/external-dns-operator Length of output: 867 Add a liveness probe to the rendered Deployment. The base manifest and webhook overlay define a readinessProbe but not a livenessProbe. Add livenessProbe to the same health-check port and endpoint as readinessProbe. Without it, the container cannot restart on hang or deadlock. 🤖 Prompt for AI AgentsSource: Path instructions |
||
| terminationMessagePolicy: FallbackToLogsOnError | ||
| env: | ||
| - name: OPERATOR_NAMESPACE | ||
|
|
@@ -63,4 +67,13 @@ spec: | |
| requests: | ||
| cpu: 100m | ||
| memory: 30Mi | ||
| volumeMounts: | ||
| - mountPath: /var/run/secrets/serving-cert | ||
| name: metrics-cert | ||
| readOnly: true | ||
| volumes: | ||
| - name: metrics-cert | ||
| secret: | ||
| defaultMode: 420 | ||
| secretName: external-dns-operator-metrics | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| serviceAccountName: external-dns-operator | ||
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -33,6 +33,7 @@ require ( | |
| ) | ||
|
|
||
| require ( | ||
| cel.dev/expr v0.19.1 // indirect | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
go mod verify
osv-scanner scan source -r .
go-licenses check ./...
awk '$0 ~ /\/\/ indirect$/ {print $1}' go.mod |
while read -r module; do
go mod why -m "$module"
done
rg -n -i 'sbom|provenance|attest|sigstore|cosign|sign' \
.github Makefile* Dockerfile* 2>/dev/null || trueRepository: openshift/external-dns-operator Length of output: 3776 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '--- go.mod ---'
cat -n go.mod
printf '%s\n' '--- matching go.sum entries ---'
python3 - <<'PY'
from pathlib import Path
mods = []
for line in Path("go.mod").read_text().splitlines():
parts = line.split()
if len(parts) >= 2 and not line.lstrip().startswith(("module ", "go ", "toolchain ")):
mods.append((parts[0], parts[1]))
sum_text = Path("go.sum").read_text() if Path("go.sum").exists() else ""
for mod, ver in mods:
matches = [line for line in sum_text.splitlines()
if line.startswith(f"{mod} {ver} ")]
print(f"{mod} {ver}: {'; '.join(matches) if matches else 'MISSING'}")
PY
printf '%s\n' '--- release and dependency controls ---'
find .github -maxdepth 3 -type f -print 2>/dev/null | sort
rg -n -i 'sbom|provenance|attest|sigstore|cosign|sign|osv|license|go mod verify|vendor' \
.github Makefile* Dockerfile* go.mod go.sum 2>/dev/null || trueRepository: openshift/external-dns-operator Length of output: 28542 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '--- dependency provenance ---'
for module in \
cel.dev/expr \
github.com/google/cel-go \
go.opentelemetry.io/otel/sdk \
google.golang.org/grpc
do
printf '\n[%s]\n' "$module"
go mod why -m "$module" 2>&1 || true
done
printf '%s\n' '--- tracked release and dependency-control files ---'
git ls-files | rg '(^|/)(go\.mod|go\.sum|vendor/|\.github/|Makefile|Dockerfile|.*(sbom|provenance|attest|cosign|sigstore|sign).*)$' || true
printf '%s\n' '--- relevant vendored license files ---'
find vendor -type f \( -iname 'LICENSE*' -o -iname 'COPYING*' -o -iname 'NOTICE*' \) \
2>/dev/null | rg 'cel|otel|grpc|google' || true
printf '%s\n' '--- exact checksum coverage for go.mod modules ---'
python3 - <<'PY'
from pathlib import Path
import re
text = Path("go.mod").read_text()
mods = []
in_require = False
for raw in text.splitlines():
line = raw.strip()
if line.startswith("require ("):
in_require = True
continue
if in_require and line == ")":
in_require = False
continue
if in_require:
m = re.match(r"(\S+)\s+(\S+)", line)
if m:
mods.append(m.groups())
sums = Path("go.sum").read_text().splitlines()
missing = []
for mod, ver in mods:
if not any(line.startswith(f"{mod} {ver} ") for line in sums):
missing.append(f"{mod} {ver}")
print(f"module_entries={len(mods)} missing_checksums={len(missing)}")
for item in missing:
print(item)
PYRepository: openshift/external-dns-operator Length of output: 13594 Vulnerable Dependency (CWE-1104) Upgrade the production-reachable vulnerable dependencies.
🤖 Prompt for AI AgentsSource: Path instructions
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same reasoning as for |
||
| cloud.google.com/go/auth v0.13.0 // indirect | ||
| cloud.google.com/go/auth/oauth2adapt v0.2.6 // indirect | ||
| cloud.google.com/go/compute/metadata v0.6.0 // indirect | ||
|
|
@@ -41,6 +42,7 @@ require ( | |
| github.com/Azure/go-autorest/autorest/to v0.3.0 // indirect | ||
| github.com/Azure/go-autorest/logger v0.2.1 // indirect | ||
| github.com/Azure/go-autorest/tracing v0.6.0 // indirect | ||
| github.com/antlr4-go/antlr/v4 v4.13.0 // indirect | ||
| github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23 // indirect | ||
| github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 // indirect | ||
| github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 // indirect | ||
|
|
@@ -53,6 +55,7 @@ require ( | |
| github.com/aws/smithy-go v1.25.1 // indirect | ||
| github.com/beorn7/perks v1.0.1 // indirect | ||
| github.com/blang/semver/v4 v4.0.0 // indirect | ||
| github.com/cenkalti/backoff/v4 v4.3.0 // indirect | ||
| github.com/cespare/xxhash/v2 v2.3.0 // indirect | ||
| github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect | ||
| github.com/emicklei/go-restful/v3 v3.11.0 // indirect | ||
|
|
@@ -71,12 +74,14 @@ require ( | |
| github.com/gobuffalo/flect v1.0.3 // indirect | ||
| github.com/gogo/protobuf v1.3.2 // indirect | ||
| github.com/golang-jwt/jwt/v4 v4.5.2 // indirect | ||
| github.com/google/cel-go v0.23.2 // indirect | ||
| github.com/google/gnostic-models v0.6.9 // indirect | ||
| github.com/google/s2a-go v0.1.8 // indirect | ||
| github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect | ||
| github.com/google/uuid v1.6.0 // indirect | ||
| github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect | ||
| github.com/googleapis/gax-go/v2 v2.14.1 // indirect | ||
| github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect | ||
| github.com/inconshreveable/mousetrap v1.1.0 // indirect | ||
| github.com/josharian/intern v1.0.0 // indirect | ||
| github.com/json-iterator/go v1.1.12 // indirect | ||
|
|
@@ -98,13 +103,18 @@ require ( | |
| github.com/spf13/afero v1.12.0 // indirect | ||
| github.com/spf13/cobra v1.9.1 // indirect | ||
| github.com/spf13/pflag v1.0.6 // indirect | ||
| github.com/stoewer/go-strcase v1.3.0 // indirect | ||
| github.com/x448/float16 v0.8.4 // indirect | ||
| github.com/xlab/treeprint v1.2.0 // indirect | ||
| go.opentelemetry.io/auto/sdk v1.1.0 // indirect | ||
| go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect | ||
| go.opentelemetry.io/otel v1.33.0 // indirect | ||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect | ||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect | ||
| go.opentelemetry.io/otel/metric v1.33.0 // indirect | ||
| go.opentelemetry.io/otel/sdk v1.33.0 // indirect | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
curl -sS https://api.osv.dev/v1/query \
-H 'Content-Type: application/json' \
-d '{
"package": {"ecosystem":"Go","name":"go.opentelemetry.io/otel/sdk"},
"version":"1.33.0"
}' | jq '{id: .id, aliases: .aliases, summary: .summary, affected: .affected}'Repository: openshift/external-dns-operator Length of output: 150 🏁 Script executed: #!/bin/bash
set -euo pipefail
# Query OSV for ALL vulnerabilities in this package (not pinned to version)
curl -sS https://api.osv.dev/v1/query \
-H 'Content-Type: application/json' \
-d '{
"package": {"ecosystem":"Go","name":"go.opentelemetry.io/otel/sdk"}
}' | jq '.vulns[] | {id, aliases, summary, affected: (.affected[0] | {versions, ranges})}'Repository: openshift/external-dns-operator Length of output: 1413 🌐 Web query:
💡 Result: GO-2026-4394 is a security vulnerability in the go.opentelemetry.io/otel/sdk package, identified by CVE-2026-24051 and GHSA-9h8m-3fm2-qjrq [1][2]. Vulnerability Details: The vulnerability is an Untrusted Search Path issue (CWE-426) affecting the resource detection code within the SDK [3][4]. Specifically, the SDK would execute system commands using a bare name, which allowed the Citations:
Upgrade Line 115 pins 🧰 Tools🪛 OSV Scanner (2.3.8)[HIGH] 115-115: go.opentelemetry.io/otel/sdk 1.33.0: OpenTelemetry Go SDK Vulnerable to Arbitrary Code Execution via PATH Hijacking in go.opentelemetry.io/otel/sdk (GO-2026-4394) [HIGH] 115-115: go.opentelemetry.io/otel/sdk 1.33.0: OpenTelemetry Go SDK Vulnerable to Arbitrary Code Execution via PATH Hijacking [HIGH] 115-115: go.opentelemetry.io/otel/sdk 1.33.0: opentelemetry-go: BSD kenv command not using absolute path enables PATH hijacking 🤖 Prompt for AI AgentsSources: Coding guidelines, Linters/SAST tools
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Please address it with the next Kubernetes/controller-runtime bump. Would you like me to create a follow-up GitHub issue? ✏️ Learnings added
You are interacting with an AI system.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
No, we'll do it later. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
You are interacting with an AI system. |
||
| go.opentelemetry.io/otel/trace v1.33.0 // indirect | ||
| go.opentelemetry.io/proto/otlp v1.4.0 // indirect | ||
| go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect | ||
| go.uber.org/multierr v1.11.0 // indirect | ||
| go.uber.org/zap v1.27.0 // indirect | ||
|
|
@@ -121,6 +131,7 @@ require ( | |
| golang.org/x/tools v0.47.0 // indirect | ||
| golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated // indirect | ||
| gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect | ||
| google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect | ||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20241223144023-3abc09e42ca8 // indirect | ||
| google.golang.org/grpc v1.68.1 // indirect | ||
| google.golang.org/protobuf v1.36.5 // indirect | ||
|
|
@@ -131,9 +142,11 @@ require ( | |
| gopkg.in/yaml.v3 v3.0.1 // indirect | ||
| k8s.io/apiextensions-apiserver v0.33.0 // indirect | ||
| k8s.io/code-generator v0.33.0 // indirect | ||
| k8s.io/component-base v0.33.4 // indirect | ||
| k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 // indirect | ||
| k8s.io/klog/v2 v2.130.1 // indirect | ||
| k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect | ||
| sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect | ||
| sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect | ||
| sigs.k8s.io/kustomize/api v0.17.3 // indirect | ||
| sigs.k8s.io/kustomize/cmd/config v0.14.2 // indirect | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.