190 Commits
Author SHA1 Message Date
zooqueenandHanzo Dev 649cac9021 mirror: run in a repository, and ship as a subcommand of the one binary
Reconcile could never have worked. RealGit set no working directory, so every
command ran wherever the process started — for a scheduled job, nowhere — and git
answers "fatal: not a git repository" to the fetch. That error arrives on the
branch that reports GITHUB as unreadable, so a reconciler with perfect
credentials and a perfect table would have called all 24 repos unreachable and
asked a person to look at each one. The dry run passed throughout, because a dry
run resolves names and never touches git.

Git therefore takes the directory as a parameter, and Workspace prepares one
store per repo under a root that MAY survive between runs. May, not must: git's
fetch negotiation offers whatever is already present, so a kept root makes later
runs deltas, and an empty one is equally correct and merely slower. That is what
lets the job use an emptyDir instead of a claim — a ReadWriteOnce volume would
buy the same time at the price of a job pod deadlocking on Multi-Attach whenever
it schedules away from the node holding it.

Both sides are now fetched, not just GitHub. The forge goes first for two
reasons: its tip has to be local before a genuine divergence can be NAMED rather
than reported as "ancestry undetermined", and once its history is present those
objects are offered in negotiation, so the internet side of every run is a delta
even on an empty store. That is the whole reason ten-minute scheduling is
affordable over two dozen repositories.

The proof is a real one. TestFastForwardMovesARealRepository builds two bare
repositories, leaves the forge a commit behind, and requires it to end on
GitHub's tip — then rewinds GitHub so the two genuinely disagree and requires the
forge NOT to move. Every other test in this file uses a fake that agrees with the
code about what git is, which is exactly why none of them caught this. Verified
by mutation: drop `cmd.Dir` and it fails.

Shipping is one binary, not two. cmd/hanzo-mirror becomes cmd/cd-mirror,
dispatched by argv[0] like every other cd command, so the reconciler travels in
the image the control plane already builds, pins and deploys — no second artifact
to version, and no second chance for the two to disagree about which repos exist.
The table travels with it at common.DefaultMirrorTable rather than living in a
ConfigMap, so the JSON that CI validates is the JSON the scheduled run reads.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-04 16:53:25 -07:00
zeekayandHanzo Dev 472238ddb0 cd: the API is /v1, not /api/v1 — no /api prefix anywhere
House rule: /v1/ is the API prefix, everywhere, and /api/ is never added on
top of it. The api.* subdomain names the API; a path prefix restating it is
noise. This applies it to the whole route surface:

  /api/v1/*      -> /v1/*        106 proto annotations, 109 gateway patterns
  /api/version   -> /v1/version
  /api/badge     -> /v1/badge
  /api/webhook   -> /v1/webhook  (server + applicationset controller)
  /api/dex/*     -> /v1/dex/*    (constants; dex is built, not deployed)

The grpc-gateway .pb.gw.go files are generated, and the plugin toolchain is
not on this machine, so they were rewritten by a script that applies exactly
the transform codegen would: for /api/v1 paths, drop the leading "api"
literal-push opcode pair and decrement every LitPush(2,N)/Capture(5,N) pool
index; for /api/version, rename the segment. ConcatN(4,N) operands are
counts, not pool indexes, and are untouched. The .proto annotations moved in
the same commit, so the next real codegen run is a no-op against these files.

MustPattern panics at package init on a malformed pattern, so every rewritten
pattern is validated by any import of pkg/apiclient — those tests pass.

Also moved: assets/swagger.json (82 paths), the UI's two roots (apiRoot()
'/v1', version-service '/v1/version') and its two relative composers (app
logs download, badge panel), the five audit-pattern regexes in server.go, and
the tests that asserted the old paths. terminal_test's request URL claimed
/api/v1/terminal, a route that never existed — the handler is mounted at
/terminal; the fixture now says so.

NOT touched, deliberately: /api/v3 in GitHub Enterprise base-url examples
(GitHub's URL shape, not ours), util/vendored/kubeclientmetrics (parses the
KUBERNETES API server's /api/v1 paths), and util/http's cookie-path fixture
(arbitrary string exercising slash normalization).

go build ./... clean. Pre-existing failures in badge/session/webhook/account
tests reproduce identically on the parent commit (rebrand fallout — badge
colors, cookie name length, dex issuer) and are not made worse here.

External consumers checked: universe has zero references to cd.hanzo.ai/api;
the CLI speaks gRPC, not the REST gateway; UI and server ship in one image so
they move together.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-29 12:01:34 -07:00
zeekayandHanzo Dev 1ab6e799c1 cd: the module is github.com/hanzoai/cd, where it is actually hosted
go.mod still declared `module github.com/hanzoai/deploy` after the repo was
renamed. A Go module path is not cosmetic — it is the resolvable location. So
`go get github.com/hanzoai/cd` could not work, and anything importing this
module had to spell a name that no longer exists at that address. The build log
of v3.6.0 is where it surfaced: the compiler was still emitting
github.com/hanzoai/deploy/cmd/cd/commands.

3541 import paths across 690 .go, 19 .proto, 4 .yaml, 3 .sh, 2 .mod, Procfile
and Makefile. Plus the 62 ghcr.io/hanzoai/deploy image references, moved to
ghcr.io/hanzoai/cd to match hanzo.yml's build target — a distinct string from
the module path, replaced separately so neither could clobber the other.

go mod tidy clean, CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ./... clean.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 21:16:24 -07:00
zeekayandHanzo Dev 446e343a3d cd: annotations are cd.hanzo.ai, API group is apps.hanzo.ai
Two corrections on top of the naming pass, both found by checking the live
cluster rather than the source.

The rename had silently changed the user-facing annotation key from
argocd.argoproj.io/sync-wave to cd.argoproj.io/sync-wave — 63 live
Applications carry the old key, so deploying that would have ignored every
sync-wave and broken fleet deploy ordering. The key is now cd.hanzo.ai/*,
and universe 575650286 moves the ApplicationSet template that stamps it, so
the controller regenerates all 63 consistently.

The API group in code said argoproj.io/v1alpha1 in 157 places while the
cluster has served apps.hanzo.ai/v1alpha1 since 2026-07-23 (the CRDs are
applications.apps.hanzo.ai). Code now matches what is actually served.

The legacy applications.argoproj.io/app-name label had ZERO live users, so it
went with the rest. foo.argoproj.io test fixtures became foo.example.com —
arbitrary test domains should not carry a vendor name.

go build ./... exit 0.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 16:32:14 -07:00
zeekayandHanzo Dev b2d7140a0e cd: delete the notification subsystem — we use hanzoai/notify
The last argoproj dependency. notifications-engine was 49 files / 920K and
backed a subsystem with ZERO live workloads and ZERO Applications carrying
notification annotations, while hanzoai/notify v1.7.2 is already embedded in
cloud. Two ways to notify, one of them dead and pulling a dependency.

Deleted: cmd/cd-notification, notification_controller/, server/notification/,
util/notification/, the admin CLI command, hack/gen-catalog (generated the
service catalog), the gen-docs notification pass, and the wiring in
server.go and cmd/main.go.

github.com/argoproj now appears ZERO times in go.mod. Both live argoproj
dependencies are gone — pkg/v2 internalized in the previous commit,
notifications-engine deleted here.

go build ./... exit 0.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 16:21:05 -07:00
zeekayandHanzo Dev 84ee9fa0ce cd: kill the argo naming — binaries, packages, identifiers
Every command is cd-*: cd, cd-server, cd-repo-server,
cd-application-controller, cd-applicationset-controller, cd-cmp-server,
cd-commit-server, cd-dex, cd-git-ask-pass, cd-k8s-auth, cd-notification.
util/argo is util/cd; util/notification/argocd is util/notification/cd.

Preserved deliberately: github.com/argoproj/argocd-example-apps is an
EXTERNAL repo used as an e2e fixture, and notifications-engine + pkg/v2 are
real dependencies. Renaming a URL we do not own would break the tests.

Two bugs I made and caught, both from a careless sed:
- s/argo/cd/g turned 'argocd' into 'cdcd' in two directory names
- renaming the package declaration left every call site saying argo.X

go build ./... exit 0.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 16:00:25 -07:00
zeekayandHanzo Dev dead2da249 cd: the configuration speaks CD_ and KV_
The fork was already ours everywhere that matters — our image, our IAM (dex
is not deployed), hanzo kv behind what the env still called REDIS. Only the
vocabulary was upstream's: ARGOCD_* across the Go, the manifests, the docs
and the plugin contract, and mkdocs still titled 'Argo CD' pointing at
argoproj/argo-cd.

ARGOCD_ -> CD_ and REDIS_ -> KV_ across 345 files, plus the 8 e2e/cmp
fixtures that assert the plugin env contract — those had to move with the
binary, which now emits CD_APP_NAME where they expected ARGOCD_APP_NAME.

Left alone deliberately, because renaming them would be wrong:
- util/helm/testdata/redis/ and gitops-engine/.../statefulset*.yaml are
  fixtures for a THIRD-PARTY chart named redis, not our config
- util/kustomize/testdata/ likewise
- generated.proto regenerates from types.go, which is already clean

go build ./... exit 0.

LOCKSTEP: the live StatefulSet sets 47 ARGOCD_* names the binary no longer
reads. universe 4a5375735 carries the matching manifest change; they deploy
together or the controller falls back to defaults.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 15:55:46 -07:00
zeekayandHanzo Dev dbecd2d18b fix: API group back to apps.hanzo.ai, the group the cluster actually serves
main declared Group = "cd.hanzo.ai" while every CRD, all four Applications and
every tracked object in hanzo-k8s are on apps.hanzo.ai. There are no
cd.hanzo.ai CRDs anywhere, so a build from main binds nothing: the controller
comes up healthy, watches a group with no resources, and silently stops
reconciling the fleet. The deployed image (sha-e1b9244, all three components)
is the only reason this has not fired.

The rename reached further than the group. common.go:215 moved the ownership
annotation to cd.hanzo.ai/tracking-id while live objects carry
apps.hanzo.ai/tracking-id, and the finalizers moved too
(resources-finalizer.cd.hanzo.ai), which would leave existing objects holding
finalizers no running controller removes. Renaming a CRD group plus the
ownership annotation plus the finalizers is a data migration over every managed
object, not a source edit — shipping it as an edit is the defect. Reverting
restores the property that was lost: main is deployable at any time.

Mitigating only by luck: prune is false on all three automated Applications, so
the failure mode is "GitOps stops" rather than "GitOps deletes". Not a design.

Verified: no occurrence was a hostname (checked for the argocd.hanzo.ai-style
substring trap; none), 29 files, zero residual, register.go now byte-identical
to the deployed baseline. go build ./... exits 0. TestGetGlobalProjects and
TestGetAppOfAppSummary fail identically on unmodified origin/main — pre-existing,
not from this change.

If cd.hanzo.ai is still wanted, it needs CRD install, object conversion,
annotation and finalizer rewrite across every tracked resource, and RBAC —
executed deliberately, not carried in a source constant.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 21:28:51 -07:00
zeekay 2ee31f825c rebrand: API group apps.hanzo.ai -> cd.hanzo.ai
apps.hanzo.ai collided head-on with the operator: its App CR already occupies
the resource name `apps.hanzo.ai` (plural `apps`, group `hanzo.ai`), so
`kubectl get apps.hanzo.ai` resolved to the operator's CR, not ours, and
`applications.apps.hanzo.ai` read as a stutter. cd.hanzo.ai gives the delivery
plane its own orthogonal group: applications/applicationsets/appprojects.cd.hanzo.ai
alongside the operator's apps.hanzo.ai. One name per concern.

Mechanically identical to e1b924475 (deploy.hanzo.ai -> apps.hanzo.ai): group
constant, every annotation/label/finalizer domain, the node.Group check, the
leader-election ID, the informer GVRs, RBAC apiGroups, and the 3 CRD manifests.
Also corrects the stale `+groupName=argoproj.io` marker in doc.go, which drove
nothing but misled every reader of this package, and the ArgoCD/argoproj naming
in the hanzo.yml cutover note.

Live cutover (CRD apply, CR re-home, image swap) stays separately greenlit —
hanzo.yml is deliberately build-only.
2026-07-25 15:11:48 -07:00
zeekayandHanzo Dev e1b924475c rebrand: API group deploy.hanzo.ai -> apps.hanzo.ai
The CRD kind is Application, so apps.hanzo.ai reads naturally
(applications/applicationsets/appprojects.apps.hanzo.ai). Flips the group
constant (pkg/apis/application/register.go), all annotation/label/finalizer
domains (tracking-id, installation-id, secret-type, refresh, hydrate,
resources-finalizer, etc.), the node.Group check, and the 3 CRD manifests.
Module path github.com/hanzoai/deploy and hanzocd-* object names unchanged.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-22 19:15:05 -07:00
e84f1d4806 rebrand: finish hanzocd operational layer (drop argocd.argoproj.io + argocd-* names) (#3)
The API group was already deploy.hanzo.ai, but the operational layer still
emitted upstream argocd naming, blending two brands on the live controller:

- annotation/label/finalizer domain argocd.argoproj.io -> deploy.hanzo.ai
  (tracking-id, installation-id, secret-type, refresh, hydrate, compare-options,
   skip-reconcile, ignore-*, finalizer)
- config-object + component + service-address names argocd-* -> hanzocd-*
  (cm, secret, rbac-cm, cmd-params-cm, tls-certs-cm, ssh-known-hosts-cm,
   gpg-keys-cm, notifications-cm/secret, server, repo-server,
   application-controller, redis, redis addr)
- argv[0] multi-call dispatch names + Dockerfile symlinks argocd-* -> hanzocd-*
  (CommandCLI "argocd" -> "hanzocd"; symlinks match the renamed constants)
- Makefile CLI_NAME/BIN_NAME -> hanzocd

Intentionally upstream-compatible (unchanged, so future argo-cd merges stay
clean): the Go module path, cmd package layout, Docker build-stage aliases,
build-target names, and the runtime uid. These are invisible to ops/kubectl.

Co-authored-by: z <[email protected]>

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-22 14:23:49 -07:00
15d87b3e72 refactor(cd): hard-fork - rename CRD API group argoproj.io -> deploy.hanzo.ai (#1)
* feat(api): hard-fork CRD API group argoproj.io -> deploy.hanzo.ai

Hanzo CD hard-fork, phase 1.1. Single source of truth is
pkg/apis/application/register.go's Group constant (Application/AppProject/
ApplicationSet all derive their FullName from it); every other Go call-site
that hardcoded the literal group string is updated to match: the 3 generated
informer GVRs, the app-of-apps nested-Application detector in types.go, the
resource-tree Application-kind cache populator, the 3 NotFound error
constructors in server/application, and the applicationset-controller's
leader-election Lease name/ID (kept in lockstep across Go source + RBAC
resourceNames, or leader election would get RBAC-denied on startup).

CRD YAMLs (application/appproject/applicationset) and every RBAC apiGroups
rule that actually governs our 3 CRDs are repointed to deploy.hanzo.ai, across
both manifests/base/* (namespaced Roles) and manifests/cluster-rbac/* (cluster
scope). Two adjacent things that share the "argoproj.io" string but are NOT
ours are deliberately left untouched: gitops-engine's health-check dispatch
for Argo Workflows' `Workflow` kind, and argocd-server-clusterrole's second
apiGroups block granting read on Argo Workflows' `workflows` resource — both
belong to a separate, unrelated Argoproj-family project we are not forking.

Also untouched, per explicit scope: annotation/label keys (argocd.argoproj.io/*)
and finalizers (*.argoproj.io) that track already-applied live resources, and
argocd-cm.yaml's resource.customizations.ignoreResourceUpdates keys (a narrow
app-of-apps diffing nicety, not build- or RBAC-relevant).

CGO_ENABLED=0 go build ./... verified green.

* ci: wire canonical hanzo.yml + cicd.yml (Hanzo CD image build)

Phase 1.3. Follows the same one-way pattern every hanzo/lux/zoo repo uses:
hanzo.yml declares the image (root Dockerfile -> ghcr.io/hanzoai/deploy) and a
fast go-build sanity test (the multi-stage Dockerfile build is the slow, real
gate); cicd.yml is the ~10-line trigger shim importing hanzoai/ci's reusable
build workflow on the arc pool, secrets from KMS only.

No `deploy:` block yet, matching the hanzoai/cms build-only-first-cutover
pattern: this repo's own live hanzo-cd namespace runs the whole Hanzo fleet's
GitOps, so the prod image/CRD swap is a deliberate separate action (see the
[HELD] universe PR), never an automatic rollout on merge. Every PR/push still
builds and pushes an immutable ghcr.io/hanzoai/deploy:sha-<7>-amd64 image.

* feat(ui): rebrand Argo CD -> Hanzo CD (title, favicon, logo, sidebar)

Phase 1.2. User-facing "Argo CD"/"ArgoCD" text replaced with "Hanzo CD"
across the login page, help modal, settings screens, version-info panel,
sync-options warning, fullscreen-logs title, app.tsx page titles, and
index.html's <title>/noscript text (dropped the now-wrong upstream CLI
doc link rather than invent a hanzo.ai URL that doesn't exist).

Logo/favicon assets replaced with the canonical Hanzo mark (never
hand-drawn, copied from ~/work/hanzo/logo/dist): the two real usages of
Argo's logo collapse onto one Hanzo glyph (mono + white variants) at the
same 5 call sites (login icon + footer, login.scss $logoPath/
$logoNegativePath, sidebar text-logo), preserving the existing CSS
invert() filters so both the light login panel and dark sidebar still
render correctly. Old argologo.svg/argo_o.svg/argo.png deleted (no
longer referenced). favicon-{16x16,32x32}.png added at
ui/src/assets/favicon/ (index.html's links to that path were previously
dead - the directory didn't exist in this checkout). package.json name
argo-cd-ui -> hanzo-cd-ui.

Left alone, deliberately: the two Kubernetes resource-kind icon sets
under ui/src/assets/images/resources/ (unrelated to branding), and
upstream doc/project links (argoproj.io, argo-cd.readthedocs.io) since
we have no equivalent hanzo.ai docs to point to yet - except the login
footer logo's outbound link, which now points to hanzo.ai instead of
argoproj.io (a Hanzo-branded mark linking to the upstream project it
was forked from read as an obvious leftover).

* feat(module): rename Go module github.com/argoproj/argo-cd/v3 -> github.com/hanzoai/deploy

Phase 2. No version suffix on the new path (org policy: never publish our
own Go modules above v1.x.x / with a v2+ suffix) — this fork starts a fresh
v0/v1 module identity rather than carrying the v3 the upstream fork point
had reached.

Mechanical, symmetric rewrite: 704 .go files (import statements only; two
disjoint substitutions applied specific-first so the nested gitops-engine
module path never double-matches), plus go.mod (module line, the
gitops-engine require+replace pair, version reset to v0.0.0-... since a
suffix-less path can't carry a v3 semver), gitops-engine/go.mod, Makefile
(ldflags PACKAGE + 2 TEST_MODULE filters), .golangci.yaml, .goreleaser.yaml,
.mockery.yaml (+ gitops-engine's), Procfile, the codegen/proto generation
scripts (hack/generate-proto.sh, update-codegen.sh, update-openapi.sh), and
20 .proto files' go_package options. Also one OpenTelemetry tracer name
string in gitops-engine/pkg/sync/sync_context.go (a cosmestic label, not an
import, but worth keeping consistent).

CGO_ENABLED=0 go build ./... verified green for both the root module and
the nested gitops-engine module; go vet clean on both; go mod tidy run
(network available) to reconcile go.sum, dependency set unchanged.

Left alone, deliberately: doc-only mentions (docs/snyk/*.html scan reports,
gitops-engine/README.md), a comment-only reference in
.github/workflows/release.yaml, and one Renovate bot config line — none are
build- or codegen-load-bearing. Also left alone: comments citing upstream
GitHub issue URLs (github.com/argoproj/argo-cd/issues/NNNNN) and a handful
of test fixtures using "https://github.com/argoproj/argo-cd.git" as a
representative example repo URL — both are accurate historical/test-data
references, not stale self-references.

---------

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-19 11:27:06 -07:00
Lohit KolluriandGitHub 679cee550c test: Add t.Parallel() to util/app tests (#28177)
Signed-off-by: Lohit Kolluri <[email protected]>
2026-06-10 16:37:18 -04:00
f7441034d9 feat: Support Azure Service Principal authentication for Azure DevOps repositories (#25324)
Signed-off-by: Allan Yung <[email protected]>
Co-authored-by: Dan Garfield <[email protected]>
2026-04-16 11:16:47 -04:00
Anand Francis JosephandGitHub 41f4636612 fix(server): invalidate JWT tokens on logout (#26388)
Signed-off-by: anandf <[email protected]>
2026-03-10 09:03:48 -04:00
ec34f71a6a feat: ApplicationSet watch API (#26409)
Signed-off-by: nitishfy <[email protected]>
Signed-off-by: Peter Jiang <[email protected]>
Co-authored-by: nitishfy <[email protected]>
2026-02-26 10:07:00 -05:00
jaehanbyunandGitHub 6b8761a60f chore(cmd): unify CLI names via common constants and simplify main dispatch (#24486)
Signed-off-by: jaehanbyun <[email protected]>
2026-02-15 12:03:39 +01:00
0272aa95db chore(common): Fix modernize linter (#26312)
Signed-off-by: Matthieu MOREL <[email protected]>
Co-authored-by: Blake Pettersson <[email protected]>
2026-02-07 18:36:02 +01:00
YuganandGitHub d1be7892d0 feat: Allow custom User-Agent headers for Helm repository requests (#25473)
Signed-off-by: Yugan <[email protected]>
2026-01-19 12:06:09 -05:00
Kevin RandGitHub 530bdf5489 feat: Add the ability to not autogenerate external URLs from ingress object (#13705) (#25383)
Signed-off-by: rkevin <[email protected]>
2025-12-02 12:04:58 +02:00
Atif AliandGitHub 249abf9d2b chore(ui): fix Incorrect links to applications managed by other argo instances (#23266)
Signed-off-by: Atif Ali <[email protected]>
2025-10-14 21:38:14 -04:00
pbhatnagar-ossandGitHub 059906749e feat(hydrator): Credential template to source hydrator (#23999)
Signed-off-by: pbhatnagar-oss <[email protected]>
2025-08-27 10:13:42 -04:00
Suraj yadavandGitHub 82365776d3 feat(ui): Requests info for Cpu and Mem added to Pod details (#20637)
Signed-off-by: Surajyadav <[email protected]>
Signed-off-by: Suraj yadav <[email protected]>
2025-07-31 12:55:12 -04:00
Nitish KumarandGitHub 4bf51810a1 test: add tests for retrieving the version (#23572)
Signed-off-by: nitishfy <[email protected]>
2025-07-08 09:13:55 -04:00
Peter JiangandGitHub a56442d954 feat: add SSA field manager migration options (#23337)
Signed-off-by: Peter Jiang <[email protected]>
Signed-off-by: Peter Jiang <[email protected]>
2025-06-13 21:58:07 +00:00
Michael CrenshawGitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7caee1cfbb chore(ci): upgrade golangci-lint to v2 (#22484)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Michael Crenshaw <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-27 12:37:52 -04:00
sivchariandGitHub b97525c11e chore: upgrade Go to 1.24 (#22242)
Signed-off-by: sivchari <[email protected]>
2025-03-10 10:14:41 -04:00
sivchariandGitHub 029918b43f fix: Use ARGOCD_SERVER for default value (#21930)
Signed-off-by: sivchari <[email protected]>
2025-02-22 12:20:15 +05:30
Matthieu MORELandGitHub 226fbb2a54 chore: enable usetesting linter (#21935)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-02-21 18:50:55 +00:00
Michael CrenshawandGitHub 54eb470afc feat(metrics): add more kubectl metrics (#21720)
Signed-off-by: Michael Crenshaw <[email protected]>
2025-02-19 11:21:22 -05:00
Alexandre GaudreaultandGitHub 4ab0b849c0 fix(dex): always request federated:id scope (#17908) (#21726)
Signed-off-by: Alexandre Gaudreault <[email protected]>
2025-01-31 17:12:59 +00:00
Michael CrenshawandGitHub 7d630560f5 feat: configurable log timestamp format (#21478)
* feat: configurable log timestamp format

Signed-off-by: Michael Crenshaw <[email protected]>

* lint

Signed-off-by: Michael Crenshaw <[email protected]>

---------

Signed-off-by: Michael Crenshaw <[email protected]>
2025-01-14 16:10:14 +00:00
Matthieu MORELandGitHub 064b5ae081 chore: enable indent-error-flow from revive (#21394)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-07 10:25:22 -05:00
Matthieu MORELandGitHub 5051940c20 chore: use testify instead of testing.Fatal (#21258)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-02 18:27:41 -05:00
Matthieu MORELandGitHub 6a8208c4ca chore: enable importas for k8s.io/apimachinery/pkg/apis/meta/v1 (#21284)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-12-31 10:34:11 +02:00
Matthieu MORELandGitHub db328e936c chore: use standard errors instead of github.com/pkg/errors (#21266)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-12-21 12:36:46 +02:00
Matthieu MORELandGitHub 4156151f8f chore: enable err-error and strconcat of perfsprint linter (#21267)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-12-20 16:22:28 +00:00
Michael CrenshawandGitHub ba889a0c86 feat: source hydrator (#20345)
* feat(hydrator): add sourceHydrator types

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

fix(codegen): use kube_codegen.sh deepcopy and client gen correctly

Signed-off-by: Michael Crenshaw <[email protected]>

deepcopy gen

Signed-off-by: Michael Crenshaw <[email protected]>

* feat(hydrator): add commit-server component

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

go mod tidy

Signed-off-by: Michael Crenshaw <[email protected]>

one test file for both implementations

Signed-off-by: Michael Crenshaw <[email protected]>

simplify

Signed-off-by: Michael Crenshaw <[email protected]>

fix test for linux

Signed-off-by: Michael Crenshaw <[email protected]>

fix git client mock

Signed-off-by: Michael Crenshaw <[email protected]>

fix git client mock

Signed-off-by: Michael Crenshaw <[email protected]>

address comments

Signed-off-by: Michael Crenshaw <[email protected]>

unit tests

Signed-off-by: Michael Crenshaw <[email protected]>

lint

Signed-off-by: Michael Crenshaw <[email protected]>

fix image, fix health checks, fix merge issue

Signed-off-by: Michael Crenshaw <[email protected]>

fix lint issues

Signed-off-by: Michael Crenshaw <[email protected]>

remove code that doesn't work for GHE

Signed-off-by: Michael Crenshaw <[email protected]>

changes from comments

Signed-off-by: Michael Crenshaw <[email protected]>

* feat(hydrator): enable controller

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

feat(hydrator): enable controller

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

allow opt-in

Signed-off-by: Michael Crenshaw <[email protected]>

separation between app controller and hydrator

Signed-off-by: Michael Crenshaw <[email protected]>

simplify diff

Signed-off-by: Michael Crenshaw <[email protected]>

todos

Signed-off-by: Michael Crenshaw <[email protected]>

simplify

Signed-off-by: Michael Crenshaw <[email protected]>

add dry sha to logs

Signed-off-by: Michael Crenshaw <[email protected]>

add app name to logs

Signed-off-by: Michael Crenshaw <[email protected]>

more logging, no caching

Signed-off-by: Michael Crenshaw <[email protected]>

fix cluster install

Signed-off-by: Michael Crenshaw <[email protected]>

don't interrupt an ongoing hydrate operation

Signed-off-by: Michael Crenshaw <[email protected]>

revert hydrate loop fix

Signed-off-by: Michael Crenshaw <[email protected]>

handle project-scoped repo creds

Signed-off-by: Michael Crenshaw <[email protected]>

codegen

Signed-off-by: Michael Crenshaw <[email protected]>

improve docs

Signed-off-by: Michael Crenshaw <[email protected]>

fixes from comments

Signed-off-by: Michael Crenshaw <[email protected]>

* set hydrator enabled key when using hydrator manifests

Signed-off-by: Michael Crenshaw <[email protected]>

fix manifests

Signed-off-by: Michael Crenshaw <[email protected]>

improve docs

Signed-off-by: Michael Crenshaw <[email protected]>

* feat(hydrator): enable controller

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

feat(hydrator): enable controller

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

allow opt-in

Signed-off-by: Michael Crenshaw <[email protected]>

separation between app controller and hydrator

Signed-off-by: Michael Crenshaw <[email protected]>

simplify diff

Signed-off-by: Michael Crenshaw <[email protected]>

todos

Signed-off-by: Michael Crenshaw <[email protected]>

simplify

Signed-off-by: Michael Crenshaw <[email protected]>

add dry sha to logs

Signed-off-by: Michael Crenshaw <[email protected]>

add app name to logs

Signed-off-by: Michael Crenshaw <[email protected]>

more logging, no caching

Signed-off-by: Michael Crenshaw <[email protected]>

fix cluster install

Signed-off-by: Michael Crenshaw <[email protected]>

don't interrupt an ongoing hydrate operation

Signed-off-by: Michael Crenshaw <[email protected]>

revert hydrate loop fix

Signed-off-by: Michael Crenshaw <[email protected]>

handle project-scoped repo creds

Signed-off-by: Michael Crenshaw <[email protected]>

codegen

Signed-off-by: Michael Crenshaw <[email protected]>

improve docs

Signed-off-by: Michael Crenshaw <[email protected]>

fixes from comments

Signed-off-by: Michael Crenshaw <[email protected]>

* feat(hydrator): add sourceHydrator types

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

fix(codegen): use kube_codegen.sh deepcopy and client gen correctly

Signed-off-by: Michael Crenshaw <[email protected]>

deepcopy gen

Signed-off-by: Michael Crenshaw <[email protected]>

* feat(hydrator): enable controller

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

feat(hydrator): enable controller

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

allow opt-in

Signed-off-by: Michael Crenshaw <[email protected]>

separation between app controller and hydrator

Signed-off-by: Michael Crenshaw <[email protected]>

simplify diff

Signed-off-by: Michael Crenshaw <[email protected]>

todos

Signed-off-by: Michael Crenshaw <[email protected]>

simplify

Signed-off-by: Michael Crenshaw <[email protected]>

add dry sha to logs

Signed-off-by: Michael Crenshaw <[email protected]>

add app name to logs

Signed-off-by: Michael Crenshaw <[email protected]>

more logging, no caching

Signed-off-by: Michael Crenshaw <[email protected]>

fix cluster install

Signed-off-by: Michael Crenshaw <[email protected]>

don't interrupt an ongoing hydrate operation

Signed-off-by: Michael Crenshaw <[email protected]>

revert hydrate loop fix

Signed-off-by: Michael Crenshaw <[email protected]>

handle project-scoped repo creds

Signed-off-by: Michael Crenshaw <[email protected]>

codegen

Signed-off-by: Michael Crenshaw <[email protected]>

* feat(hydrator): write credentials handling + UI

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

feat(hydrator): enable controller

Co-authored-by: Alexandre Gaudreault <[email protected]>
Co-authored-by: Omer Azmon <[email protected]>
Co-authored-by: daengdaengLee <[email protected]>
Co-authored-by: Juwon Hwang (Kevin) <[email protected]>
Co-authored-by: thisishwan2 <[email protected]>
Co-authored-by: mirageoasis <[email protected]>
Co-authored-by: Robin Lieb <[email protected]>
Co-authored-by: miiiinju1 <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>

allow opt-in

Signed-off-by: Michael Crenshaw <[email protected]>

separation between app controller and hydrator

Signed-off-by: Michael Crenshaw <[email protected]>

simplify diff

Signed-off-by: Michael Crenshaw <[email protected]>

todos

Signed-off-by: Michael Crenshaw <[email protected]>

simplify

Signed-off-by: Michael Crenshaw <[email protected]>

add dry sha to logs

Signed-off-by: Michael Crenshaw <[email protected]>

add app name to logs

Signed-off-by: Michael Crenshaw <[email protected]>

more logging, no caching

Signed-off-by: Michael Crenshaw <[email protected]>

fix cluster install

Signed-off-by: Michael Crenshaw <[email protected]>

don't interrupt an ongoing hydrate operation

Signed-off-by: Michael Crenshaw <[email protected]>

revert hydrate loop fix

Signed-off-by: Michael Crenshaw <[email protected]>

feat(hydrator): write credentials handling + UI

Signed-off-by: Michael Crenshaw <[email protected]>

WIP: add new APIs for write creds

Signed-off-by: Michael Crenshaw <[email protected]>

write api and template api

Signed-off-by: Michael Crenshaw <[email protected]>

fix time function

Signed-off-by: Michael Crenshaw <[email protected]>

fix lint issues

Signed-off-by: Michael Crenshaw <[email protected]>

don't enrich with read creds

Signed-off-by: Michael Crenshaw <[email protected]>

revert tls change

Signed-off-by: Michael Crenshaw <[email protected]>

don't disable buttons in UI

Signed-off-by: Michael Crenshaw <[email protected]>

ask repo server for specific revision

Signed-off-by: Michael Crenshaw <[email protected]>

fixes

Signed-off-by: Michael Crenshaw <[email protected]>

lint ui

Signed-off-by: Michael Crenshaw <[email protected]>

remove unnecessary change

Signed-off-by: Michael Crenshaw <[email protected]>

fix test and lint

Signed-off-by: Michael Crenshaw <[email protected]>

lint

Signed-off-by: Michael Crenshaw <[email protected]>

enable hydrator for e2e tests

Signed-off-by: Michael Crenshaw <[email protected]>

* free disk space for e2e tests

Signed-off-by: Michael Crenshaw <[email protected]>

don't free disk space

Signed-off-by: Michael Crenshaw <[email protected]>

* free disk space for e2e tests

Signed-off-by: Michael Crenshaw <[email protected]>

* remove comment that breaks auth

Signed-off-by: Michael Crenshaw <[email protected]>

* try removing extra function

Signed-off-by: Michael Crenshaw <[email protected]>

* cleanup from comments

Signed-off-by: Michael Crenshaw <[email protected]>

* fix test

Signed-off-by: Michael Crenshaw <[email protected]>

---------

Signed-off-by: Michael Crenshaw <[email protected]>
2024-12-16 16:59:09 -05:00
Michael CrenshawandGitHub a2ea49ba1b chore: use new fake k8s client constructor (#21186)
Signed-off-by: Michael Crenshaw <[email protected]>
2024-12-16 14:49:30 +05:30
ABBOUD MoncefandGitHub a265fb454b feat(app): add ignore-healthcheck annotation (#20462)
Signed-off-by: cef <[email protected]>
2024-11-21 07:16:53 -05:00
Matthieu MORELandGitHub 478219ef2e chore: enable perfsprint linter (#20685)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-11-10 21:00:57 -05:00
pasha-codefreshandGitHub 742b315b5d feat: appset scm generators and PR generators should be able to access only secrets related to appset (#20309) 2024-10-15 08:28:13 -04:00
Alexander MatyushentsevandGitHub bd895ce9c9 fix: support managing cluster with multiple argocd instances and annotation based tracking (#20222)
Signed-off-by: Alexander Matyushentsev <[email protected]>
2024-10-04 17:54:37 -07:00
Matthieu MORELandGitHub 4f6f65afb1 fix: use ErrorContains(t, err instead of Contains(t, err.Error() (#20220)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-10-04 09:36:05 -04:00
Josh SorefandGitHub cacc451da6 chore: Try to make CodeQL happy (#20094) (#20129)
* chore(common): Split const from unrelated util/clusterauth const

Signed-off-by: Josh Soref <[email protected]>

* chore: Try to make CodeQL happy

Signed-off-by: Josh Soref <[email protected]>

---------

Signed-off-by: Josh Soref <[email protected]>
2024-09-30 19:37:51 -04:00
56f179bf85 feat: allow auth token to be passed in via env (#19898)
* feat: allow auth token to be passed in via env

Allows the authentication token to come from environment if it's not found in cli args.

Signed-off-by: Nathan Shaaban <[email protected]>

* chore: generate cli docs

Signed-off-by: Nathan Shaaban <[email protected]>

---------

Signed-off-by: Nathan Shaaban <[email protected]>
Co-authored-by: Alexander Matyushentsev <[email protected]>
2024-09-17 15:04:25 +05:30
Nolan EmirotandGitHub d72514c750 docs: fix typo (#19567)
Signed-off-by: Nolan Emirot <[email protected]>
2024-08-17 15:16:04 -04:00
ilia-medvedev-codefreshandGitHub 5d388a3f4c fix: admin export and import applications and applicationsets from other namespaces (#19510)
* add support for all namespaces for apps and appsets in export and import

Signed-off-by: Ilia Medvedev <[email protected]>

* cleanup accidental merge issue

Signed-off-by: Ilia Medvedev <[email protected]>

* address comments and run lint

Signed-off-by: Ilia Medvedev <[email protected]>

* small fix

Signed-off-by: Ilia Medvedev <[email protected]>

* switch to make for slice

Signed-off-by: Ilia Medvedev <[email protected]>

* remove new line in command flags

Signed-off-by: Ilia Medvedev <[email protected]>

---------

Signed-off-by: Ilia Medvedev <[email protected]>
2024-08-13 17:30:00 +00:00
21217ac016 fix(cli): add optional password setting for headless redis client (#19035) (#19039)
* chore: add optional password setting for headless redis client

Signed-off-by: Rachel Sheikh <[email protected]>

* fix: remove import cycle

Signed-off-by: Rachel Sheikh <[email protected]>

* fix: add shared SetOptionalRedisPasswordFromKubeConfig method

Signed-off-by: Rachel Sheikh <[email protected]>

* fix: export redis consts

Signed-off-by: Rachel Sheikh <[email protected]>

* test: add test cases for SetOptionalRedisPasswordFromKubeConfig()

Signed-off-by: Rachel Sheikh <[email protected]>

* chore: go mod tidy

Signed-off-by: Rachel Sheikh <[email protected]>

* fix: use require instead of assert

Signed-off-by: Rachel Sheikh <[email protected]>

* fix: Update common/common.go

Co-authored-by: Michael Crenshaw <[email protected]>
Signed-off-by: Rachel Sheikh <[email protected]>

---------

Signed-off-by: Rachel Sheikh <[email protected]>
Signed-off-by: Rachel Sheikh <[email protected]>
Co-authored-by: Michael Crenshaw <[email protected]>
2024-07-15 15:09:49 -04:00
Matthieu MORELandGitHub 417ff7b19e chore: enable gofumpt and whitespace linters (#18567)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-06-11 15:41:55 +00:00