mirror of
https://github.com/argoproj/argo-cd
synced 2026-04-21 17:07:16 +00:00
* feat(hydrator): add sourceHydrator types Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix(codegen): use kube_codegen.sh deepcopy and client gen correctly Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> deepcopy gen Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * feat(hydrator): add commit-server component Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> go mod tidy Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> one test file for both implementations Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> simplify Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix test for linux Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix git client mock Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix git client mock Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> address comments Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> unit tests Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> lint Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix image, fix health checks, fix merge issue Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix lint issues Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> remove code that doesn't work for GHE Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> changes from comments Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * feat(hydrator): enable controller Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> feat(hydrator): enable controller Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> allow opt-in Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> separation between app controller and hydrator Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> simplify diff Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> todos Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> simplify Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> add dry sha to logs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> add app name to logs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> more logging, no caching Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix cluster install Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> don't interrupt an ongoing hydrate operation Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> revert hydrate loop fix Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> handle project-scoped repo creds Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> codegen Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> improve docs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fixes from comments Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * set hydrator enabled key when using hydrator manifests Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix manifests Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> improve docs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * feat(hydrator): enable controller Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> feat(hydrator): enable controller Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> allow opt-in Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> separation between app controller and hydrator Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> simplify diff Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> todos Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> simplify Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> add dry sha to logs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> add app name to logs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> more logging, no caching Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix cluster install Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> don't interrupt an ongoing hydrate operation Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> revert hydrate loop fix Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> handle project-scoped repo creds Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> codegen Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> improve docs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fixes from comments Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * feat(hydrator): add sourceHydrator types Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix(codegen): use kube_codegen.sh deepcopy and client gen correctly Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> deepcopy gen Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * feat(hydrator): enable controller Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> feat(hydrator): enable controller Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> allow opt-in Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> separation between app controller and hydrator Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> simplify diff Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> todos Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> simplify Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> add dry sha to logs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> add app name to logs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> more logging, no caching Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix cluster install Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> don't interrupt an ongoing hydrate operation Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> revert hydrate loop fix Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> handle project-scoped repo creds Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> codegen Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * feat(hydrator): write credentials handling + UI Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> feat(hydrator): enable controller Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com> Co-authored-by: Omer Azmon <omer_azmon@intuit.com> Co-authored-by: daengdaengLee <gunho1020@gmail.com> Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com> Co-authored-by: thisishwan2 <feel000617@gmail.com> Co-authored-by: mirageoasis <kimhw0820@naver.com> Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com> Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr> Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> allow opt-in Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> separation between app controller and hydrator Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> simplify diff Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> todos Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> simplify Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> add dry sha to logs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> add app name to logs Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> more logging, no caching Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix cluster install Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> don't interrupt an ongoing hydrate operation Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> revert hydrate loop fix Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> feat(hydrator): write credentials handling + UI Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> WIP: add new APIs for write creds Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> write api and template api Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix time function Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix lint issues Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> don't enrich with read creds Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> revert tls change Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> don't disable buttons in UI Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> ask repo server for specific revision Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fixes Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> lint ui Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> remove unnecessary change Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> fix test and lint Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> lint Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> enable hydrator for e2e tests Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * free disk space for e2e tests Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> don't free disk space Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * free disk space for e2e tests Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * remove comment that breaks auth Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * try removing extra function Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * cleanup from comments Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> * fix test Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com> --------- Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
103 lines
3.7 KiB
Go
103 lines
3.7 KiB
Go
package hydrator
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
|
|
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1"
|
|
)
|
|
|
|
func Test_appNeedsHydration(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
now := metav1.NewTime(time.Now())
|
|
oneHourAgo := metav1.NewTime(now.Add(-1 * time.Hour))
|
|
|
|
testCases := []struct {
|
|
name string
|
|
app *v1alpha1.Application
|
|
timeout time.Duration
|
|
expectedNeedsHydration bool
|
|
expectedMessage string
|
|
}{
|
|
{
|
|
name: "source hydrator not configured",
|
|
app: &v1alpha1.Application{},
|
|
expectedNeedsHydration: false,
|
|
expectedMessage: "source hydrator not configured",
|
|
},
|
|
{
|
|
name: "hydrate requested",
|
|
app: &v1alpha1.Application{
|
|
ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{v1alpha1.AnnotationKeyHydrate: "normal"}},
|
|
Spec: v1alpha1.ApplicationSpec{SourceHydrator: &v1alpha1.SourceHydrator{}},
|
|
},
|
|
timeout: 1 * time.Hour,
|
|
expectedNeedsHydration: true,
|
|
expectedMessage: "hydrate requested",
|
|
},
|
|
{
|
|
name: "no previous hydrate operation",
|
|
app: &v1alpha1.Application{
|
|
Spec: v1alpha1.ApplicationSpec{SourceHydrator: &v1alpha1.SourceHydrator{}},
|
|
},
|
|
timeout: 1 * time.Hour,
|
|
expectedNeedsHydration: true,
|
|
expectedMessage: "no previous hydrate operation",
|
|
},
|
|
{
|
|
name: "spec.sourceHydrator differs",
|
|
app: &v1alpha1.Application{
|
|
Spec: v1alpha1.ApplicationSpec{SourceHydrator: &v1alpha1.SourceHydrator{}},
|
|
Status: v1alpha1.ApplicationStatus{SourceHydrator: v1alpha1.SourceHydratorStatus{CurrentOperation: &v1alpha1.HydrateOperation{
|
|
SourceHydrator: v1alpha1.SourceHydrator{DrySource: v1alpha1.DrySource{RepoURL: "something new"}},
|
|
}}},
|
|
},
|
|
timeout: 1 * time.Hour,
|
|
expectedNeedsHydration: true,
|
|
expectedMessage: "spec.sourceHydrator differs",
|
|
},
|
|
{
|
|
name: "hydration failed more than two minutes ago",
|
|
app: &v1alpha1.Application{
|
|
Spec: v1alpha1.ApplicationSpec{SourceHydrator: &v1alpha1.SourceHydrator{}},
|
|
Status: v1alpha1.ApplicationStatus{SourceHydrator: v1alpha1.SourceHydratorStatus{CurrentOperation: &v1alpha1.HydrateOperation{DrySHA: "abc123", FinishedAt: &oneHourAgo, Phase: v1alpha1.HydrateOperationPhaseFailed}}},
|
|
},
|
|
timeout: 1 * time.Hour,
|
|
expectedNeedsHydration: true,
|
|
expectedMessage: "previous hydrate operation failed more than 2 minutes ago",
|
|
},
|
|
{
|
|
name: "timeout reached",
|
|
app: &v1alpha1.Application{
|
|
Spec: v1alpha1.ApplicationSpec{SourceHydrator: &v1alpha1.SourceHydrator{}},
|
|
Status: v1alpha1.ApplicationStatus{SourceHydrator: v1alpha1.SourceHydratorStatus{CurrentOperation: &v1alpha1.HydrateOperation{StartedAt: oneHourAgo}}},
|
|
},
|
|
timeout: 1 * time.Minute,
|
|
expectedNeedsHydration: true,
|
|
expectedMessage: "hydration expired",
|
|
},
|
|
{
|
|
name: "hydrate not needed",
|
|
app: &v1alpha1.Application{
|
|
Spec: v1alpha1.ApplicationSpec{SourceHydrator: &v1alpha1.SourceHydrator{}},
|
|
Status: v1alpha1.ApplicationStatus{SourceHydrator: v1alpha1.SourceHydratorStatus{CurrentOperation: &v1alpha1.HydrateOperation{DrySHA: "abc123", StartedAt: now, FinishedAt: &now, Phase: v1alpha1.HydrateOperationPhaseFailed}}},
|
|
},
|
|
timeout: 1 * time.Hour,
|
|
expectedNeedsHydration: false,
|
|
expectedMessage: "",
|
|
},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
needsHydration, message := appNeedsHydration(tc.app, tc.timeout)
|
|
assert.Equal(t, tc.expectedNeedsHydration, needsHydration)
|
|
assert.Equal(t, tc.expectedMessage, message)
|
|
})
|
|
}
|
|
}
|