Repository navigation
Rebase onto flant/shell-operator upstream (fixes aws-tagging-operator CVE)Gb/rebase onto upstream - #953
Closed
gokulb04 wants to merge 3 commits into
Closed
Rebase onto flant/shell-operator upstream (fixes aws-tagging-operator CVE)Gb/rebase onto upstream#953gokulb04 wants to merge 3 commits into
gokulb04 wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This fork was forked from
flant/shell-operatorin early 2023 and never updated — it had drifted 316 commits behind upstreammain. That staleness is what caused the critical CVEs ongolang.org/x/netflagged in theau-com-1-percs-devops-critical-cvesremediation plan (row #11,infoblox/tags-operatorimage): the fork'sgo.modwas still pinned togolang.org/x/net v0.4.0, long after upstream itself moved on.This PR rebases our 3 Infoblox-specific commits onto current upstream
main, rather than hand-patching the stale base:7c752d7Add Jenkinsfile (Infoblox CI)3cd3a34Rename branch to main in jenkinsfiledb59cadAdded certwatcher to reload certs in webhookTwo commits from the original fork are not carried forward because upstream had already independently fixed/superseded them:
IncludeSnapshotsFromforKubernetesMutating/KubernetesConversionbindings) is already present upstream under their refactoredhtypespackage — same fix, just a different type-package name now.perl-utils,yq) are superseded by upstream's current Dockerfile, which already uses a newer kubectl (v1.35.8vs our oldv1.23.6), and no longer installsperl-utilsat all oryq.The cert-watcher commit (
db59cad) is the one genuine Infoblox feature this fork adds beyond upstream: it swaps statictls.LoadX509KeyPairforsigs.k8s.io/controller-runtime/pkg/certwatcherso the webhook server picks up a cert-manager-renewed certificate without a pod restart. I reapplied this by hand against upstream's current, substantially-reworkedwebhook/server/server.go(upstream added gracefulShutdown(), async.Mutex-guarded server lifecycle, and switched offlogrusto their owndeckhouse/pkg/login the 3 years since) — the automatic 3-way merge silently mis-resolved a line here, so I rewrote the function by hand rather than trust it.What else moved for free
Since this rebases onto current upstream rather than patching the old base in place, this also picks up ~3 years of upstream's own fixes:
golang.org/x/netis now whatever upstream currently pins (fixes the flagged CVE)golang:1.19-alpine3.16/alpine:3.16(EOL) to Deckhouse's currentcontainer-factoryimages (Go 1.26.4 / Alpine 3.22)itchyny/gojq— removes a C-library linking dependency entirely (the bundled/usr/bin/jqCLI binary for hook scripts to shell out to is unaffected, still present)perl-utilsis no longer installed in the runtime image at allValidation performed
go build ./...— cleango vet ./...— cleango test ./...— all packages pass, includingpkg/webhook/server(Test_ServerStartexercisescertwatcher.New()with real test certs, not just a compile check)golangci-lint v2.11.4(upstream's own CI-pinned version,--build-tags integration,test) — 0 issuesDockerfilebuilds successfully — confirmedregistry.deckhouse.iobase images are reachable and pull correctlyshell-operator version(confirmsitchyny/gojqjq engine active),shell-operator --help,kubectl version --client(v1.35.8) all verified liveKnown gap / out of scope here
The base-image registry (
registry.deckhouse.io) is a new external dependency this rebase introduces versus the old Dockerfile (which pulled fromflant/jqand plaingolang/alpineon Docker Hub). I've confirmed it's reachable from my own sandbox, but this should be re-verified from Infoblox's actual Jenkins CI before merging, since that's a different network path than what I tested from.