From 9ad71ebac3b67ed8bbe809ef688421f81ca6a22e Mon Sep 17 00:00:00 2001 From: gmuselli Date: Wed, 8 Feb 2023 09:10:53 -0500 Subject: [PATCH] 11164: ApplicationSet full templating Signed-off-by: gmuselli --- .../controllers/applicationset_controller.go | 17 +- .../applicationset_controller_test.go | 321 +- applicationset/generators/cluster.go | 5 +- applicationset/generators/duck_type.go | 5 +- .../generators/generator_spec_processor.go | 27 +- .../generator_spec_processor_test.go | 20 +- applicationset/generators/git.go | 17 +- applicationset/generators/interface.go | 3 +- applicationset/generators/list.go | 5 +- applicationset/generators/matrix.go | 7 +- applicationset/generators/matrix_test.go | 22 +- applicationset/generators/merge.go | 7 +- applicationset/generators/merge_test.go | 2 +- applicationset/generators/pull_request.go | 5 +- applicationset/generators/scm_provider.go | 5 +- applicationset/utils/utils.go | 63 +- applicationset/utils/utils_test.go | 184 +- applicationset/webhook/webhook_test.go | 4 +- assets/swagger.json | 60 +- cmd/argocd/commands/applicationset.go | 146 +- cmd/argocd/commands/applicationset_test.go | 134 +- .../applicationset/GoTemplate.md | 136 +- .../applicationset/Template.md | 26 +- docs/user-guide/commands/argocd_appset_get.md | 1 + go.mod | 2 +- hack/generate-proto.sh | 2 +- manifests/core-install.yaml | 10703 ++-------------- manifests/crds/applicationset-crd.yaml | 9879 +------------- manifests/ha/install.yaml | 10703 ++-------------- manifests/install.yaml | 10703 ++-------------- pkg/apis/api-rules/violation_exceptions.list | 1 - .../v1alpha1/applicationset_types.go | 45 +- pkg/apis/application/v1alpha1/generated.pb.go | 2779 ++-- pkg/apis/application/v1alpha1/generated.proto | 39 +- .../application/v1alpha1/openapi_generated.go | 143 +- .../v1alpha1/zz_generated.deepcopy.go | 101 +- server/applicationset/applicationset.go | 88 +- ... applicationset_cluster_generator_test.go} | 38 +- ...nset_clusterdecisiongenerator_e2e_test.go} | 31 +- ...t.go => applicationset_matrix_e2e_test.go} | 25 +- ...st.go => applicationset_merge_e2e_test.go} | 25 +- test/e2e/applicationset_test.go | 253 +- .../fixture/applicationsets/expectation.go | 6 + test/testutil.go | 78 + util/argo/argo.go | 38 +- 45 files changed, 4724 insertions(+), 42180 deletions(-) rename test/e2e/{cluster_generator_test.go => applicationset_cluster_generator_test.go} (89%) rename test/e2e/{clusterdecisiongenerator_e2e_test.go => applicationset_clusterdecisiongenerator_e2e_test.go} (93%) rename test/e2e/{matrix_e2e_test.go => applicationset_matrix_e2e_test.go} (88%) rename test/e2e/{merge_e2e_test.go => applicationset_merge_e2e_test.go} (88%) diff --git a/applicationset/controllers/applicationset_controller.go b/applicationset/controllers/applicationset_controller.go index b008c12d3b877..b816aac3cdd9d 100644 --- a/applicationset/controllers/applicationset_controller.go +++ b/applicationset/controllers/applicationset_controller.go @@ -456,18 +456,6 @@ func (r *ApplicationSetReconciler) getMinRequeueAfter(applicationSetInfo *argov1 return res } -func getTempApplication(applicationSetTemplate argov1alpha1.ApplicationSetTemplate) *argov1alpha1.Application { - var tmplApplication argov1alpha1.Application - tmplApplication.Annotations = applicationSetTemplate.Annotations - tmplApplication.Labels = applicationSetTemplate.Labels - tmplApplication.Namespace = applicationSetTemplate.Namespace - tmplApplication.Name = applicationSetTemplate.Name - tmplApplication.Spec = applicationSetTemplate.Spec - tmplApplication.Finalizers = applicationSetTemplate.Finalizers - - return &tmplApplication -} - func (r *ApplicationSetReconciler) generateApplications(applicationSetInfo argov1alpha1.ApplicationSet) ([]argov1alpha1.Application, argov1alpha1.ApplicationSetReasonType, error) { var res []argov1alpha1.Application @@ -475,7 +463,7 @@ func (r *ApplicationSetReconciler) generateApplications(applicationSetInfo argov var applicationSetReason argov1alpha1.ApplicationSetReasonType for _, requestedGenerator := range applicationSetInfo.Spec.Generators { - t, err := generators.Transform(requestedGenerator, r.Generators, applicationSetInfo.Spec.Template, &applicationSetInfo, map[string]interface{}{}) + t, err := generators.Transform(requestedGenerator, r.Generators, &applicationSetInfo.Spec.Template, &applicationSetInfo, map[string]interface{}{}) if err != nil { log.WithError(err).WithField("generator", requestedGenerator). Error("error generating application from params") @@ -487,10 +475,9 @@ func (r *ApplicationSetReconciler) generateApplications(applicationSetInfo argov } for _, a := range t { - tmplApplication := getTempApplication(a.Template) for _, p := range a.Params { - app, err := r.Renderer.RenderTemplateParams(tmplApplication, applicationSetInfo.Spec.SyncPolicy, p, applicationSetInfo.Spec.GoTemplate) + app, err := r.Renderer.RenderTemplateParams(a.Template, applicationSetInfo.Spec.SyncPolicy, p, applicationSetInfo.Spec.GoTemplate) if err != nil { log.WithError(err).WithField("params", a.Params).WithField("generator", requestedGenerator). Error("error generating application from params") diff --git a/applicationset/controllers/applicationset_controller_test.go b/applicationset/controllers/applicationset_controller_test.go index 76e46659d9639..9a4670013f5e7 100644 --- a/applicationset/controllers/applicationset_controller_test.go +++ b/applicationset/controllers/applicationset_controller_test.go @@ -25,6 +25,8 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client/fake" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" + testutils "github.com/argoproj/argo-cd/v2/test" + "github.com/argoproj/argo-cd/v2/applicationset/generators" "github.com/argoproj/argo-cd/v2/applicationset/utils" "github.com/argoproj/gitops-engine/pkg/health" @@ -41,10 +43,10 @@ type generatorMock struct { mock.Mock } -func (g *generatorMock) GetTemplate(appSetGenerator *argov1alpha1.ApplicationSetGenerator) *argov1alpha1.ApplicationSetTemplate { +func (g *generatorMock) GetTemplate(appSetGenerator *argov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { args := g.Called(appSetGenerator) - return args.Get(0).(*argov1alpha1.ApplicationSetTemplate) + return args.Get(0).(*apiextensionsv1.JSON) } func (g *generatorMock) GenerateParams(appSetGenerator *argov1alpha1.ApplicationSetGenerator, _ *argov1alpha1.ApplicationSet) ([]map[string]interface{}, error) { @@ -63,15 +65,26 @@ func (g *generatorMock) GetRequeueAfter(appSetGenerator *argov1alpha1.Applicatio return args.Get(0).(time.Duration) } -func (r *rendererMock) RenderTemplateParams(tmpl *argov1alpha1.Application, syncPolicy *argov1alpha1.ApplicationSetSyncPolicy, params map[string]interface{}, useGoTemplate bool) (*argov1alpha1.Application, error) { +func (r *rendererMock) RenderTemplateParams(tmpl map[string]interface{}, syncPolicy *argov1alpha1.ApplicationSetSyncPolicy, params map[string]interface{}, useGoTemplate bool) (*argov1alpha1.Application, error) { args := r.Called(tmpl, params, useGoTemplate) if args.Error(1) != nil { return nil, args.Error(1) } - return args.Get(0).(*argov1alpha1.Application), args.Error(1) + b, err := json.Marshal(tmpl) + + if err != nil { + return nil, err + } + + app := argov1alpha1.Application{} + + if err := json.Unmarshal(b, &app); err != nil { + return nil, err + } + return &app, args.Error(1) } func TestExtractApplications(t *testing.T) { @@ -85,24 +98,41 @@ func TestExtractApplications(t *testing.T) { for _, c := range []struct { name string params []map[string]interface{} - template argov1alpha1.ApplicationSetTemplate + template map[string]interface{} generateParamsError error rendererError error expectErr bool expectedReason v1alpha1.ApplicationSetReasonType + expectedApps []argov1alpha1.Application }{ { name: "Generate two applications", params: []map[string]interface{}{{"name": "app1"}, {"name": "app2"}}, - template: argov1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: argov1alpha1.ApplicationSetTemplateMeta{ - Name: "name", - Namespace: "namespace", - Labels: map[string]string{"label_name": "label_value"}, + template: map[string]interface{}{ + "metadata": map[string]interface{}{ + "namespace": "namespace", + "name": "name", + "labels": map[string]interface{}{"label_name": "label_value"}, }, - Spec: argov1alpha1.ApplicationSpec{}, + "spec": map[string]interface{}{}, }, expectedReason: "", + expectedApps: []argov1alpha1.Application{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "name", + Namespace: "namespace", + Labels: map[string]string{"label_name": "label_value"}, + }, + }, + { + ObjectMeta: metav1.ObjectMeta{ + Name: "name", + Namespace: "namespace", + Labels: map[string]string{"label_name": "label_value"}, + }, + }, + }, }, { name: "Handles error from the generator", @@ -113,13 +143,13 @@ func TestExtractApplications(t *testing.T) { { name: "Handles error from the render", params: []map[string]interface{}{{"name": "app1"}, {"name": "app2"}}, - template: argov1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: argov1alpha1.ApplicationSetTemplateMeta{ - Name: "name", - Namespace: "namespace", - Labels: map[string]string{"label_name": "label_value"}, + template: map[string]interface{}{ + "metadata": map[string]interface{}{ + "namespace": "namespace", + "name": "name", + "labels": map[string]interface{}{"label_name": "label_value"}, }, - Spec: argov1alpha1.ApplicationSpec{}, + "spec": map[string]interface{}{}, }, rendererError: fmt.Errorf("error"), expectErr: true, @@ -127,11 +157,6 @@ func TestExtractApplications(t *testing.T) { }, } { cc := c - app := argov1alpha1.Application{ - ObjectMeta: metav1.ObjectMeta{ - Name: "test", - }, - } t.Run(cc.name, func(t *testing.T) { @@ -153,22 +178,20 @@ func TestExtractApplications(t *testing.T) { Return(cc.params, cc.generateParamsError) generatorMock.On("GetTemplate", &generator). - Return(&argov1alpha1.ApplicationSetTemplate{}) + Return(&apiextensionsv1.JSON{Raw: []byte("{}")}) rendererMock := rendererMock{} - var expectedApps []argov1alpha1.Application - if cc.generateParamsError == nil { - for _, p := range cc.params { + for i, p := range cc.params { if cc.rendererError != nil { - rendererMock.On("RenderTemplateParams", getTempApplication(cc.template), p, false). + rendererMock.On("RenderTemplateParams", cc.template, p, false). Return(nil, cc.rendererError) } else { - rendererMock.On("RenderTemplateParams", getTempApplication(cc.template), p, false). + app := cc.expectedApps[i] + rendererMock.On("RenderTemplateParams", cc.template, p, false). Return(&app, nil) - expectedApps = append(expectedApps, app) } } } @@ -191,7 +214,7 @@ func TestExtractApplications(t *testing.T) { }, Spec: argov1alpha1.ApplicationSetSpec{ Generators: []argov1alpha1.ApplicationSetGenerator{generator}, - Template: cc.template, + Template: testutils.ToApiExtenstionsJSON(cc.template), }, }) @@ -200,7 +223,7 @@ func TestExtractApplications(t *testing.T) { } else { assert.NoError(t, err) } - assert.Equal(t, expectedApps, got) + assert.Equal(t, cc.expectedApps, got) assert.Equal(t, cc.expectedReason, reason) generatorMock.AssertNumberOfCalls(t, "GenerateParams", 1) @@ -223,43 +246,43 @@ func TestMergeTemplateApplications(t *testing.T) { for _, c := range []struct { name string params []map[string]interface{} - template argov1alpha1.ApplicationSetTemplate - overrideTemplate argov1alpha1.ApplicationSetTemplate - expectedMerged argov1alpha1.ApplicationSetTemplate + template map[string]interface{} + overrideTemplate map[string]interface{} + expectedMerged map[string]interface{} expectedApps []argov1alpha1.Application }{ { name: "Generate app", params: []map[string]interface{}{{"name": "app1"}}, - template: argov1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: argov1alpha1.ApplicationSetTemplateMeta{ - Name: "name", - Namespace: "namespace", - Labels: map[string]string{"label_name": "label_value"}, + template: map[string]interface{}{ + "metadata": map[string]interface{}{ + "name": "name", + "namespace": "namespace", + "labels": map[string]interface{}{"label_name": "label_value"}, }, - Spec: argov1alpha1.ApplicationSpec{}, + "spec": map[string]interface{}{}, }, - overrideTemplate: argov1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: argov1alpha1.ApplicationSetTemplateMeta{ - Name: "test", - Labels: map[string]string{"foo": "bar"}, + overrideTemplate: map[string]interface{}{ + "metadata": map[string]interface{}{ + "name": "test", + "labels": map[string]interface{}{"foo": "bar"}, }, - Spec: argov1alpha1.ApplicationSpec{}, + "spec": map[string]interface{}{}, }, - expectedMerged: argov1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: argov1alpha1.ApplicationSetTemplateMeta{ - Name: "test", - Namespace: "namespace", - Labels: map[string]string{"label_name": "label_value", "foo": "bar"}, + expectedMerged: map[string]interface{}{ + "metadata": map[string]interface{}{ + "name": "test", + "namespace": "namespace", + "labels": map[string]interface{}{"label_name": "label_value", "foo": "bar"}, }, - Spec: argov1alpha1.ApplicationSpec{}, + "spec": map[string]interface{}{}, }, expectedApps: []argov1alpha1.Application{ { ObjectMeta: metav1.ObjectMeta{ Name: "test", - Namespace: "test", - Labels: map[string]string{"foo": "bar"}, + Namespace: "namespace", + Labels: map[string]string{"label_name": "label_value", "foo": "bar"}, }, Spec: argov1alpha1.ApplicationSpec{}, }, @@ -278,12 +301,14 @@ func TestMergeTemplateApplications(t *testing.T) { generatorMock.On("GenerateParams", &generator). Return(cc.params, nil) + overrideTmpl := testutils.ToApiExtenstionsJSON(cc.overrideTemplate) + generatorMock.On("GetTemplate", &generator). - Return(&cc.overrideTemplate) + Return(&overrideTmpl) rendererMock := rendererMock{} - rendererMock.On("RenderTemplateParams", getTempApplication(cc.expectedMerged), cc.params[0], false). + rendererMock.On("RenderTemplateParams", cc.expectedMerged, cc.params[0], false). Return(&cc.expectedApps[0], nil) r := ApplicationSetReconciler{ @@ -304,7 +329,7 @@ func TestMergeTemplateApplications(t *testing.T) { }, Spec: argov1alpha1.ApplicationSetSpec{ Generators: []argov1alpha1.ApplicationSetGenerator{generator}, - Template: cc.template, + Template: testutils.ToApiExtenstionsJSON(cc.template), }, }, ) @@ -374,11 +399,7 @@ func TestCreateOrUpdateInCluster(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, }, existingApps: []argov1alpha1.Application{ @@ -432,11 +453,7 @@ func TestCreateOrUpdateInCluster(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, }, existingApps: []argov1alpha1.Application{ @@ -490,11 +507,7 @@ func TestCreateOrUpdateInCluster(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, }, existingApps: []argov1alpha1.Application{ @@ -552,11 +565,7 @@ func TestCreateOrUpdateInCluster(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, }, existingApps: []argov1alpha1.Application{ @@ -612,11 +621,7 @@ func TestCreateOrUpdateInCluster(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, }, existingApps: []argov1alpha1.Application{ @@ -684,13 +689,7 @@ func TestCreateOrUpdateInCluster(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - Source: &argov1alpha1.ApplicationSource{Path: "path", TargetRevision: "revision", RepoURL: "repoURL"}, - Destination: argov1alpha1.ApplicationDestination{Server: "server", Namespace: "namespace"}, - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project","source":{"path":"path","revision":"revision","repoURL":"repoURL"},"destination":{"server":"server","namespace":"namespace"}}`)}, }, }, existingApps: []argov1alpha1.Application{ @@ -764,11 +763,7 @@ func TestCreateOrUpdateInCluster(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, }, existingApps: []argov1alpha1.Application{ @@ -906,11 +901,7 @@ func TestRemoveFinalizerOnInvalidDestination_FinalizerTypes(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, } @@ -1068,11 +1059,7 @@ func TestRemoveFinalizerOnInvalidDestination_DestinationTypes(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, } @@ -1196,11 +1183,7 @@ func TestCreateApplications(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, }, existsApps: []argov1alpha1.Application{ @@ -1253,11 +1236,7 @@ func TestCreateApplications(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, }, existsApps: []argov1alpha1.Application{ @@ -1365,11 +1344,7 @@ func TestDeleteInCluster(t *testing.T) { Namespace: "namespace", }, Spec: argov1alpha1.ApplicationSetSpec{ - Template: argov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"project":"project"}`)}, }, }, existingApps: []argov1alpha1.Application{ @@ -1790,6 +1765,24 @@ func TestReconcilerValidationErrorBehaviour(t *testing.T) { ObjectMeta: metav1.ObjectMeta{Name: "default", Namespace: "argocd"}, Spec: argov1alpha1.AppProjectSpec{SourceRepos: []string{"*"}, Destinations: []argov1alpha1.ApplicationDestination{{Namespace: "*", Server: "https://good-cluster"}}}, } + + appSetTemplate := testutils.ToApiExtenstionsJSON(map[string]interface{}{ + "metadata": map[string]interface{}{ + "name": "{{.cluster}}", + "namespace": "argocd", + }, + "spec": map[string]interface{}{ + "source": map[string]interface{}{ + "repoURL": "https://github.com/argoproj/argocd-example-apps", + "path": "guestbook", + }, + "project": "default", + "destination": map[string]interface{}{ + "server": "{{.url}}", + }, + }, + }) + appSet := argov1alpha1.ApplicationSet{ ObjectMeta: metav1.ObjectMeta{ Name: "name", @@ -1808,17 +1801,7 @@ func TestReconcilerValidationErrorBehaviour(t *testing.T) { }, }, }, - Template: argov1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: argov1alpha1.ApplicationSetTemplateMeta{ - Name: "{{.cluster}}", - Namespace: "argocd", - }, - Spec: argov1alpha1.ApplicationSpec{ - Source: &argov1alpha1.ApplicationSource{RepoURL: "https://github.com/argoproj/argocd-example-apps", Path: "guestbook"}, - Project: "default", - Destination: argov1alpha1.ApplicationDestination{Server: "{{.url}}"}, - }, - }, + Template: appSetTemplate, }, } @@ -1893,7 +1876,7 @@ func TestSetApplicationSetStatusCondition(t *testing.T) { }}, }}, }, - Template: argov1alpha1.ApplicationSetTemplate{}, + Template: apiextensionsv1.JSON{Raw: []byte("{}")}, }, } @@ -1934,10 +1917,30 @@ func TestGenerateAppsUsingPullRequestGenerator(t *testing.T) { scheme := runtime.NewScheme() client := fake.NewClientBuilder().WithScheme(scheme).Build() + appSetTemplate := testutils.ToApiExtenstionsJSON(map[string]interface{}{ + "metadata": map[string]interface{}{ + "name": "AppSet-{{.branch}}-{{.number}}", + "labels": map[string]string{ + "app1": "{{index .labels 0}}", + }, + }, + "spec": map[string]interface{}{ + "source": map[string]interface{}{ + "repoURL": "https://testurl/testRepo", + "targetRevision": "{{.head_short_sha}}", + }, + "project": "default", + "destination": map[string]interface{}{ + "server": "https://kubernetes.default.svc", + "namespace": "AppSet-{{.branch_slug}}-{{.head_sha}}", + }, + }, + }) + for _, cases := range []struct { name string params []map[string]interface{} - template argov1alpha1.ApplicationSetTemplate + template apiextensionsv1.JSON expectedApp []argov1alpha1.Application }{ { @@ -1949,24 +1952,7 @@ func TestGenerateAppsUsingPullRequestGenerator(t *testing.T) { "head_sha": "089d92cbf9ff857a39e6feccd32798ca700fb958", "head_short_sha": "089d92cb", "labels": []string{"label1"}}}, - template: argov1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: argov1alpha1.ApplicationSetTemplateMeta{ - Name: "AppSet-{{.branch}}-{{.number}}", - Labels: map[string]string{ - "app1": "{{index .labels 0}}", - }, - }, - Spec: argov1alpha1.ApplicationSpec{ - Source: &argov1alpha1.ApplicationSource{ - RepoURL: "https://testurl/testRepo", - TargetRevision: "{{.head_short_sha}}", - }, - Destination: argov1alpha1.ApplicationDestination{ - Server: "https://kubernetes.default.svc", - Namespace: "AppSet-{{.branch_slug}}-{{.head_sha}}", - }, - }, - }, + template: appSetTemplate, expectedApp: []argov1alpha1.Application{ { ObjectMeta: metav1.ObjectMeta{ @@ -2089,6 +2075,26 @@ func TestPolicies(t *testing.T) { policy := utils.Policies[c.policyName] assert.NotNil(t, policy) + appSetTemplate := testutils.ToApiExtenstionsJSON(map[string]interface{}{ + "metadata": map[string]interface{}{ + "name": "{{.name}}", + "namespace": "argocd", + "annotations": map[string]string{ + "key": "value", + }, + }, + "spec": map[string]interface{}{ + "source": map[string]interface{}{ + "repoURL": "https://github.com/argoproj/argocd-example-apps", + "path": "guestbook", + }, + "project": "default", + "destination": map[string]interface{}{ + "server": "https://kubernetes.default.svc", + }, + }, + }) + appSet := argov1alpha1.ApplicationSet{ ObjectMeta: metav1.ObjectMeta{ Name: "name", @@ -2107,20 +2113,7 @@ func TestPolicies(t *testing.T) { }, }, }, - Template: argov1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: argov1alpha1.ApplicationSetTemplateMeta{ - Name: "{{.name}}", - Namespace: "argocd", - Annotations: map[string]string{ - "key": "value", - }, - }, - Spec: argov1alpha1.ApplicationSpec{ - Source: &argov1alpha1.ApplicationSource{RepoURL: "https://github.com/argoproj/argocd-example-apps", Path: "guestbook"}, - Project: "default", - Destination: argov1alpha1.ApplicationDestination{Server: "https://kubernetes.default.svc"}, - }, - }, + Template: appSetTemplate, }, } @@ -2221,7 +2214,7 @@ func TestSetApplicationSetApplicationStatus(t *testing.T) { }}, }}, }, - Template: argov1alpha1.ApplicationSetTemplate{}, + Template: apiextensionsv1.JSON{Raw: []byte("{}")}, }, } diff --git a/applicationset/generators/cluster.go b/applicationset/generators/cluster.go index d91ee3126279a..1e4996561ea5f 100644 --- a/applicationset/generators/cluster.go +++ b/applicationset/generators/cluster.go @@ -16,6 +16,7 @@ import ( "github.com/argoproj/argo-cd/v2/applicationset/utils" argoappsetv1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" ) const ( @@ -55,8 +56,8 @@ func (g *ClusterGenerator) GetRequeueAfter(appSetGenerator *argoappsetv1alpha1.A return NoRequeueAfter } -func (g *ClusterGenerator) GetTemplate(appSetGenerator *argoappsetv1alpha1.ApplicationSetGenerator) *argoappsetv1alpha1.ApplicationSetTemplate { - return &appSetGenerator.Clusters.Template +func (g *ClusterGenerator) GetTemplate(appSetGenerator *argoappsetv1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { + return appSetGenerator.Clusters.Template } func (g *ClusterGenerator) GenerateParams( diff --git a/applicationset/generators/duck_type.go b/applicationset/generators/duck_type.go index cdd13e8aeaf7a..363c4a73bdbb7 100644 --- a/applicationset/generators/duck_type.go +++ b/applicationset/generators/duck_type.go @@ -18,6 +18,7 @@ import ( "github.com/argoproj/argo-cd/v2/applicationset/utils" argoprojiov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" ) var _ Generator = (*DuckTypeGenerator)(nil) @@ -56,8 +57,8 @@ func (g *DuckTypeGenerator) GetRequeueAfter(appSetGenerator *argoprojiov1alpha1. return DefaultRequeueAfterSeconds } -func (g *DuckTypeGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate { - return &appSetGenerator.ClusterDecisionResource.Template +func (g *DuckTypeGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { + return appSetGenerator.ClusterDecisionResource.Template } func (g *DuckTypeGenerator) GenerateParams(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator, appSet *argoprojiov1alpha1.ApplicationSet) ([]map[string]interface{}, error) { diff --git a/applicationset/generators/generator_spec_processor.go b/applicationset/generators/generator_spec_processor.go index 4e08816e3e0c0..a5e005c54b529 100644 --- a/applicationset/generators/generator_spec_processor.go +++ b/applicationset/generators/generator_spec_processor.go @@ -1,8 +1,8 @@ package generators import ( - "fmt" "encoding/json" + "fmt" "reflect" "github.com/argoproj/argo-cd/v2/applicationset/utils" @@ -11,6 +11,7 @@ import ( "k8s.io/apimachinery/pkg/labels" argoprojiov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "github.com/imdario/mergo" log "github.com/sirupsen/logrus" @@ -22,11 +23,11 @@ const ( type TransformResult struct { Params []map[string]interface{} - Template argoprojiov1alpha1.ApplicationSetTemplate + Template map[string]interface{} } //Transform a spec generator to list of paramSets and a template -func Transform(requestedGenerator argoprojiov1alpha1.ApplicationSetGenerator, allGenerators map[string]Generator, baseTemplate argoprojiov1alpha1.ApplicationSetTemplate, appSet *argoprojiov1alpha1.ApplicationSet, genParams map[string]interface{}) ([]TransformResult, error) { +func Transform(requestedGenerator argoprojiov1alpha1.ApplicationSetGenerator, allGenerators map[string]Generator, baseTemplate *apiextensionsv1.JSON, appSet *argoprojiov1alpha1.ApplicationSet, genParams map[string]interface{}) ([]TransformResult, error) { selector, err := metav1.LabelSelectorAsSelector(requestedGenerator.Selector) if err != nil { return nil, fmt.Errorf("error parsing label selector: %w", err) @@ -122,14 +123,28 @@ func GetRelevantGenerators(requestedGenerator *argoprojiov1alpha1.ApplicationSet return res } -func mergeGeneratorTemplate(g Generator, requestedGenerator *argoprojiov1alpha1.ApplicationSetGenerator, applicationSetTemplate argoprojiov1alpha1.ApplicationSetTemplate) (argoprojiov1alpha1.ApplicationSetTemplate, error) { +func mergeGeneratorTemplate(g Generator, requestedGenerator *argoprojiov1alpha1.ApplicationSetGenerator, applicationSetTemplate *apiextensionsv1.JSON) (map[string]interface{}, error) { // Make a copy of the value from `GetTemplate()` before merge, rather than copying directly into // the provided parameter (which will touch the original resource object returned by client-go) dest := g.GetTemplate(requestedGenerator).DeepCopy() - err := mergo.Merge(dest, applicationSetTemplate) + destMapStringInterface := map[string]interface{}{} + + if dest != nil { + if err := json.Unmarshal(dest.Raw, &destMapStringInterface); err != nil { + return nil, err + } + } + + applicationSetTemplateMapStringInterface := map[string]interface{}{} + + if err := json.Unmarshal(applicationSetTemplate.Raw, &applicationSetTemplateMapStringInterface); err != nil { + return nil, err + } + + err := mergo.Merge(&destMapStringInterface, &applicationSetTemplateMapStringInterface) - return *dest, err + return destMapStringInterface, err } // Currently for Matrix Generator. Allows interpolating the matrix's 2nd child generator with values from the 1st child generator diff --git a/applicationset/generators/generator_spec_processor_test.go b/applicationset/generators/generator_spec_processor_test.go index 8dc125cac0d35..c3f4f31244f6a 100644 --- a/applicationset/generators/generator_spec_processor_test.go +++ b/applicationset/generators/generator_spec_processor_test.go @@ -9,8 +9,6 @@ import ( apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - argov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" - "github.com/stretchr/testify/mock" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" @@ -80,10 +78,10 @@ func TestMatchValues(t *testing.T) { Selector: testCase.selector, List: &argoprojiov1alpha1.ListGenerator{ Elements: testCase.elements, - Template: emptyTemplate(), + Template: &apiextensionsv1.JSON{Raw: []byte("{}")}, }}, data, - emptyTemplate(), + &apiextensionsv1.JSON{Raw: []byte("{}")}, &applicationSetInfo, nil) assert.NoError(t, err) @@ -92,14 +90,6 @@ func TestMatchValues(t *testing.T) { } } -func emptyTemplate() argoprojiov1alpha1.ApplicationSetTemplate { - return argoprojiov1alpha1.ApplicationSetTemplate{ - Spec: argov1alpha1.ApplicationSpec{ - Project: "project", - }, - } -} - func getMockClusterGenerator() Generator { clusters := []crtclient.Object{ &corev1.Secret{ @@ -188,7 +178,7 @@ func TestGetRelevantGenerators(t *testing.T) { requestedGenerator = &argoprojiov1alpha1.ApplicationSetGenerator{ Clusters: &argoprojiov1alpha1.ClusterGenerator{ Selector: metav1.LabelSelector{}, - Template: argoprojiov1alpha1.ApplicationSetTemplate{}, + Template: &apiextensionsv1.JSON{Raw: []byte("{}")}, Values: nil, }, } @@ -204,7 +194,7 @@ func TestGetRelevantGenerators(t *testing.T) { Files: nil, Revision: "", RequeueAfterSeconds: nil, - Template: argoprojiov1alpha1.ApplicationSetTemplate{}, + Template: &apiextensionsv1.JSON{Raw: []byte("{}")}, }, } @@ -251,7 +241,7 @@ func TestInterpolateGenerator(t *testing.T) { requestedGenerator = &argoprojiov1alpha1.ApplicationSetGenerator{ Git: &argoprojiov1alpha1.GitGenerator{ Files: append([]argoprojiov1alpha1.GitFileGeneratorItem{}, fileNamePath, fileServerPath), - Template: argoprojiov1alpha1.ApplicationSetTemplate{}, + Template: &apiextensionsv1.JSON{Raw: []byte("{}")}, }, } clusterGeneratorParams := map[string]interface{}{ diff --git a/applicationset/generators/git.go b/applicationset/generators/git.go index 7fd6d75fd6912..bacf2e65b2847 100644 --- a/applicationset/generators/git.go +++ b/applicationset/generators/git.go @@ -11,6 +11,7 @@ import ( "github.com/jeremywohl/flatten" log "github.com/sirupsen/logrus" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "sigs.k8s.io/yaml" "github.com/argoproj/argo-cd/v2/applicationset/services" @@ -31,8 +32,8 @@ func NewGitGenerator(repos services.Repos) Generator { return g } -func (g *GitGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate { - return &appSetGenerator.Git.Template +func (g *GitGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { + return appSetGenerator.Git.Template } func (g *GitGenerator) GetRequeueAfter(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) time.Duration { @@ -81,10 +82,10 @@ func (g *GitGenerator) generateParamsForGitDirectories(appSetGenerator *argoproj } log.WithFields(log.Fields{ - "allPaths": allPaths, - "total": len(allPaths), - "repoURL": appSetGenerator.Git.RepoURL, - "revision": appSetGenerator.Git.Revision, + "allPaths": allPaths, + "total": len(allPaths), + "repoURL": appSetGenerator.Git.RepoURL, + "revision": appSetGenerator.Git.Revision, "pathParamPrefix": appSetGenerator.Git.PathParamPrefix, }).Info("applications result from the repo service") @@ -183,7 +184,7 @@ func (g *GitGenerator) generateParamsFromGitFile(filePath string, fileContent [] } pathParamName := "path" if pathParamPrefix != "" { - pathParamName = pathParamPrefix+"."+pathParamName + pathParamName = pathParamPrefix + "." + pathParamName } params[pathParamName] = path.Dir(filePath) params[pathParamName+".basename"] = path.Base(params[pathParamName].(string)) @@ -251,7 +252,7 @@ func (g *GitGenerator) generateParamsFromApps(requestedApps []string, appSetGene } else { pathParamName := "path" if appSetGenerator.Git.PathParamPrefix != "" { - pathParamName = appSetGenerator.Git.PathParamPrefix+"."+pathParamName + pathParamName = appSetGenerator.Git.PathParamPrefix + "." + pathParamName } params[pathParamName] = a params[pathParamName+".basename"] = path.Base(a) diff --git a/applicationset/generators/interface.go b/applicationset/generators/interface.go index abb4830cf3fbe..dafd0c4e1b56b 100644 --- a/applicationset/generators/interface.go +++ b/applicationset/generators/interface.go @@ -5,6 +5,7 @@ import ( "time" argoprojiov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" ) // Generator defines the interface implemented by all ApplicationSet generators. @@ -20,7 +21,7 @@ type Generator interface { GetRequeueAfter(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) time.Duration // GetTemplate returns the inline template from the spec if there is any, or an empty object otherwise - GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate + GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON } var EmptyAppSetGeneratorError = fmt.Errorf("ApplicationSet is empty") diff --git a/applicationset/generators/list.go b/applicationset/generators/list.go index cff4c67f161dd..beeb040e280f0 100644 --- a/applicationset/generators/list.go +++ b/applicationset/generators/list.go @@ -6,6 +6,7 @@ import ( "time" argoprojiov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" ) var _ Generator = (*ListGenerator)(nil) @@ -22,8 +23,8 @@ func (g *ListGenerator) GetRequeueAfter(appSetGenerator *argoprojiov1alpha1.Appl return NoRequeueAfter } -func (g *ListGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate { - return &appSetGenerator.List.Template +func (g *ListGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { + return appSetGenerator.List.Template } func (g *ListGenerator) GenerateParams(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator, appSet *argoprojiov1alpha1.ApplicationSet) ([]map[string]interface{}, error) { diff --git a/applicationset/generators/matrix.go b/applicationset/generators/matrix.go index eadd18b83d5f9..06204126d2f22 100644 --- a/applicationset/generators/matrix.go +++ b/applicationset/generators/matrix.go @@ -5,6 +5,7 @@ import ( "time" "github.com/imdario/mergo" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "github.com/argoproj/argo-cd/v2/applicationset/utils" argoprojiov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" @@ -117,7 +118,7 @@ func (m *MatrixGenerator) getParams(appSetBaseGenerator argoprojiov1alpha1.Appli Selector: appSetBaseGenerator.Selector, }, m.supportedGenerators, - argoprojiov1alpha1.ApplicationSetTemplate{}, + &apiextensionsv1.JSON{Raw: []byte("{}")}, appSet, params) @@ -168,6 +169,6 @@ func (m *MatrixGenerator) GetRequeueAfter(appSetGenerator *argoprojiov1alpha1.Ap } -func (m *MatrixGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate { - return &appSetGenerator.Matrix.Template +func (m *MatrixGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { + return appSetGenerator.Matrix.Template } diff --git a/applicationset/generators/matrix_test.go b/applicationset/generators/matrix_test.go index 1d79c452f6dce..9fab7c8d7d4fa 100644 --- a/applicationset/generators/matrix_test.go +++ b/applicationset/generators/matrix_test.go @@ -163,7 +163,7 @@ func TestMatrixGenerate(t *testing.T) { }, nil) genMock.On("GetTemplate", &gitGeneratorSpec). - Return(&argoprojiov1alpha1.ApplicationSetTemplate{}) + Return(&apiextensionsv1.JSON{Raw: []byte("{}")}) } var matrixGenerator = NewMatrixGenerator( @@ -176,7 +176,7 @@ func TestMatrixGenerate(t *testing.T) { got, err := matrixGenerator.GenerateParams(&argoprojiov1alpha1.ApplicationSetGenerator{ Matrix: &argoprojiov1alpha1.MatrixGenerator{ Generators: testCaseCopy.baseGenerators, - Template: argoprojiov1alpha1.ApplicationSetTemplate{}, + Template: &apiextensionsv1.JSON{Raw: []byte("{}")}, }, }, appSet) @@ -358,7 +358,7 @@ func TestMatrixGenerateGoTemplate(t *testing.T) { }, nil) genMock.On("GetTemplate", &gitGeneratorSpec). - Return(&argoprojiov1alpha1.ApplicationSetTemplate{}) + Return(&apiextensionsv1.JSON{Raw: []byte("{}")}) } var matrixGenerator = NewMatrixGenerator( @@ -371,7 +371,7 @@ func TestMatrixGenerateGoTemplate(t *testing.T) { got, err := matrixGenerator.GenerateParams(&argoprojiov1alpha1.ApplicationSetGenerator{ Matrix: &argoprojiov1alpha1.MatrixGenerator{ Generators: testCaseCopy.baseGenerators, - Template: argoprojiov1alpha1.ApplicationSetTemplate{}, + Template: &apiextensionsv1.JSON{Raw: []byte("{}")}, }, }, appSet) @@ -486,7 +486,7 @@ func TestMatrixGetRequeueAfter(t *testing.T) { got := matrixGenerator.GetRequeueAfter(&argoprojiov1alpha1.ApplicationSetGenerator{ Matrix: &argoprojiov1alpha1.MatrixGenerator{ Generators: testCaseCopy.baseGenerators, - Template: argoprojiov1alpha1.ApplicationSetTemplate{}, + Template: &apiextensionsv1.JSON{Raw: []byte("{}")}, }, }) @@ -619,7 +619,7 @@ func TestInterpolatedMatrixGenerate(t *testing.T) { }, }, nil) genMock.On("GetTemplate", &gitGeneratorSpec). - Return(&argoprojiov1alpha1.ApplicationSetTemplate{}) + Return(&apiextensionsv1.JSON{Raw: []byte("{}")}) } var matrixGenerator = NewMatrixGenerator( map[string]Generator{ @@ -631,7 +631,7 @@ func TestInterpolatedMatrixGenerate(t *testing.T) { got, err := matrixGenerator.GenerateParams(&argoprojiov1alpha1.ApplicationSetGenerator{ Matrix: &argoprojiov1alpha1.MatrixGenerator{ Generators: testCaseCopy.baseGenerators, - Template: argoprojiov1alpha1.ApplicationSetTemplate{}, + Template: &apiextensionsv1.JSON{Raw: []byte("{}")}, }, }, appSet) @@ -807,7 +807,7 @@ func TestInterpolatedMatrixGenerateGoTemplate(t *testing.T) { }, }, nil) genMock.On("GetTemplate", &gitGeneratorSpec). - Return(&argoprojiov1alpha1.ApplicationSetTemplate{}) + Return(&apiextensionsv1.JSON{Raw: []byte("{}")}) } var matrixGenerator = NewMatrixGenerator( map[string]Generator{ @@ -819,7 +819,7 @@ func TestInterpolatedMatrixGenerateGoTemplate(t *testing.T) { got, err := matrixGenerator.GenerateParams(&argoprojiov1alpha1.ApplicationSetGenerator{ Matrix: &argoprojiov1alpha1.MatrixGenerator{ Generators: testCaseCopy.baseGenerators, - Template: argoprojiov1alpha1.ApplicationSetTemplate{}, + Template: &apiextensionsv1.JSON{Raw: []byte("{}")}, }, }, appSet) @@ -839,10 +839,10 @@ type generatorMock struct { mock.Mock } -func (g *generatorMock) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate { +func (g *generatorMock) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { args := g.Called(appSetGenerator) - return args.Get(0).(*argoprojiov1alpha1.ApplicationSetTemplate) + return args.Get(0).(*apiextensionsv1.JSON) } func (g *generatorMock) GenerateParams(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator, appSet *argoprojiov1alpha1.ApplicationSet) ([]map[string]interface{}, error) { diff --git a/applicationset/generators/merge.go b/applicationset/generators/merge.go index 69733c847e92d..03d6fe6ce05ad 100644 --- a/applicationset/generators/merge.go +++ b/applicationset/generators/merge.go @@ -6,6 +6,7 @@ import ( "time" "github.com/imdario/mergo" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "github.com/argoproj/argo-cd/v2/applicationset/utils" argoprojiov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" @@ -173,7 +174,7 @@ func (m *MergeGenerator) getParams(appSetBaseGenerator argoprojiov1alpha1.Applic Selector: appSetBaseGenerator.Selector, }, m.supportedGenerators, - argoprojiov1alpha1.ApplicationSetTemplate{}, + &apiextensionsv1.JSON{Raw: []byte("{}")}, appSet, map[string]interface{}{}) @@ -222,6 +223,6 @@ func (m *MergeGenerator) GetRequeueAfter(appSetGenerator *argoprojiov1alpha1.App } // GetTemplate gets the Template field for the MergeGenerator. -func (m *MergeGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate { - return &appSetGenerator.Merge.Template +func (m *MergeGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { + return appSetGenerator.Merge.Template } diff --git a/applicationset/generators/merge_test.go b/applicationset/generators/merge_test.go index 454b1884190a3..bb007bc062a0f 100644 --- a/applicationset/generators/merge_test.go +++ b/applicationset/generators/merge_test.go @@ -176,7 +176,7 @@ func TestMergeGenerate(t *testing.T) { Merge: &argoprojiov1alpha1.MergeGenerator{ Generators: testCaseCopy.baseGenerators, MergeKeys: testCaseCopy.mergeKeys, - Template: argoprojiov1alpha1.ApplicationSetTemplate{}, + Template: &apiextensionsv1.JSON{Raw: []byte("{}")}, }, }, appSet) diff --git a/applicationset/generators/pull_request.go b/applicationset/generators/pull_request.go index db6c80c6c0f5c..70a0d4238f3b9 100644 --- a/applicationset/generators/pull_request.go +++ b/applicationset/generators/pull_request.go @@ -7,6 +7,7 @@ import ( "time" corev1 "k8s.io/api/core/v1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/gosimple/slug" @@ -47,8 +48,8 @@ func (g *PullRequestGenerator) GetRequeueAfter(appSetGenerator *argoprojiov1alph return DefaultPullRequestRequeueAfterSeconds } -func (g *PullRequestGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate { - return &appSetGenerator.PullRequest.Template +func (g *PullRequestGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { + return appSetGenerator.PullRequest.Template } func (g *PullRequestGenerator) GenerateParams(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator, applicationSetInfo *argoprojiov1alpha1.ApplicationSet) ([]map[string]interface{}, error) { diff --git a/applicationset/generators/scm_provider.go b/applicationset/generators/scm_provider.go index 352b60d26d398..b65d6afe7765e 100644 --- a/applicationset/generators/scm_provider.go +++ b/applicationset/generators/scm_provider.go @@ -7,6 +7,7 @@ import ( "time" corev1 "k8s.io/api/core/v1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/argoproj/argo-cd/v2/applicationset/services/github_app_auth" @@ -54,8 +55,8 @@ func (g *SCMProviderGenerator) GetRequeueAfter(appSetGenerator *argoprojiov1alph return DefaultSCMProviderRequeueAfterSeconds } -func (g *SCMProviderGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate { - return &appSetGenerator.SCMProvider.Template +func (g *SCMProviderGenerator) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { + return appSetGenerator.SCMProvider.Template } func (g *SCMProviderGenerator) GenerateParams(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator, applicationSetInfo *argoprojiov1alpha1.ApplicationSet) ([]map[string]interface{}, error) { diff --git a/applicationset/utils/utils.go b/applicationset/utils/utils.go index 254478ee45c7f..225dee17dcc67 100644 --- a/applicationset/utils/utils.go +++ b/applicationset/utils/utils.go @@ -31,7 +31,7 @@ func init() { } type Renderer interface { - RenderTemplateParams(tmpl *argoappsv1.Application, syncPolicy *argoappsv1.ApplicationSetSyncPolicy, params map[string]interface{}, useGoTemplate bool) (*argoappsv1.Application, error) + RenderTemplateParams(tmpl map[string]interface{}, syncPolicy *argoappsv1.ApplicationSetSyncPolicy, params map[string]interface{}, useGoTemplate bool) (*argoappsv1.Application, error) } type Render struct { @@ -92,9 +92,9 @@ func (r *Render) deeplyReplace(copy, original reflect.Value, replaceMap map[stri // If it is a struct we translate each field case reflect.Struct: for i := 0; i < original.NumField(); i += 1 { - var currentType = fmt.Sprintf("%s.%s", original.Type().Field(i).Name, original.Type().PkgPath()) + var currentType = fmt.Sprintf("%s/%s", original.Type().PkgPath(), original.Type().Field(i).Name) // specific case time - if currentType == "time.Time" { + if currentType == "k8s.io/apimachinery/pkg/apis/meta/v1/Time" { copy.Field(i).Set(original.Field(i)) } else if err := r.deeplyReplace(copy.Field(i), original.Field(i), replaceMap, useGoTemplate); err != nil { return err @@ -127,6 +127,7 @@ func (r *Render) deeplyReplace(copy, original reflect.Value, replaceMap map[stri if originalValue.Kind() != reflect.String && originalValue.IsNil() { continue } + // New gives us a pointer, but again we want the value copyValue := reflect.New(originalValue.Type()).Elem() @@ -172,13 +173,48 @@ func (r *Render) deeplyReplace(copy, original reflect.Value, replaceMap map[stri return nil } -func (r *Render) RenderTemplateParams(tmpl *argoappsv1.Application, syncPolicy *argoappsv1.ApplicationSetSyncPolicy, params map[string]interface{}, useGoTemplate bool) (*argoappsv1.Application, error) { +// Add the 'resources-finalizer' finalizer if: +// The template application doesn't have any finalizers, and: +// a) there is no syncPolicy, or +// b) there IS a syncPolicy, but preserveResourcesOnDeletion is set to false +// See TestRenderTemplateParamsFinalizers in util_test.go for test-based definition of behaviour +func (r *Render) preserveResourcesOnDeletion(replacedTmpl *argoappsv1.Application, syncPolicy *argoappsv1.ApplicationSetSyncPolicy) *argoappsv1.Application { + if (syncPolicy == nil || !syncPolicy.PreserveResourcesOnDeletion) && + ((*replacedTmpl).ObjectMeta.Finalizers == nil || len((*replacedTmpl).ObjectMeta.Finalizers) == 0) { + + (*replacedTmpl).ObjectMeta.Finalizers = []string{"resources-finalizer.argocd.argoproj.io"} + } + return replacedTmpl +} + +func (r *Render) toApplication(tmpl map[string]interface{}) (*argoappsv1.Application, error) { + result, err := json.Marshal(&tmpl) + + if err != nil { + return nil, err + } + + app := argoappsv1.Application{} + if err := json.Unmarshal(result, &app); err != nil { + return nil, err + } + + return &app, nil +} + +func (r *Render) RenderTemplateParams(tmpl map[string]interface{}, syncPolicy *argoappsv1.ApplicationSetSyncPolicy, params map[string]interface{}, useGoTemplate bool) (*argoappsv1.Application, error) { if tmpl == nil { return nil, fmt.Errorf("application template is empty ") } if len(params) == 0 { - return tmpl, nil + app, err := r.toApplication(tmpl) + + if err != nil { + return nil, err + } + + return r.preserveResourcesOnDeletion(app, syncPolicy), nil } original := reflect.ValueOf(tmpl) @@ -188,20 +224,15 @@ func (r *Render) RenderTemplateParams(tmpl *argoappsv1.Application, syncPolicy * return nil, err } - replacedTmpl := copy.Interface().(*argoappsv1.Application) + replacedTmpl := copy.Interface().(map[string]interface{}) - // Add the 'resources-finalizer' finalizer if: - // The template application doesn't have any finalizers, and: - // a) there is no syncPolicy, or - // b) there IS a syncPolicy, but preserveResourcesOnDeletion is set to false - // See TestRenderTemplateParamsFinalizers in util_test.go for test-based definition of behaviour - if (syncPolicy == nil || !syncPolicy.PreserveResourcesOnDeletion) && - ((*replacedTmpl).ObjectMeta.Finalizers == nil || len((*replacedTmpl).ObjectMeta.Finalizers) == 0) { + app, err := r.toApplication(replacedTmpl) - (*replacedTmpl).ObjectMeta.Finalizers = []string{"resources-finalizer.argocd.argoproj.io"} + if err != nil { + return nil, err } - return replacedTmpl, nil + return r.preserveResourcesOnDeletion(app, syncPolicy), nil } var isTemplatedRegex = regexp.MustCompile(".*{{.*}}.*") @@ -291,7 +322,7 @@ func invalidGenerators(applicationSetInfo *argoappsv1.ApplicationSet) (bool, map func addInvalidGeneratorNames(names map[string]bool, applicationSetInfo *argoappsv1.ApplicationSet, index int) { // The generator names are stored in the "kubectl.kubernetes.io/last-applied-configuration" annotation config := applicationSetInfo.ObjectMeta.Annotations["kubectl.kubernetes.io/last-applied-configuration"] - var values map[string]interface{} + values := map[string]interface{}{} err := json.Unmarshal([]byte(config), &values) if err != nil { log.Warnf("couldn't unmarshal kubectl.kubernetes.io/last-applied-configuration: %+v", config) diff --git a/applicationset/utils/utils_test.go b/applicationset/utils/utils_test.go index af36c18a39dbb..47198559659cd 100644 --- a/applicationset/utils/utils_test.go +++ b/applicationset/utils/utils_test.go @@ -2,58 +2,55 @@ package utils import ( "testing" - "time" + testutils "github.com/argoproj/argo-cd/v2/test" "github.com/sirupsen/logrus" logtest "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" argoappsetv1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" argoappsv1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" ) +func emptyApplication() map[string]interface{} { + // Clone the template application + return map[string]interface{}{ + "metadata": map[string]interface{}{ + "annotations": map[string]string{"annotation-key": "annotation-value", "annotation-key2": "annotation-value2"}, + "labels": map[string]string{"label-key": "label-value", "label-key2": "label-value2"}, + "name": "application-one", + "namespace": "default", + }, + "spec": map[string]interface{}{ + "source": map[string]interface{}{ + "path": "", + "repoURL": "", + "targetRevision": "", + "chart": "", + }, + "destination": map[string]interface{}{ + "server": "", + "namespace": "", + "name": "", + }, + }, + } +} + func TestRenderTemplateParams(t *testing.T) { - // Believe it or not, this is actually less complex than the equivalent solution using reflection - fieldMap := map[string]func(app *argoappsv1.Application) *string{} - fieldMap["Path"] = func(app *argoappsv1.Application) *string { return &app.Spec.Source.Path } - fieldMap["RepoURL"] = func(app *argoappsv1.Application) *string { return &app.Spec.Source.RepoURL } - fieldMap["TargetRevision"] = func(app *argoappsv1.Application) *string { return &app.Spec.Source.TargetRevision } - fieldMap["Chart"] = func(app *argoappsv1.Application) *string { return &app.Spec.Source.Chart } - - fieldMap["Server"] = func(app *argoappsv1.Application) *string { return &app.Spec.Destination.Server } - fieldMap["Namespace"] = func(app *argoappsv1.Application) *string { return &app.Spec.Destination.Namespace } - fieldMap["Name"] = func(app *argoappsv1.Application) *string { return &app.Spec.Destination.Name } - - fieldMap["Project"] = func(app *argoappsv1.Application) *string { return &app.Spec.Project } - - emptyApplication := &argoappsv1.Application{ - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{"annotation-key": "annotation-value", "annotation-key2": "annotation-value2"}, - Labels: map[string]string{"label-key": "label-value", "label-key2": "label-value2"}, - CreationTimestamp: metav1.NewTime(time.Now()), - UID: types.UID("d546da12-06b7-4f9a-8ea2-3adb16a20e2b"), - Name: "application-one", - Namespace: "default", - }, - Spec: argoappsv1.ApplicationSpec{ - Source: &argoappsv1.ApplicationSource{ - Path: "", - RepoURL: "", - TargetRevision: "", - Chart: "", - }, - Destination: argoappsv1.ApplicationDestination{ - Server: "", - Namespace: "", - Name: "", - }, - Project: "", - }, + pointers := []string{ + "/spec/source/path", + "/spec/source/repoURL", + "/spec/source/targetRevision", + "/spec/source/chart", + "/spec/destination/server", + "/spec/destination/namespace", + "/spec/destination/name", + "/spec/project", } tests := []struct { @@ -164,30 +161,24 @@ func TestRenderTemplateParams(t *testing.T) { t.Run(test.name, func(t *testing.T) { - for fieldName, getPtrFunc := range fieldMap { + for _, pointer := range pointers { - // Clone the template application - application := emptyApplication.DeepCopy() - - // Set the value of the target field, to the test value - *getPtrFunc(application) = test.fieldVal + application := testutils.UpdateData(emptyApplication(), pointer, test.fieldVal) // Render the cloned application, into a new application render := Render{} - newApplication, err := render.RenderTemplateParams(application, nil, test.params, false) + newApplication, err := render.RenderTemplateParams(application.(map[string]interface{}), nil, test.params, false) // Retrieve the value of the target field from the newApplication, then verify that // the target field has been templated into the expected value - actualValue := *getPtrFunc(newApplication) - assert.Equal(t, test.expectedVal, actualValue, "Field '%s' had an unexpected value. expected: '%s' value: '%s'", fieldName, test.expectedVal, actualValue) + actualValue := testutils.GetData(newApplication, pointer) + assert.Equal(t, test.expectedVal, actualValue, "Field '%s' had an unexpected value. expected: '%s' value: '%s'", pointer, test.expectedVal, actualValue) assert.Equal(t, newApplication.ObjectMeta.Annotations["annotation-key"], "annotation-value") assert.Equal(t, newApplication.ObjectMeta.Annotations["annotation-key2"], "annotation-value2") assert.Equal(t, newApplication.ObjectMeta.Labels["label-key"], "label-value") assert.Equal(t, newApplication.ObjectMeta.Labels["label-key2"], "label-value2") assert.Equal(t, newApplication.ObjectMeta.Name, "application-one") assert.Equal(t, newApplication.ObjectMeta.Namespace, "default") - assert.Equal(t, newApplication.ObjectMeta.UID, types.UID("d546da12-06b7-4f9a-8ea2-3adb16a20e2b")) - assert.Equal(t, newApplication.ObjectMeta.CreationTimestamp, application.ObjectMeta.CreationTimestamp) assert.NoError(t, err) } }) @@ -198,41 +189,15 @@ func TestRenderTemplateParams(t *testing.T) { func TestRenderTemplateParamsGoTemplate(t *testing.T) { // Believe it or not, this is actually less complex than the equivalent solution using reflection - fieldMap := map[string]func(app *argoappsv1.Application) *string{} - fieldMap["Path"] = func(app *argoappsv1.Application) *string { return &app.Spec.Source.Path } - fieldMap["RepoURL"] = func(app *argoappsv1.Application) *string { return &app.Spec.Source.RepoURL } - fieldMap["TargetRevision"] = func(app *argoappsv1.Application) *string { return &app.Spec.Source.TargetRevision } - fieldMap["Chart"] = func(app *argoappsv1.Application) *string { return &app.Spec.Source.Chart } - - fieldMap["Server"] = func(app *argoappsv1.Application) *string { return &app.Spec.Destination.Server } - fieldMap["Namespace"] = func(app *argoappsv1.Application) *string { return &app.Spec.Destination.Namespace } - fieldMap["Name"] = func(app *argoappsv1.Application) *string { return &app.Spec.Destination.Name } - - fieldMap["Project"] = func(app *argoappsv1.Application) *string { return &app.Spec.Project } - - emptyApplication := &argoappsv1.Application{ - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{"annotation-key": "annotation-value", "annotation-key2": "annotation-value2"}, - Labels: map[string]string{"label-key": "label-value", "label-key2": "label-value2"}, - CreationTimestamp: metav1.NewTime(time.Now()), - UID: types.UID("d546da12-06b7-4f9a-8ea2-3adb16a20e2b"), - Name: "application-one", - Namespace: "default", - }, - Spec: argoappsv1.ApplicationSpec{ - Source: &argoappsv1.ApplicationSource{ - Path: "", - RepoURL: "", - TargetRevision: "", - Chart: "", - }, - Destination: argoappsv1.ApplicationDestination{ - Server: "", - Namespace: "", - Name: "", - }, - Project: "", - }, + pointers := []string{ + "/spec/source/path", + "/spec/source/repoURL", + "/spec/source/targetRevision", + "/spec/source/chart", + "/spec/destination/server", + "/spec/destination/namespace", + "/spec/destination/name", + "/spec/project", } tests := []struct { @@ -429,17 +394,13 @@ func TestRenderTemplateParamsGoTemplate(t *testing.T) { t.Run(test.name, func(t *testing.T) { - for fieldName, getPtrFunc := range fieldMap { + for _, pointer := range pointers { - // Clone the template application - application := emptyApplication.DeepCopy() - - // Set the value of the target field, to the test value - *getPtrFunc(application) = test.fieldVal + application := testutils.UpdateData(emptyApplication(), pointer, test.fieldVal) // Render the cloned application, into a new application render := Render{} - newApplication, err := render.RenderTemplateParams(application, nil, test.params, true) + newApplication, err := render.RenderTemplateParams(application.(map[string]interface{}), nil, test.params, true) // Retrieve the value of the target field from the newApplication, then verify that // the target field has been templated into the expected value @@ -448,16 +409,15 @@ func TestRenderTemplateParamsGoTemplate(t *testing.T) { assert.Equal(t, test.errorMessage, err.Error()) } else { assert.NoError(t, err) - actualValue := *getPtrFunc(newApplication) - assert.Equal(t, test.expectedVal, actualValue, "Field '%s' had an unexpected value. expected: '%s' value: '%s'", fieldName, test.expectedVal, actualValue) + // Retrieve the value of the target field from the newApplication, then verify that + actualValue := testutils.GetData(newApplication, pointer) + assert.Equal(t, test.expectedVal, actualValue, "Field '%s' had an unexpected value. expected: '%s' value: '%s'", pointer, test.expectedVal, actualValue) assert.Equal(t, newApplication.ObjectMeta.Annotations["annotation-key"], "annotation-value") assert.Equal(t, newApplication.ObjectMeta.Annotations["annotation-key2"], "annotation-value2") assert.Equal(t, newApplication.ObjectMeta.Labels["label-key"], "label-value") assert.Equal(t, newApplication.ObjectMeta.Labels["label-key2"], "label-value2") assert.Equal(t, newApplication.ObjectMeta.Name, "application-one") assert.Equal(t, newApplication.ObjectMeta.Namespace, "default") - assert.Equal(t, newApplication.ObjectMeta.UID, types.UID("d546da12-06b7-4f9a-8ea2-3adb16a20e2b")) - assert.Equal(t, newApplication.ObjectMeta.CreationTimestamp, application.ObjectMeta.CreationTimestamp) } } }) @@ -466,9 +426,9 @@ func TestRenderTemplateParamsGoTemplate(t *testing.T) { func TestRenderTemplateKeys(t *testing.T) { t.Run("fasttemplate", func(t *testing.T) { - application := &argoappsv1.Application{ - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ + application := map[string]interface{}{ + "metadata": map[string]interface{}{ + "annotations": map[string]string{ "annotation-{{key}}": "annotation-{{value}}", }, }, @@ -486,9 +446,9 @@ func TestRenderTemplateKeys(t *testing.T) { assert.Equal(t, newApplication.ObjectMeta.Annotations["annotation-some-key"], "annotation-some-value") }) t.Run("gotemplate", func(t *testing.T) { - application := &argoappsv1.Application{ - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ + application := map[string]interface{}{ + "metadata": map[string]interface{}{ + "annotations": map[string]string{ "annotation-{{ .key }}": "annotation-{{ .value }}", }, }, @@ -509,23 +469,6 @@ func TestRenderTemplateKeys(t *testing.T) { func TestRenderTemplateParamsFinalizers(t *testing.T) { - emptyApplication := &argoappsv1.Application{ - Spec: argoappsv1.ApplicationSpec{ - Source: &argoappsv1.ApplicationSource{ - Path: "", - RepoURL: "", - TargetRevision: "", - Chart: "", - }, - Destination: argoappsv1.ApplicationDestination{ - Server: "", - Namespace: "", - Name: "", - }, - Project: "", - }, - } - for _, c := range []struct { testName string syncPolicy *argoappsetv1.ApplicationSetSyncPolicy @@ -591,8 +534,7 @@ func TestRenderTemplateParamsFinalizers(t *testing.T) { t.Run(c.testName, func(t *testing.T) { // Clone the template application - application := emptyApplication.DeepCopy() - application.Finalizers = c.existingFinalizers + application := testutils.UpdateData(emptyApplication(), "/metadata/finalizers", c.existingFinalizers) params := map[string]interface{}{ "one": "two", @@ -601,7 +543,7 @@ func TestRenderTemplateParamsFinalizers(t *testing.T) { // Render the cloned application, into a new application render := Render{} - res, err := render.RenderTemplateParams(application, c.syncPolicy, params, true) + res, err := render.RenderTemplateParams(application.(map[string]interface{}), c.syncPolicy, params, true) assert.Nil(t, err) assert.ElementsMatch(t, res.Finalizers, c.expectedFinalizers) diff --git a/applicationset/webhook/webhook_test.go b/applicationset/webhook/webhook_test.go index c1e0a7eba3e18..af78d8eaab8b5 100644 --- a/applicationset/webhook/webhook_test.go +++ b/applicationset/webhook/webhook_test.go @@ -34,8 +34,8 @@ type generatorMock struct { mock.Mock } -func (g *generatorMock) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate { - return &argoprojiov1alpha1.ApplicationSetTemplate{} +func (g *generatorMock) GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *apiextensionsv1.JSON { + return &apiextensionsv1.JSON{Raw: []byte("{}")} } func (g *generatorMock) GenerateParams(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator, _ *argoprojiov1alpha1.ApplicationSet) ([]map[string]interface{}, error) { diff --git a/assets/swagger.json b/assets/swagger.json index 4bbb97c796914..a169eae0ce648 100644 --- a/assets/swagger.json +++ b/assets/swagger.json @@ -5866,7 +5866,7 @@ "$ref": "#/definitions/v1alpha1ApplicationSetSyncPolicy" }, "template": { - "$ref": "#/definitions/v1alpha1ApplicationSetTemplate" + "$ref": "#/definitions/v1JSON" } } }, @@ -5911,48 +5911,6 @@ } } }, - "v1alpha1ApplicationSetTemplate": { - "type": "object", - "title": "ApplicationSetTemplate represents argocd ApplicationSpec", - "properties": { - "metadata": { - "$ref": "#/definitions/v1alpha1ApplicationSetTemplateMeta" - }, - "spec": { - "$ref": "#/definitions/v1alpha1ApplicationSpec" - } - } - }, - "v1alpha1ApplicationSetTemplateMeta": { - "type": "object", - "title": "ApplicationSetTemplateMeta represents the Argo CD application fields that may\nbe used for Applications generated from the ApplicationSet (based on metav1.ObjectMeta)", - "properties": { - "annotations": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "finalizers": { - "type": "array", - "items": { - "type": "string" - } - }, - "labels": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - } - } - }, "v1alpha1ApplicationSource": { "type": "object", "title": "ApplicationSource contains all required information about the source of an application", @@ -6498,7 +6456,7 @@ "$ref": "#/definitions/v1LabelSelector" }, "template": { - "$ref": "#/definitions/v1alpha1ApplicationSetTemplate" + "$ref": "#/definitions/v1JSON" }, "values": { "type": "object", @@ -6643,7 +6601,7 @@ "format": "int64" }, "template": { - "$ref": "#/definitions/v1alpha1ApplicationSetTemplate" + "$ref": "#/definitions/v1JSON" }, "values": { "type": "object", @@ -6734,7 +6692,7 @@ "type": "string" }, "template": { - "$ref": "#/definitions/v1alpha1ApplicationSetTemplate" + "$ref": "#/definitions/v1JSON" } } }, @@ -6974,7 +6932,7 @@ } }, "template": { - "$ref": "#/definitions/v1alpha1ApplicationSetTemplate" + "$ref": "#/definitions/v1JSON" } } }, @@ -7006,7 +6964,7 @@ } }, "template": { - "$ref": "#/definitions/v1alpha1ApplicationSetTemplate" + "$ref": "#/definitions/v1JSON" } } }, @@ -7027,7 +6985,7 @@ } }, "template": { - "$ref": "#/definitions/v1alpha1ApplicationSetTemplate" + "$ref": "#/definitions/v1JSON" } } }, @@ -7221,7 +7179,7 @@ "format": "int64" }, "template": { - "$ref": "#/definitions/v1alpha1ApplicationSetTemplate" + "$ref": "#/definitions/v1JSON" } } }, @@ -8022,7 +7980,7 @@ "format": "int64" }, "template": { - "$ref": "#/definitions/v1alpha1ApplicationSetTemplate" + "$ref": "#/definitions/v1JSON" } } }, diff --git a/cmd/argocd/commands/applicationset.go b/cmd/argocd/commands/applicationset.go index 678d5699b9d19..749da7bed2ffc 100644 --- a/cmd/argocd/commands/applicationset.go +++ b/cmd/argocd/commands/applicationset.go @@ -1,10 +1,12 @@ package commands import ( + "encoding/json" "fmt" "io" "os" "reflect" + "strings" "text/tabwriter" "github.com/mattn/go-isatty" @@ -23,6 +25,8 @@ import ( "github.com/argoproj/argo-cd/v2/util/templates" ) +const Templated = "Templated" + var ( appSetExample = templates.Examples(` # Get an ApplicationSet. @@ -60,8 +64,9 @@ func NewAppSetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command { // NewApplicationSetGetCommand returns a new instance of an `argocd appset get` command func NewApplicationSetGetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command { var ( - output string - showParams bool + output string + showParams bool + showTemplate bool ) var command = &cobra.Command{ Use: "get APPSETNAME", @@ -85,7 +90,11 @@ func NewApplicationSetGetCommand(clientOpts *argocdclient.ClientOptions) *cobra. err := PrintResource(appSet, output) errors.CheckError(err) case "wide", "": - printAppSetSummaryTable(appSet) + var template map[string]interface{} + err := json.Unmarshal(appSet.Spec.Template.Raw, &template) + errors.CheckError(err) + + printAppSetSummaryTable(appSet, template) if len(appSet.Status.Conditions) > 0 { fmt.Println() @@ -94,8 +103,19 @@ func NewApplicationSetGetCommand(clientOpts *argocdclient.ClientOptions) *cobra. _ = w.Flush() fmt.Println() } + + if showTemplate { + showAppSetTemplate(template) + } + if showParams { - printHelmParams(appSet.Spec.Template.Spec.GetSource().Helm) + if source, ok := template["source"].(map[string]interface{}); ok { + if helm, ok := source["helm"].(map[string]interface{}); ok { + if parameters, ok := helm["parameters"].([]map[string]interface{}); ok { + printHelmParamsAsMapStringInterface(parameters) + } + } + } } default: errors.CheckError(fmt.Errorf("unknown output format: %s", output)) @@ -104,9 +124,30 @@ func NewApplicationSetGetCommand(clientOpts *argocdclient.ClientOptions) *cobra. } command.Flags().StringVarP(&output, "output", "o", "wide", "Output format. One of: json|yaml|wide") command.Flags().BoolVar(&showParams, "show-params", false, "Show ApplicationSet parameters and overrides") + command.Flags().BoolVar(&showTemplate, "show-template", false, "Show ApplicationSet template as yaml") return command } +func showAppSetTemplate(template map[string]interface{}) { + fmt.Println("Template:") + err := PrintResource(template, "yaml") + errors.CheckError(err) +} + +func printHelmParamsAsMapStringInterface(parameters []map[string]interface{}) { + paramLenLimit := 80 + fmt.Println() + w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) + if len(parameters) > 0 { + fmt.Println() + _, _ = fmt.Fprintf(w, "NAME\tVALUE\n") + for _, p := range parameters { + _, _ = fmt.Fprintf(w, "%s\t%s\n", p["name"].(string), truncateString(p["value"].(string), paramLenLimit)) + } + } + _ = w.Flush() +} + // NewApplicationSetCreateCommand returns a new instance of an `argocd appset create` command func NewApplicationSetCreateCommand(clientOpts *argocdclient.ClientOptions) *cobra.Command { var upsert bool @@ -136,7 +177,7 @@ func NewApplicationSetCreateCommand(clientOpts *argocdclient.ClientOptions) *cob for _, appset := range appsets { if appset.Name == "" { - err := fmt.Errorf("Error creating ApplicationSet %s. ApplicationSet does not have Name field set", appset) + err := fmt.Errorf("error creating ApplicationSet %s. ApplicationSet does not have Name field set", appset) errors.CheckError(err) } @@ -309,53 +350,110 @@ func printApplicationSetTable(apps []arogappsetv1.ApplicationSet, output *string conditions = append(conditions, condition) } } + + var template map[string]interface{} + err := json.Unmarshal(app.Spec.Template.Raw, &template) + errors.CheckError(err) + + project, ok := template["spec"].(map[string]interface{})["project"].(string) + + if !ok { + errors.Fatal(errors.ErrorGeneric, fmt.Errorf("unable to get project")) + } + vals := []interface{}{ app.ObjectMeta.Name, app.ObjectMeta.Namespace, - app.Spec.Template.Spec.Project, + project, app.Spec.SyncPolicy, conditions, } if *output == "wide" { - vals = append(vals, app.Spec.Template.Spec.GetSource().RepoURL, app.Spec.Template.Spec.GetSource().Path, app.Spec.Template.Spec.GetSource().TargetRevision) + source, ok := template["spec"].(map[string]interface{})["source"].(map[string]interface{}) + + if !ok { + vals = append(vals, Templated, Templated, Templated) + } else { + vals = append(vals, source["repoURL"].(string), source["path"].(string), source["targetRevision"].(string)) + } } _, _ = fmt.Fprintf(w, fmtStr, vals...) } _ = w.Flush() } -func getServerForAppSet(appSet *arogappsetv1.ApplicationSet) string { - if appSet.Spec.Template.Spec.Destination.Server == "" { - return appSet.Spec.Template.Spec.Destination.Name +func getServerForAppSet(destination map[string]interface{}) string { + if repoURL, ok := destination["server"].(string); ok { + return repoURL } - return appSet.Spec.Template.Spec.Destination.Server + name, _ := destination["name"].(string) + + return name } -func printAppSetSummaryTable(appSet *arogappsetv1.ApplicationSet) { - source := appSet.Spec.Template.Spec.GetSource() +func printAppSetSummaryTable(appSet *arogappsetv1.ApplicationSet, template map[string]interface{}) { fmt.Printf(printOpFmtStr, "Name:", appSet.Name) - fmt.Printf(printOpFmtStr, "Project:", appSet.Spec.Template.Spec.GetProject()) - fmt.Printf(printOpFmtStr, "Server:", getServerForAppSet(appSet)) - fmt.Printf(printOpFmtStr, "Namespace:", appSet.Spec.Template.Spec.Destination.Namespace) - fmt.Printf(printOpFmtStr, "Repo:", source.RepoURL) - fmt.Printf(printOpFmtStr, "Target:", source.TargetRevision) - fmt.Printf(printOpFmtStr, "Path:", source.Path) - printAppSourceDetails(&source) + + project, ok := template["spec"].(map[string]interface{})["project"].(string) + + if !ok { + errors.Fatal(errors.ErrorGeneric, fmt.Errorf("unable to get project")) + } + + fmt.Printf(printOpFmtStr, "Project:", project) + + destination, ok := template["spec"].(map[string]interface{})["destination"].(map[string]interface{}) + + if ok { + fmt.Printf(printOpFmtStr, "Server:", getServerForAppSet(destination)) + if namespace, ok := destination["namespace"].(string); ok { + fmt.Printf(printOpFmtStr, "Namespace:", namespace) + } + } + + if source, ok := template["spec"].(map[string]interface{})["source"].(map[string]interface{}); ok { + fmt.Printf(printOpFmtStr, "Repo:", source["repoURL"].(string)) + fmt.Printf(printOpFmtStr, "Path:", source["path"].(string)) + fmt.Printf(printOpFmtStr, "TargeTRevision:", source["targetRevision"].(string)) + printAppSourceDetailsAsMapStringInterface(source) + } var syncPolicy string - if appSet.Spec.SyncPolicy != nil && appSet.Spec.Template.Spec.SyncPolicy.Automated != nil { - syncPolicy = "Automated" - if appSet.Spec.Template.Spec.SyncPolicy.Automated.Prune { - syncPolicy += " (Prune)" + if syncPolicyModel, ok := template["spec"].(map[string]interface{})["syncPolicy"].(map[string]interface{}); ok { + if automated, ok := syncPolicyModel["automated"].(map[string]interface{}); ok { + + syncPolicy = "Automated" + + if _, ok := automated["prune"].(map[string]interface{}); ok { + syncPolicy += " (Prune)" + } + } else { + syncPolicy = "Automated" } } else { syncPolicy = "" } + fmt.Printf(printOpFmtStr, "SyncPolicy:", syncPolicy) } +func printAppSourceDetailsAsMapStringInterface(source map[string]interface{}) { + + if helm, ok := source["helm"].(map[string]interface{}); ok { + if valueFiles, ok := helm["valueFiles"].([]string); ok { + fmt.Printf(printOpFmtStr, "Helm Values:", strings.Join(valueFiles, ",")) + } + } + + if kustomize, ok := source["kustomize"].(map[string]interface{}); ok { + if namePrefix, ok := kustomize["namePrefix"].([]string); ok { + fmt.Printf(printOpFmtStr, "Name Prefix:", namePrefix) + } + } +} + func printAppSetConditions(w io.Writer, appSet *arogappsetv1.ApplicationSet) { _, _ = fmt.Fprintf(w, "CONDITION\tSTATUS\tMESSAGE\tLAST TRANSITION\n") for _, item := range appSet.Status.Conditions { diff --git a/cmd/argocd/commands/applicationset_test.go b/cmd/argocd/commands/applicationset_test.go index 9937b183e5c29..a61fb079b9fab 100644 --- a/cmd/argocd/commands/applicationset_test.go +++ b/cmd/argocd/commands/applicationset_test.go @@ -6,6 +6,7 @@ import ( "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" arogappsetv1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" "github.com/stretchr/testify/assert" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -26,6 +27,49 @@ func TestPrintApplicationSetNames(t *testing.T) { } func TestPrintApplicationSetTable(t *testing.T) { + output, err := captureOutput(func() error { + app := &arogappsetv1.ApplicationSet{ + ObjectMeta: metav1.ObjectMeta{ + Name: "app-name", + }, + Spec: arogappsetv1.ApplicationSetSpec{ + Generators: []arogappsetv1.ApplicationSetGenerator{ + { + Git: &arogappsetv1.GitGenerator{ + RepoURL: "https://github.com/argoproj/argo-cd.git", + Revision: "head", + Directories: []arogappsetv1.GitDirectoryGeneratorItem{ + { + Path: "applicationset/examples/git-generator-directory/cluster-addons/*", + }, + }, + }, + }, + }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"spec":{"project": "default"}}`)}, + }, + Status: arogappsetv1.ApplicationSetStatus{ + Conditions: []arogappsetv1.ApplicationSetCondition{ + { + Status: v1alpha1.ApplicationSetConditionStatusTrue, + Type: arogappsetv1.ApplicationSetConditionResourcesUpToDate, + }, + }, + }, + } + output := "table" + printApplicationSetTable([]arogappsetv1.ApplicationSet{*app, *app}, &output) + return nil + }) + assert.NoError(t, err) + expectation := `NAME NAMESPACE PROJECT SYNCPOLICY CONDITIONS +app-name default nil [{ResourcesUpToDate True }] +app-name default nil [{ResourcesUpToDate True }] +` + assert.Equal(t, expectation, output) +} + +func TestPrintApplicationSetTableWithTemplatedFields(t *testing.T) { output, err := captureOutput(func() error { app := &arogappsetv1.ApplicationSet{ ObjectMeta: metav1.ObjectMeta{ @@ -45,12 +89,53 @@ func TestPrintApplicationSetTable(t *testing.T) { }, }, }, - Template: arogappsetv1.ApplicationSetTemplate{ - Spec: v1alpha1.ApplicationSpec{ - Project: "default", + Template: apiextensionsv1.JSON{Raw: []byte(`{"spec":{"project": "default", "source": {"repoURL": "https://github.com/argoproj/argocd-example-apps", "targetRevision": "{{ .targetRevision }}", "path": "guestbook"}}}`)}, + }, + Status: arogappsetv1.ApplicationSetStatus{ + Conditions: []arogappsetv1.ApplicationSetCondition{ + arogappsetv1.ApplicationSetCondition{ + Status: v1alpha1.ApplicationSetConditionStatusTrue, + Type: arogappsetv1.ApplicationSetConditionResourcesUpToDate, }, }, }, + } + output := "wide" + printApplicationSetTable([]arogappsetv1.ApplicationSet{*app, *app}, &output) + return nil + }) + assert.NoError(t, err) + expectation := `NAME NAMESPACE PROJECT SYNCPOLICY CONDITIONS REPO PATH TARGET +app-name default nil [{ResourcesUpToDate True }] https://github.com/argoproj/argocd-example-apps guestbook {{ .targetRevision }} +app-name default nil [{ResourcesUpToDate True }] https://github.com/argoproj/argocd-example-apps guestbook {{ .targetRevision }} +` + assert.Equal(t, expectation, output) +} + +func TestSourceTemplated(t *testing.T) { + output, err := captureOutput(func() error { + app := &arogappsetv1.ApplicationSet{ + ObjectMeta: metav1.ObjectMeta{ + Name: "app-name", + }, + Spec: arogappsetv1.ApplicationSetSpec{ + Generators: []arogappsetv1.ApplicationSetGenerator{ + arogappsetv1.ApplicationSetGenerator{ + Git: &arogappsetv1.GitGenerator{ + RepoURL: "https://github.com/argoproj/argo-cd.git", + Revision: "head", + Directories: []arogappsetv1.GitDirectoryGeneratorItem{ + arogappsetv1.GitDirectoryGeneratorItem{ + Path: "applicationset/examples/git-generator-directory/cluster-addons/*", + }, + }, + }, + }, + }, + Template: apiextensionsv1.JSON{Raw: []byte(`{"spec":{"project": "default", + "{{ ternary \"source\" \"nosourcegit\" (eq .type \"git\") }}": {"repoURL": "https://github.com/argoproj/argocd-example-apps", "targetRevision": "{{ .targetRevision }}", "path": "guestbook"}, + "{{ ternary \"source\" \"nosourcehelm\" (eq .type \"helm\") }}": {"repoURL": "https://chart.github.com/argoproj/argocd-example-apps", "targetRevision": "{{ .targetRevision }}", "path": "guestbook"}}}`)}, + }, Status: arogappsetv1.ApplicationSetStatus{ Conditions: []arogappsetv1.ApplicationSetCondition{ arogappsetv1.ApplicationSetCondition{ @@ -60,11 +145,50 @@ func TestPrintApplicationSetTable(t *testing.T) { }, }, } - output := "table" + output := "wide" printApplicationSetTable([]arogappsetv1.ApplicationSet{*app, *app}, &output) return nil }) assert.NoError(t, err) - expectation := "NAME NAMESPACE PROJECT SYNCPOLICY CONDITIONS\napp-name default nil [{ResourcesUpToDate True }]\napp-name default nil [{ResourcesUpToDate True }]\n" + expectation := `NAME NAMESPACE PROJECT SYNCPOLICY CONDITIONS REPO PATH TARGET +app-name default nil [{ResourcesUpToDate True }] Templated Templated Templated +app-name default nil [{ResourcesUpToDate True }] Templated Templated Templated +` + assert.Equal(t, expectation, output) +} + +func TestShowAppSetTemplate(t *testing.T) { + output, _ := captureOutput(func() error { + + template := map[string]interface{}{ + "metadata": map[string]interface{}{ + "name": "{{ .name }}", + "labels": map[string]string{"foo": "{{ .bar }}"}, + }, + "spec": map[string]interface{}{ + "project": "default", + "source": map[string]string{ + "repoURL": "https://github.com/argoproj/argocd-example-apps", + "targetRevision": "{{ .targetRevision }}", + "path": "guestbook", + }, + }, + } + + showAppSetTemplate(template) + return nil + }) + expectation := `Template: +metadata: + labels: + foo: '{{ .bar }}' + name: '{{ .name }}' +spec: + project: default + source: + path: guestbook + repoURL: https://github.com/argoproj/argocd-example-apps + targetRevision: '{{ .targetRevision }}' +` assert.Equal(t, expectation, output) } diff --git a/docs/operator-manual/applicationset/GoTemplate.md b/docs/operator-manual/applicationset/GoTemplate.md index 911754009ab14..08d5864ef525b 100644 --- a/docs/operator-manual/applicationset/GoTemplate.md +++ b/docs/operator-manual/applicationset/GoTemplate.md @@ -14,57 +14,37 @@ names. ## Motivation -Go Template is the Go Standard for string templating. It is also more powerful than fasttemplate (the default templating -engine) as it allows doing complex templating logic. +Go Template is the Go Standard for string templating. It is also more powerful than [fasttemplate](./Template.md) (the default templating engine) as it allows doing complex templating logic. + +As the [ApplicationSet Template Spec](./Template.md#template-fields) is in a Key/Value (string/any) format GoTemplate allows you to add complex logic on the key and the value of the ApplicationSet Template Spec to control the generation of your Application. ## Limitations Go templates are applied on a per-field basis, and only on string fields. Here are some examples of what is **not** possible with Go text templates: -- Templating a boolean field. - - ::yaml - apiVersion: argoproj.io/v1alpha1 - kind: ApplicationSet - spec: - goTemplate: true - template: - spec: - source: - helm: - useCredentials: "{{.useCredentials}}" # This field may NOT be templated, because it is a boolean field. - -- Templating an object field: - - ::yaml - apiVersion: argoproj.io/v1alpha1 - kind: ApplicationSet - spec: - goTemplate: true - template: - spec: - syncPolicy: "{{.syncPolicy}}" # This field may NOT be templated, because it is an object field. +Go templates are applied on a per-field basis, and only on string keys and values. Here are some examples of what is **not** +possible with Go text templates: - Using control keywords across fields: - ::yaml - apiVersion: argoproj.io/v1alpha1 - kind: ApplicationSet - spec: - goTemplate: true - template: - spec: - source: - helm: - parameters: - # Each of these fields is evaluated as an independent template, so the first one will fail with an error. - - name: "{{range .parameters}}" - - name: "{{.name}}" - value: "{{.value}}" - - name: throw-away - value: "{{end}}" - +```yaml +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +spec: + goTemplate: true + template: + spec: + source: + helm: + parameters: + # Each of these fields is evaluated as an independent template, so the first one will fail with an error. + - name: "{{range .parameters}}" + - name: "{{.name}}" + value: "{{.value}}" + - name: throw-away + value: "{{end}}" +``` ## Migration guide @@ -229,3 +209,75 @@ spec: This ApplicationSet will produce an Application called `engineering-dev` and another called `engineering-prod-my-name-suffix`. + +### Template Keys + +While this is feasible with both templating features, as `fasttemplate` does not offer conditions, the key templating is discouraged. + +Here is an example with the `syncPolicy` (This is useful to have a per environment sync policy strategy or you want to temporarily deactivate sync for debugging purpose): + +```yaml +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: guestbook +spec: + goTemplate: true + generators: + - list: + elements: + - cluster: engineering-dev + url: https://kubernetes.default.svc + automated: true + prune: true + - cluster: engineering-prod + url: https://kubernetes.default.svc + automated: true + prune: false + - cluster: engineering-debug + url: https://kubernetes.default.svc + automated: false + prune: false + template: + metadata: + name: '{{.cluster}}' + spec: + project: default + source: + repoURL: https://github.com/argoproj/argo-cd.git + targetRevision: HEAD + path: applicationset/examples/list-generator/guestbook/{{.cluster}} + destination: + server: '{{.url}}' + namespace: guestbook + syncPolicy: + # If automated == true, it will generate a key 'automated' which is part of the Application Spec model. It will then be retained + # If automated == false, it will generate a key 'noAuto' which is not part of the Application Spec model. It will then be ignored + '{{ ternary "automated" "noAuto" .automated }}': + # If prune == true, it will generate a key 'prune' which is part of the Application Spec model. It will then be retained + # If prune == false, it will generate a key 'noprune' which is not part of the Application Spec model. It will then be ignored + '{{ ternary "prune" "noprune" .prune }}': true +``` + +This will generate 3 applications with their associated sync Policies: + +- `engineering-dev` + +```yaml +syncPolicy: + automated: + prune: true +``` + +- `engineering-prod` + +```yaml +syncPolicy: + automated: +``` + +- `engineering-debug` + +```yaml +syncPolicy: +``` \ No newline at end of file diff --git a/docs/operator-manual/applicationset/Template.md b/docs/operator-manual/applicationset/Template.md index f66a403586bbd..46bcb2f4f892c 100644 --- a/docs/operator-manual/applicationset/Template.md +++ b/docs/operator-manual/applicationset/Template.md @@ -2,7 +2,7 @@ The template fields of the ApplicationSet `spec` are used to generate Argo CD `Application` resources. -ApplicationSet is using [fasttemplate](https://github.com/valyala/fasttemplate) but will be soon deprecated in favor of Go Template. +ApplicationSet is using [fasttemplate](https://github.com/valyala/fasttemplate) but will be soon deprecated in favor of [Go Template](./GoTemplate.md). ## Template fields @@ -24,17 +24,19 @@ Here is the template subfield from a Cluster generator: namespace: guestbook ``` -The template subfields correspond directly to [the spec of an Argo CD `Application` resource](../../declarative-setup/#applications): - -- `project` refers to the [Argo CD Project](../../user-guide/projects.md) in use (`default` may be used here to utilize the default Argo CD Project) -- `source` defines from which Git repository to extract the desired Application manifests - - **repoURL**: URL of the repository (eg `https://github.com/argoproj/argocd-example-apps.git`) - - **targetRevision**: Revision (tag/branch/commit) of the repository (eg `HEAD`) - - **path**: Path within the repository where Kubernetes manifests (and/or Helm, Kustomize, Jsonnet resources) are located -- `destination`: Defines which Kubernetes cluster/namespace to deploy to - - **name**: Name of the cluster (within Argo CD) to deploy to - - **server**: API Server URL for the cluster (Example: `https://kubernetes.default.svc`) - - **namespace**: Target namespace in which to deploy the manifests from `source` (Example: `my-app-namespace`) +The template subfields corresponds to: + +- a K8s Object Metadata (name, labels, annotations...) +- a spec field in Key/Value (string/any) format. After templating, the applicationset controller will only retain the fields which are part of [an Argo CD `Application` resource Spec](../../declarative-setup/#applications): + - `project` refers to the [Argo CD Project](../../user-guide/projects.md) in use (`default` may be used here to utilize the default Argo CD Project) + - `source` defines from which Git repository to extract the desired Application manifests + - **repoURL**: URL of the repository (eg `https://github.com/argoproj/argocd-example-apps.git`) + - **targetRevision**: Revision (tag/branch/commit) of the repository (eg `HEAD`) + - **path**: Path within the repository where Kubernetes manifests (and/or Helm, Kustomize, Jsonnet resources) are located + - `destination`: Defines which Kubernetes cluster/namespace to deploy to + - **name**: Name of the cluster (within Argo CD) to deploy to + - **server**: API Server URL for the cluster (Example: `https://kubernetes.default.svc`) + - **namespace**: Target namespace in which to deploy the manifests from `source` (Example: `my-app-namespace`) Note: diff --git a/docs/user-guide/commands/argocd_appset_get.md b/docs/user-guide/commands/argocd_appset_get.md index 4c791524f988a..8810733997b31 100644 --- a/docs/user-guide/commands/argocd_appset_get.md +++ b/docs/user-guide/commands/argocd_appset_get.md @@ -12,6 +12,7 @@ argocd appset get APPSETNAME [flags] -h, --help help for get -o, --output string Output format. One of: json|yaml|wide (default "wide") --show-params Show ApplicationSet parameters and overrides + --show-template Show ApplicationSet template as yaml ``` ### Options inherited from parent commands diff --git a/go.mod b/go.mod index 3d55effb8350a..738e5b07b4006 100644 --- a/go.mod +++ b/go.mod @@ -107,6 +107,7 @@ require ( github.com/Masterminds/sprig/v3 v3.2.2 github.com/antonmedv/expr v1.9.0 github.com/coreos/go-oidc/v3 v3.4.0 + github.com/go-openapi/jsonpointer v0.19.5 github.com/gosimple/slug v1.13.1 github.com/microsoft/azure-devops-go-api/azuredevops v1.0.0-b5 github.com/robfig/cron/v3 v3.0.1 @@ -163,7 +164,6 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/analysis v0.21.4 // indirect github.com/go-openapi/errors v0.20.2 // indirect - github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/strfmt v0.21.3 // indirect github.com/go-openapi/swag v0.21.1 // indirect diff --git a/hack/generate-proto.sh b/hack/generate-proto.sh index d544bd045904f..ff65589451fab 100755 --- a/hack/generate-proto.sh +++ b/hack/generate-proto.sh @@ -125,7 +125,7 @@ clean_swagger() { } echo "If additional types are added, the number of expected collisions may need to be increased" -EXPECTED_COLLISION_COUNT=95 +EXPECTED_COLLISION_COUNT=75 collect_swagger server ${EXPECTED_COLLISION_COUNT} clean_swagger server clean_swagger reposerver diff --git a/manifests/core-install.yaml b/manifests/core-install.yaml index c44b1ec15a9f4..5832595e5953c 100644 --- a/manifests/core-install.yaml +++ b/manifests/core-install.yaml @@ -4079,448 +4079,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -4554,448 +4113,7 @@ spec: type: object type: object template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -5033,905 +4151,484 @@ spec: revision: type: string template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: + x-kubernetes-preserve-unknown-fields: true + required: + - repoURL + - revision + type: object + list: + properties: + elements: + items: + x-kubernetes-preserve-unknown-fields: true + type: array + template: + x-kubernetes-preserve-unknown-fields: true + required: + - elements + type: object + matrix: + properties: + generators: + items: + properties: + clusterDecisionResource: + properties: + configMapRef: type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: + labelSelector: properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: + matchExpressions: items: - type: string + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object type: array - kind: - type: string - managedFieldsManagers: - items: + matchLabels: + additionalProperties: type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value + type: object type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: + name: + type: string + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + values: + additionalProperties: type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: + type: object + required: + - configMapRef + type: object + clusters: + properties: + selector: + properties: + matchExpressions: + items: properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: + key: + type: string + operator: + type: string + values: items: type: string type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array + required: + - key + - operator type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: + type: array + matchLabels: + additionalProperties: type: string - skipCrds: + type: object + type: object + template: + x-kubernetes-preserve-unknown-fields: true + values: + additionalProperties: + type: string + type: object + type: object + git: + properties: + directories: + items: + properties: + exclude: type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: + path: type: string + required: + - path type: object - kustomize: + type: array + files: + items: properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: + path: type: string + required: + - path type: object - path: - type: string - plugin: - properties: - env: - items: + type: array + pathParamPrefix: + type: string + repoURL: + type: string + requeueAfterSeconds: + format: int64 + type: integer + revision: + type: string + template: + x-kubernetes-preserve-unknown-fields: true + required: + - repoURL + - revision + type: object + list: + properties: + elements: + items: + x-kubernetes-preserve-unknown-fields: true + type: array + template: + x-kubernetes-preserve-unknown-fields: true + required: + - elements + type: object + matrix: + x-kubernetes-preserve-unknown-fields: true + merge: + x-kubernetes-preserve-unknown-fields: true + pullRequest: + properties: + bitbucketServer: + properties: + api: + type: string + basicAuth: + properties: + passwordRef: properties: - name: + key: type: string - value: + secretName: type: string required: - - name - - value + - key + - secretName type: object - type: array - name: + username: + type: string + required: + - passwordRef + - username + type: object + project: + type: string + repo: + type: string + required: + - api + - project + - repo + type: object + filters: + items: + properties: + branchMatch: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: + type: array + gitea: properties: - chart: + api: type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: + insecure: + type: boolean + owner: + type: string + repo: + type: string + tokenRef: properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: + required: + - api + - owner + - repo + type: object + github: + properties: + api: + type: string + appSecretName: + type: string + labels: + items: + type: string + type: array + owner: + type: string + repo: type: string - plugin: + tokenRef: properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + key: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + secretName: + type: string + required: + - key + - secretName type: object - ref: + required: + - owner + - repo + type: object + gitlab: + properties: + api: type: string - repoURL: + labels: + items: + type: string + type: array + project: type: string - targetRevision: + pullRequestState: type: string + tokenRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object required: - - repoURL + - project type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + scmProvider: + properties: + azureDevOps: + properties: + accessTokenRef: + properties: + key: type: string - type: object - labels: - additionalProperties: + secretName: type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: + required: + - key + - secretName + type: object + allBranches: + type: boolean + api: type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - repoURL - - revision - type: object - list: - properties: - elements: - items: - x-kubernetes-preserve-unknown-fields: true - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: + organization: type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: + teamProject: type: string - managedFieldsManagers: - items: - type: string - type: array - name: + required: + - accessTokenRef + - organization + - teamProject + type: object + bitbucket: + properties: + allBranches: + type: boolean + appPasswordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + owner: type: string - namespace: + user: type: string required: - - kind + - appPasswordRef + - owner + - user type: object - type: array - info: - items: + bitbucketServer: properties: - name: + allBranches: + type: boolean + api: type: string - value: + basicAuth: + properties: + passwordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + username: + type: string + required: + - passwordRef + - username + type: object + project: type: string required: - - name - - value + - api + - project type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: + cloneProtocol: + type: string + filters: + items: properties: - exclude: + branchMatch: type: string - include: + labelMatch: type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: + pathsDoNotExist: items: - properties: - name: - type: string - path: - type: string - type: object + type: string type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: + pathsExist: items: type: string type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + repositoryMatch: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: + type: array + gitea: properties: - chart: + allBranches: + type: boolean + api: type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: + insecure: + type: boolean + owner: + type: string + tokenRef: properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - kustomize: + required: + - api + - owner + type: object + github: + properties: + allBranches: + type: boolean + api: + type: string + appSecretName: + type: string + organization: + type: string + tokenRef: properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - path: + required: + - organization + type: object + gitlab: + properties: + allBranches: + type: boolean + api: + type: string + group: type: string - plugin: + includeSubgroups: + type: boolean + tokenRef: properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + key: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + secretName: + type: string + required: + - key + - secretName type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string required: - - repoURL + - group type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + selector: + properties: + matchExpressions: + items: properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: + key: + type: string + operator: + type: string + values: + items: type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer + type: array + required: + - key + - operator type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: object + type: array + template: + x-kubernetes-preserve-unknown-fields: true required: - - elements + - generators type: object - matrix: + merge: properties: generators: items: @@ -5969,448 +4666,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -6444,448 +4700,7 @@ spec: type: object type: object template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -6923,448 +4738,7 @@ spec: revision: type: string template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true required: - repoURL - revision @@ -7376,448 +4750,7 @@ spec: x-kubernetes-preserve-unknown-fields: true type: array template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true required: - elements type: object @@ -7947,448 +4880,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true type: object scmProvider: properties: @@ -8565,448 +5057,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true type: object selector: properties: @@ -9033,5694 +5084,382 @@ spec: type: object type: object type: array + mergeKeys: + items: + type: string + type: array template: + x-kubernetes-preserve-unknown-fields: true + required: + - generators + - mergeKeys + type: object + pullRequest: + properties: + bitbucketServer: properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: + api: + type: string + basicAuth: properties: - destination: + passwordRef: properties: - name: - type: string - namespace: + key: type: string - server: + secretName: type: string + required: + - key + - secretName type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - generators - type: object - merge: - properties: - generators: - items: - properties: - clusterDecisionResource: - properties: - configMapRef: - type: string - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - name: - type: string - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - required: - - configMapRef - type: object - clusters: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - type: object - git: - properties: - directories: - items: - properties: - exclude: - type: boolean - path: - type: string - required: - - path - type: object - type: array - files: - items: - properties: - path: - type: string - required: - - path - type: object - type: array - pathParamPrefix: - type: string - repoURL: - type: string - requeueAfterSeconds: - format: int64 - type: integer - revision: - type: string - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - repoURL - - revision - type: object - list: - properties: - elements: - items: - x-kubernetes-preserve-unknown-fields: true - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - elements - type: object - matrix: - x-kubernetes-preserve-unknown-fields: true - merge: - x-kubernetes-preserve-unknown-fields: true - pullRequest: - properties: - bitbucketServer: - properties: - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - repo: - type: string - required: - - api - - project - - repo - type: object - filters: - items: - properties: - branchMatch: - type: string - type: object - type: array - gitea: - properties: - api: - type: string - insecure: - type: boolean - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - - repo - type: object - github: - properties: - api: - type: string - appSecretName: - type: string - labels: - items: - type: string - type: array - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - owner - - repo - type: object - gitlab: - properties: - api: - type: string - labels: - items: - type: string - type: array - project: - type: string - pullRequestState: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - project - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - type: object - scmProvider: - properties: - azureDevOps: - properties: - accessTokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - allBranches: - type: boolean - api: - type: string - organization: - type: string - teamProject: - type: string - required: - - accessTokenRef - - organization - - teamProject - type: object - bitbucket: - properties: - allBranches: - type: boolean - appPasswordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - owner: - type: string - user: - type: string - required: - - appPasswordRef - - owner - - user - type: object - bitbucketServer: - properties: - allBranches: - type: boolean - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - required: - - api - - project - type: object - cloneProtocol: - type: string - filters: - items: - properties: - branchMatch: - type: string - labelMatch: - type: string - pathsDoNotExist: - items: - type: string - type: array - pathsExist: - items: - type: string - type: array - repositoryMatch: - type: string - type: object - type: array - gitea: - properties: - allBranches: - type: boolean - api: - type: string - insecure: - type: boolean - owner: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - type: object - github: - properties: - allBranches: - type: boolean - api: - type: string - appSecretName: - type: string - organization: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - type: object - gitlab: - properties: - allBranches: - type: boolean - api: - type: string - group: - type: string - includeSubgroups: - type: boolean - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - group - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: object - type: array - mergeKeys: - items: - type: string - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - generators - - mergeKeys - type: object - pullRequest: - properties: - bitbucketServer: - properties: - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - repo: - type: string - required: - - api - - project - - repo - type: object - filters: - items: - properties: - branchMatch: - type: string - type: object - type: array - gitea: - properties: - api: - type: string - insecure: - type: boolean - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - - repo - type: object - github: - properties: - api: - type: string - appSecretName: - type: string - labels: - items: - type: string - type: array - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - owner - - repo - type: object - gitlab: - properties: - api: - type: string - labels: - items: - type: string - type: array - project: - type: string - pullRequestState: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - project - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - type: object - scmProvider: - properties: - azureDevOps: - properties: - accessTokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - allBranches: - type: boolean - api: - type: string - organization: - type: string - teamProject: - type: string - required: - - accessTokenRef - - organization - - teamProject - type: object - bitbucket: - properties: - allBranches: - type: boolean - appPasswordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - owner: - type: string - user: - type: string - required: - - appPasswordRef - - owner - - user - type: object - bitbucketServer: - properties: - allBranches: - type: boolean - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - required: - - api - - project - type: object - cloneProtocol: - type: string - filters: - items: - properties: - branchMatch: - type: string - labelMatch: - type: string - pathsDoNotExist: - items: - type: string - type: array - pathsExist: - items: - type: string - type: array - repositoryMatch: - type: string - type: object - type: array - gitea: - properties: - allBranches: - type: boolean - api: - type: string - insecure: - type: boolean - owner: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - type: object - github: - properties: - allBranches: - type: boolean - api: - type: string - appSecretName: - type: string - organization: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - type: object - gitlab: - properties: - allBranches: - type: boolean - api: - type: string - group: - type: string - includeSubgroups: - type: boolean - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - group - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object + username: + type: string required: - - destination - - project + - passwordRef + - username type: object + project: + type: string + repo: + type: string required: - - metadata - - spec + - api + - project + - repo type: object - type: object - selector: - properties: - matchExpressions: + filters: items: properties: - key: - type: string - operator: + branchMatch: type: string - values: - items: - type: string - type: array - required: - - key - - operator type: object type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: object - type: array - goTemplate: - type: boolean - strategy: - properties: - rollingSync: - properties: - steps: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - maxUpdate: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: array - type: object - type: - type: string - type: object - syncPolicy: - properties: - preserveResourcesOnDeletion: - type: boolean - type: object - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: + gitea: properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: + api: type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: + insecure: + type: boolean + owner: type: string - value: + repo: type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: + tokenRef: + properties: + key: type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: + secretName: type: string - type: object - commonLabels: - additionalProperties: + required: + - key + - secretName + type: object + required: + - api + - owner + - repo + type: object + github: + properties: + api: + type: string + appSecretName: + type: string + labels: + items: + type: string + type: array + owner: + type: string + repo: + type: string + tokenRef: + properties: + key: type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: + secretName: type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: + required: + - key + - secretName + type: object + required: + - owner + - repo + type: object + gitlab: properties: - chart: + api: type: string - directory: + labels: + items: + type: string + type: array + project: + type: string + pullRequestState: + type: string + tokenRef: properties: - exclude: + key: type: string - include: + secretName: type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean + required: + - key + - secretName type: object - helm: + required: + - project + type: object + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + scmProvider: + properties: + azureDevOps: + properties: + accessTokenRef: properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + allBranches: + type: boolean + api: + type: string + organization: + type: string + teamProject: + type: string + required: + - accessTokenRef + - organization + - teamProject + type: object + bitbucket: + properties: + allBranches: + type: boolean + appPasswordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + owner: + type: string + user: + type: string + required: + - appPasswordRef + - owner + - user + type: object + bitbucketServer: + properties: + allBranches: + type: boolean + api: + type: string + basicAuth: + properties: + passwordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + username: type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: + required: + - passwordRef + - username + type: object + project: + type: string + required: + - api + - project + type: object + cloneProtocol: + type: string + filters: + items: + properties: + branchMatch: + type: string + labelMatch: + type: string + pathsDoNotExist: + items: type: string - version: + type: array + pathsExist: + items: type: string - type: object - kustomize: + type: array + repositoryMatch: + type: string + type: object + type: array + gitea: + properties: + allBranches: + type: boolean + api: + type: string + insecure: + type: boolean + owner: + type: string + tokenRef: properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - path: + required: + - api + - owner + type: object + github: + properties: + allBranches: + type: boolean + api: type: string - plugin: + appSecretName: + type: string + organization: + type: string + tokenRef: properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + key: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + secretName: + type: string + required: + - key + - secretName type: object - ref: - type: string - repoURL: + required: + - organization + type: object + gitlab: + properties: + allBranches: + type: boolean + api: type: string - targetRevision: + group: type: string + includeSubgroups: + type: boolean + tokenRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object required: - - repoURL + - group type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + selector: + properties: + matchExpressions: + items: properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: + key: + type: string + operator: + type: string + values: + items: type: string - type: object + type: array + required: + - key + - operator type: object - retry: - properties: - backoff: + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: object + type: array + goTemplate: + type: boolean + strategy: + properties: + rollingSync: + properties: + steps: + items: + properties: + matchExpressions: + items: properties: - duration: + key: type: string - factor: - format: int64 - type: integer - maxDuration: + operator: type: string + values: + items: + type: string + type: array type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project + type: array + maxUpdate: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + type: array type: object - required: - - metadata - - spec + type: + type: string + type: object + syncPolicy: + properties: + preserveResourcesOnDeletion: + type: boolean type: object + template: + x-kubernetes-preserve-unknown-fields: true required: - generators - template diff --git a/manifests/crds/applicationset-crd.yaml b/manifests/crds/applicationset-crd.yaml index c92231734f93d..5348e28fb81bc 100644 --- a/manifests/crds/applicationset-crd.yaml +++ b/manifests/crds/applicationset-crd.yaml @@ -65,1855 +65,91 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - required: - - configMapRef - type: object - clusters: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - type: object - git: - properties: - directories: - items: - properties: - exclude: - type: boolean - path: - type: string - required: - - path - type: object - type: array - files: - items: - properties: - path: - type: string - required: - - path - type: object - type: array - pathParamPrefix: - type: string - repoURL: - type: string - requeueAfterSeconds: - format: int64 - type: integer - revision: - type: string - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - repoURL - - revision - type: object - list: - properties: - elements: - items: - x-kubernetes-preserve-unknown-fields: true - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project + x-kubernetes-preserve-unknown-fields: true + values: + additionalProperties: + type: string + type: object + required: + - configMapRef + type: object + clusters: + properties: + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string type: object - required: - - metadata - - spec type: object + template: + x-kubernetes-preserve-unknown-fields: true + values: + additionalProperties: + type: string + type: object + type: object + git: + properties: + directories: + items: + properties: + exclude: + type: boolean + path: + type: string + required: + - path + type: object + type: array + files: + items: + properties: + path: + type: string + required: + - path + type: object + type: array + pathParamPrefix: + type: string + repoURL: + type: string + requeueAfterSeconds: + format: int64 + type: integer + revision: + type: string + template: + x-kubernetes-preserve-unknown-fields: true + required: + - repoURL + - revision + type: object + list: + properties: + elements: + items: + x-kubernetes-preserve-unknown-fields: true + type: array + template: + x-kubernetes-preserve-unknown-fields: true required: - elements type: object @@ -1955,448 +191,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -2430,448 +225,7 @@ spec: type: object type: object template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -2909,448 +263,7 @@ spec: revision: type: string template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true required: - repoURL - revision @@ -3362,448 +275,7 @@ spec: x-kubernetes-preserve-unknown-fields: true type: array template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true required: - elements type: object @@ -3919,462 +391,21 @@ spec: tokenRef: properties: key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - project - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object + type: string + secretName: + type: string required: - - destination - - project + - key + - secretName type: object required: - - metadata - - spec + - project type: object + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true type: object scmProvider: properties: @@ -4473,995 +504,113 @@ spec: items: type: string type: array - repositoryMatch: - type: string - type: object - type: array - gitea: - properties: - allBranches: - type: boolean - api: - type: string - insecure: - type: boolean - owner: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - type: object - github: - properties: - allBranches: - type: boolean - api: - type: string - appSecretName: - type: string - organization: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - type: object - gitlab: - properties: - allBranches: - type: boolean - api: - type: string - group: - type: string - includeSubgroups: - type: boolean - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - group - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: object - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + repositoryMatch: + type: string type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: + type: array + gitea: properties: - chart: + allBranches: + type: boolean + api: type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: + insecure: + type: boolean + owner: + type: string + tokenRef: properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - kustomize: + required: + - api + - owner + type: object + github: + properties: + allBranches: + type: boolean + api: + type: string + appSecretName: + type: string + organization: + type: string + tokenRef: properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - path: + required: + - organization + type: object + gitlab: + properties: + allBranches: + type: boolean + api: type: string - plugin: + group: + type: string + includeSubgroups: + type: boolean + tokenRef: properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + key: + type: string + secretName: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + required: + - key + - secretName type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string required: - - repoURL + - group type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + selector: + properties: + matchExpressions: + items: properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: + key: + type: string + operator: + type: string + values: + items: type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer + type: array + required: + - key + - operator type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: object + type: array + template: + x-kubernetes-preserve-unknown-fields: true required: - generators type: object @@ -5503,448 +652,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -5978,448 +686,7 @@ spec: type: object type: object template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -6457,448 +724,7 @@ spec: revision: type: string template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true required: - repoURL - revision @@ -6906,452 +732,11 @@ spec: list: properties: elements: - items: - x-kubernetes-preserve-unknown-fields: true - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + items: + x-kubernetes-preserve-unknown-fields: true + type: array + template: + x-kubernetes-preserve-unknown-fields: true required: - elements type: object @@ -7481,448 +866,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true type: object scmProvider: properties: @@ -8099,921 +1043,39 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true type: object selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: object - type: array - mergeKeys: - items: - type: string - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: + properties: + matchExpressions: + items: properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: object + type: array + mergeKeys: + items: + type: string + type: array + template: + x-kubernetes-preserve-unknown-fields: true required: - generators - mergeKeys @@ -9090,498 +1152,57 @@ spec: appSecretName: type: string labels: - items: - type: string - type: array - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - owner - - repo - type: object - gitlab: - properties: - api: - type: string - labels: - items: - type: string - type: array - project: - type: string - pullRequestState: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - project - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object + items: + type: string + type: array + owner: + type: string + repo: + type: string + tokenRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + required: + - owner + - repo + type: object + gitlab: + properties: + api: + type: string + labels: + items: + type: string + type: array + project: + type: string + pullRequestState: + type: string + tokenRef: + properties: + key: + type: string + secretName: + type: string required: - - destination - - project + - key + - secretName type: object required: - - metadata - - spec + - project type: object + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true type: object scmProvider: properties: @@ -9717,489 +1338,48 @@ spec: appSecretName: type: string organization: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - type: object - gitlab: - properties: - allBranches: - type: boolean - api: - type: string - group: - type: string - includeSubgroups: - type: boolean - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - group - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object + type: string + tokenRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + required: + - organization + type: object + gitlab: + properties: + allBranches: + type: boolean + api: + type: string + group: + type: string + includeSubgroups: + type: boolean + tokenRef: + properties: + key: + type: string + secretName: + type: string required: - - destination - - project + - key + - secretName type: object required: - - metadata - - spec + - group type: object + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true type: object selector: properties: @@ -10265,448 +1445,7 @@ spec: type: boolean type: object template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true required: - generators - template diff --git a/manifests/ha/install.yaml b/manifests/ha/install.yaml index 593f458fb319e..4991f4e927704 100644 --- a/manifests/ha/install.yaml +++ b/manifests/ha/install.yaml @@ -4079,448 +4079,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -4554,448 +4113,7 @@ spec: type: object type: object template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -5033,905 +4151,484 @@ spec: revision: type: string template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: + x-kubernetes-preserve-unknown-fields: true + required: + - repoURL + - revision + type: object + list: + properties: + elements: + items: + x-kubernetes-preserve-unknown-fields: true + type: array + template: + x-kubernetes-preserve-unknown-fields: true + required: + - elements + type: object + matrix: + properties: + generators: + items: + properties: + clusterDecisionResource: + properties: + configMapRef: type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: + labelSelector: properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: + matchExpressions: items: - type: string + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object type: array - kind: - type: string - managedFieldsManagers: - items: + matchLabels: + additionalProperties: type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value + type: object type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: + name: + type: string + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + values: + additionalProperties: type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: + type: object + required: + - configMapRef + type: object + clusters: + properties: + selector: + properties: + matchExpressions: + items: properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: + key: + type: string + operator: + type: string + values: items: type: string type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array + required: + - key + - operator type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: + type: array + matchLabels: + additionalProperties: type: string - skipCrds: + type: object + type: object + template: + x-kubernetes-preserve-unknown-fields: true + values: + additionalProperties: + type: string + type: object + type: object + git: + properties: + directories: + items: + properties: + exclude: type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: + path: type: string + required: + - path type: object - kustomize: + type: array + files: + items: properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: + path: type: string + required: + - path type: object - path: - type: string - plugin: - properties: - env: - items: + type: array + pathParamPrefix: + type: string + repoURL: + type: string + requeueAfterSeconds: + format: int64 + type: integer + revision: + type: string + template: + x-kubernetes-preserve-unknown-fields: true + required: + - repoURL + - revision + type: object + list: + properties: + elements: + items: + x-kubernetes-preserve-unknown-fields: true + type: array + template: + x-kubernetes-preserve-unknown-fields: true + required: + - elements + type: object + matrix: + x-kubernetes-preserve-unknown-fields: true + merge: + x-kubernetes-preserve-unknown-fields: true + pullRequest: + properties: + bitbucketServer: + properties: + api: + type: string + basicAuth: + properties: + passwordRef: properties: - name: + key: type: string - value: + secretName: type: string required: - - name - - value + - key + - secretName type: object - type: array - name: + username: + type: string + required: + - passwordRef + - username + type: object + project: + type: string + repo: + type: string + required: + - api + - project + - repo + type: object + filters: + items: + properties: + branchMatch: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: + type: array + gitea: properties: - chart: + api: type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: + insecure: + type: boolean + owner: + type: string + repo: + type: string + tokenRef: properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: + required: + - api + - owner + - repo + type: object + github: + properties: + api: + type: string + appSecretName: + type: string + labels: + items: + type: string + type: array + owner: + type: string + repo: type: string - plugin: + tokenRef: properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + key: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + secretName: + type: string + required: + - key + - secretName type: object - ref: + required: + - owner + - repo + type: object + gitlab: + properties: + api: type: string - repoURL: + labels: + items: + type: string + type: array + project: type: string - targetRevision: + pullRequestState: type: string + tokenRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object required: - - repoURL + - project type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + scmProvider: + properties: + azureDevOps: + properties: + accessTokenRef: + properties: + key: type: string - type: object - labels: - additionalProperties: + secretName: type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: + required: + - key + - secretName + type: object + allBranches: + type: boolean + api: type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - repoURL - - revision - type: object - list: - properties: - elements: - items: - x-kubernetes-preserve-unknown-fields: true - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: + organization: type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: + teamProject: type: string - managedFieldsManagers: - items: - type: string - type: array - name: + required: + - accessTokenRef + - organization + - teamProject + type: object + bitbucket: + properties: + allBranches: + type: boolean + appPasswordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + owner: type: string - namespace: + user: type: string required: - - kind + - appPasswordRef + - owner + - user type: object - type: array - info: - items: + bitbucketServer: properties: - name: + allBranches: + type: boolean + api: type: string - value: + basicAuth: + properties: + passwordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + username: + type: string + required: + - passwordRef + - username + type: object + project: type: string required: - - name - - value + - api + - project type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: + cloneProtocol: + type: string + filters: + items: properties: - exclude: + branchMatch: type: string - include: + labelMatch: type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: + pathsDoNotExist: items: - properties: - name: - type: string - path: - type: string - type: object + type: string type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: + pathsExist: items: type: string type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + repositoryMatch: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: + type: array + gitea: properties: - chart: + allBranches: + type: boolean + api: type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: + insecure: + type: boolean + owner: + type: string + tokenRef: properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - kustomize: + required: + - api + - owner + type: object + github: + properties: + allBranches: + type: boolean + api: + type: string + appSecretName: + type: string + organization: + type: string + tokenRef: properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - path: + required: + - organization + type: object + gitlab: + properties: + allBranches: + type: boolean + api: + type: string + group: type: string - plugin: + includeSubgroups: + type: boolean + tokenRef: properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + key: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + secretName: + type: string + required: + - key + - secretName type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string required: - - repoURL + - group type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + selector: + properties: + matchExpressions: + items: properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: + key: + type: string + operator: + type: string + values: + items: type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer + type: array + required: + - key + - operator type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: object + type: array + template: + x-kubernetes-preserve-unknown-fields: true required: - - elements + - generators type: object - matrix: + merge: properties: generators: items: @@ -5969,448 +4666,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -6444,448 +4700,7 @@ spec: type: object type: object template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -6923,448 +4738,7 @@ spec: revision: type: string template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true required: - repoURL - revision @@ -7376,448 +4750,7 @@ spec: x-kubernetes-preserve-unknown-fields: true type: array template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true required: - elements type: object @@ -7947,448 +4880,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true type: object scmProvider: properties: @@ -8565,448 +5057,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true type: object selector: properties: @@ -9033,5694 +5084,382 @@ spec: type: object type: object type: array + mergeKeys: + items: + type: string + type: array template: + x-kubernetes-preserve-unknown-fields: true + required: + - generators + - mergeKeys + type: object + pullRequest: + properties: + bitbucketServer: properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: + api: + type: string + basicAuth: properties: - destination: + passwordRef: properties: - name: - type: string - namespace: + key: type: string - server: + secretName: type: string + required: + - key + - secretName type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - generators - type: object - merge: - properties: - generators: - items: - properties: - clusterDecisionResource: - properties: - configMapRef: - type: string - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - name: - type: string - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - required: - - configMapRef - type: object - clusters: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - type: object - git: - properties: - directories: - items: - properties: - exclude: - type: boolean - path: - type: string - required: - - path - type: object - type: array - files: - items: - properties: - path: - type: string - required: - - path - type: object - type: array - pathParamPrefix: - type: string - repoURL: - type: string - requeueAfterSeconds: - format: int64 - type: integer - revision: - type: string - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - repoURL - - revision - type: object - list: - properties: - elements: - items: - x-kubernetes-preserve-unknown-fields: true - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - elements - type: object - matrix: - x-kubernetes-preserve-unknown-fields: true - merge: - x-kubernetes-preserve-unknown-fields: true - pullRequest: - properties: - bitbucketServer: - properties: - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - repo: - type: string - required: - - api - - project - - repo - type: object - filters: - items: - properties: - branchMatch: - type: string - type: object - type: array - gitea: - properties: - api: - type: string - insecure: - type: boolean - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - - repo - type: object - github: - properties: - api: - type: string - appSecretName: - type: string - labels: - items: - type: string - type: array - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - owner - - repo - type: object - gitlab: - properties: - api: - type: string - labels: - items: - type: string - type: array - project: - type: string - pullRequestState: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - project - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - type: object - scmProvider: - properties: - azureDevOps: - properties: - accessTokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - allBranches: - type: boolean - api: - type: string - organization: - type: string - teamProject: - type: string - required: - - accessTokenRef - - organization - - teamProject - type: object - bitbucket: - properties: - allBranches: - type: boolean - appPasswordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - owner: - type: string - user: - type: string - required: - - appPasswordRef - - owner - - user - type: object - bitbucketServer: - properties: - allBranches: - type: boolean - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - required: - - api - - project - type: object - cloneProtocol: - type: string - filters: - items: - properties: - branchMatch: - type: string - labelMatch: - type: string - pathsDoNotExist: - items: - type: string - type: array - pathsExist: - items: - type: string - type: array - repositoryMatch: - type: string - type: object - type: array - gitea: - properties: - allBranches: - type: boolean - api: - type: string - insecure: - type: boolean - owner: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - type: object - github: - properties: - allBranches: - type: boolean - api: - type: string - appSecretName: - type: string - organization: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - type: object - gitlab: - properties: - allBranches: - type: boolean - api: - type: string - group: - type: string - includeSubgroups: - type: boolean - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - group - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: object - type: array - mergeKeys: - items: - type: string - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - generators - - mergeKeys - type: object - pullRequest: - properties: - bitbucketServer: - properties: - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - repo: - type: string - required: - - api - - project - - repo - type: object - filters: - items: - properties: - branchMatch: - type: string - type: object - type: array - gitea: - properties: - api: - type: string - insecure: - type: boolean - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - - repo - type: object - github: - properties: - api: - type: string - appSecretName: - type: string - labels: - items: - type: string - type: array - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - owner - - repo - type: object - gitlab: - properties: - api: - type: string - labels: - items: - type: string - type: array - project: - type: string - pullRequestState: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - project - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - type: object - scmProvider: - properties: - azureDevOps: - properties: - accessTokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - allBranches: - type: boolean - api: - type: string - organization: - type: string - teamProject: - type: string - required: - - accessTokenRef - - organization - - teamProject - type: object - bitbucket: - properties: - allBranches: - type: boolean - appPasswordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - owner: - type: string - user: - type: string - required: - - appPasswordRef - - owner - - user - type: object - bitbucketServer: - properties: - allBranches: - type: boolean - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - required: - - api - - project - type: object - cloneProtocol: - type: string - filters: - items: - properties: - branchMatch: - type: string - labelMatch: - type: string - pathsDoNotExist: - items: - type: string - type: array - pathsExist: - items: - type: string - type: array - repositoryMatch: - type: string - type: object - type: array - gitea: - properties: - allBranches: - type: boolean - api: - type: string - insecure: - type: boolean - owner: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - type: object - github: - properties: - allBranches: - type: boolean - api: - type: string - appSecretName: - type: string - organization: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - type: object - gitlab: - properties: - allBranches: - type: boolean - api: - type: string - group: - type: string - includeSubgroups: - type: boolean - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - group - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object + username: + type: string required: - - destination - - project + - passwordRef + - username type: object + project: + type: string + repo: + type: string required: - - metadata - - spec + - api + - project + - repo type: object - type: object - selector: - properties: - matchExpressions: + filters: items: properties: - key: - type: string - operator: + branchMatch: type: string - values: - items: - type: string - type: array - required: - - key - - operator type: object type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: object - type: array - goTemplate: - type: boolean - strategy: - properties: - rollingSync: - properties: - steps: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - maxUpdate: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: array - type: object - type: - type: string - type: object - syncPolicy: - properties: - preserveResourcesOnDeletion: - type: boolean - type: object - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: + gitea: properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: + api: type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: + insecure: + type: boolean + owner: type: string - value: + repo: type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: + tokenRef: + properties: + key: type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: + secretName: type: string - type: object - commonLabels: - additionalProperties: + required: + - key + - secretName + type: object + required: + - api + - owner + - repo + type: object + github: + properties: + api: + type: string + appSecretName: + type: string + labels: + items: + type: string + type: array + owner: + type: string + repo: + type: string + tokenRef: + properties: + key: type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: + secretName: type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: + required: + - key + - secretName + type: object + required: + - owner + - repo + type: object + gitlab: properties: - chart: + api: type: string - directory: + labels: + items: + type: string + type: array + project: + type: string + pullRequestState: + type: string + tokenRef: properties: - exclude: + key: type: string - include: + secretName: type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean + required: + - key + - secretName type: object - helm: + required: + - project + type: object + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + scmProvider: + properties: + azureDevOps: + properties: + accessTokenRef: properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + allBranches: + type: boolean + api: + type: string + organization: + type: string + teamProject: + type: string + required: + - accessTokenRef + - organization + - teamProject + type: object + bitbucket: + properties: + allBranches: + type: boolean + appPasswordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + owner: + type: string + user: + type: string + required: + - appPasswordRef + - owner + - user + type: object + bitbucketServer: + properties: + allBranches: + type: boolean + api: + type: string + basicAuth: + properties: + passwordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + username: type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: + required: + - passwordRef + - username + type: object + project: + type: string + required: + - api + - project + type: object + cloneProtocol: + type: string + filters: + items: + properties: + branchMatch: + type: string + labelMatch: + type: string + pathsDoNotExist: + items: type: string - version: + type: array + pathsExist: + items: type: string - type: object - kustomize: + type: array + repositoryMatch: + type: string + type: object + type: array + gitea: + properties: + allBranches: + type: boolean + api: + type: string + insecure: + type: boolean + owner: + type: string + tokenRef: properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - path: + required: + - api + - owner + type: object + github: + properties: + allBranches: + type: boolean + api: type: string - plugin: + appSecretName: + type: string + organization: + type: string + tokenRef: properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + key: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + secretName: + type: string + required: + - key + - secretName type: object - ref: - type: string - repoURL: + required: + - organization + type: object + gitlab: + properties: + allBranches: + type: boolean + api: type: string - targetRevision: + group: type: string + includeSubgroups: + type: boolean + tokenRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object required: - - repoURL + - group type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + selector: + properties: + matchExpressions: + items: properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: + key: + type: string + operator: + type: string + values: + items: type: string - type: object + type: array + required: + - key + - operator type: object - retry: - properties: - backoff: + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: object + type: array + goTemplate: + type: boolean + strategy: + properties: + rollingSync: + properties: + steps: + items: + properties: + matchExpressions: + items: properties: - duration: + key: type: string - factor: - format: int64 - type: integer - maxDuration: + operator: type: string + values: + items: + type: string + type: array type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project + type: array + maxUpdate: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + type: array type: object - required: - - metadata - - spec + type: + type: string + type: object + syncPolicy: + properties: + preserveResourcesOnDeletion: + type: boolean type: object + template: + x-kubernetes-preserve-unknown-fields: true required: - generators - template diff --git a/manifests/install.yaml b/manifests/install.yaml index 51e887b3e63a8..c461b3cc1ee0d 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -4079,448 +4079,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -4554,448 +4113,7 @@ spec: type: object type: object template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -5033,905 +4151,484 @@ spec: revision: type: string template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: + x-kubernetes-preserve-unknown-fields: true + required: + - repoURL + - revision + type: object + list: + properties: + elements: + items: + x-kubernetes-preserve-unknown-fields: true + type: array + template: + x-kubernetes-preserve-unknown-fields: true + required: + - elements + type: object + matrix: + properties: + generators: + items: + properties: + clusterDecisionResource: + properties: + configMapRef: type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: + labelSelector: properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: + matchExpressions: items: - type: string + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + required: + - key + - operator + type: object type: array - kind: - type: string - managedFieldsManagers: - items: + matchLabels: + additionalProperties: type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value + type: object type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: + name: + type: string + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + values: + additionalProperties: type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: + type: object + required: + - configMapRef + type: object + clusters: + properties: + selector: + properties: + matchExpressions: + items: properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: + key: + type: string + operator: + type: string + values: items: type: string type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array + required: + - key + - operator type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: + type: array + matchLabels: + additionalProperties: type: string - skipCrds: + type: object + type: object + template: + x-kubernetes-preserve-unknown-fields: true + values: + additionalProperties: + type: string + type: object + type: object + git: + properties: + directories: + items: + properties: + exclude: type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: + path: type: string + required: + - path type: object - kustomize: + type: array + files: + items: properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: + path: type: string + required: + - path type: object - path: - type: string - plugin: - properties: - env: - items: + type: array + pathParamPrefix: + type: string + repoURL: + type: string + requeueAfterSeconds: + format: int64 + type: integer + revision: + type: string + template: + x-kubernetes-preserve-unknown-fields: true + required: + - repoURL + - revision + type: object + list: + properties: + elements: + items: + x-kubernetes-preserve-unknown-fields: true + type: array + template: + x-kubernetes-preserve-unknown-fields: true + required: + - elements + type: object + matrix: + x-kubernetes-preserve-unknown-fields: true + merge: + x-kubernetes-preserve-unknown-fields: true + pullRequest: + properties: + bitbucketServer: + properties: + api: + type: string + basicAuth: + properties: + passwordRef: properties: - name: + key: type: string - value: + secretName: type: string required: - - name - - value + - key + - secretName type: object - type: array - name: + username: + type: string + required: + - passwordRef + - username + type: object + project: + type: string + repo: + type: string + required: + - api + - project + - repo + type: object + filters: + items: + properties: + branchMatch: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: + type: array + gitea: properties: - chart: + api: type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: + insecure: + type: boolean + owner: + type: string + repo: + type: string + tokenRef: properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: + required: + - api + - owner + - repo + type: object + github: + properties: + api: + type: string + appSecretName: + type: string + labels: + items: + type: string + type: array + owner: + type: string + repo: type: string - plugin: + tokenRef: properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + key: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + secretName: + type: string + required: + - key + - secretName type: object - ref: + required: + - owner + - repo + type: object + gitlab: + properties: + api: type: string - repoURL: + labels: + items: + type: string + type: array + project: type: string - targetRevision: + pullRequestState: type: string + tokenRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object required: - - repoURL + - project type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + scmProvider: + properties: + azureDevOps: + properties: + accessTokenRef: + properties: + key: type: string - type: object - labels: - additionalProperties: + secretName: type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: + required: + - key + - secretName + type: object + allBranches: + type: boolean + api: type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - repoURL - - revision - type: object - list: - properties: - elements: - items: - x-kubernetes-preserve-unknown-fields: true - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: + organization: type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: + teamProject: type: string - managedFieldsManagers: - items: - type: string - type: array - name: + required: + - accessTokenRef + - organization + - teamProject + type: object + bitbucket: + properties: + allBranches: + type: boolean + appPasswordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + owner: type: string - namespace: + user: type: string required: - - kind + - appPasswordRef + - owner + - user type: object - type: array - info: - items: + bitbucketServer: properties: - name: + allBranches: + type: boolean + api: type: string - value: + basicAuth: + properties: + passwordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + username: + type: string + required: + - passwordRef + - username + type: object + project: type: string required: - - name - - value + - api + - project type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: + cloneProtocol: + type: string + filters: + items: properties: - exclude: + branchMatch: type: string - include: + labelMatch: type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: + pathsDoNotExist: items: - properties: - name: - type: string - path: - type: string - type: object + type: string type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: + pathsExist: items: type: string type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + repositoryMatch: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: + type: array + gitea: properties: - chart: + allBranches: + type: boolean + api: type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: + insecure: + type: boolean + owner: + type: string + tokenRef: properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - kustomize: + required: + - api + - owner + type: object + github: + properties: + allBranches: + type: boolean + api: + type: string + appSecretName: + type: string + organization: + type: string + tokenRef: properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - path: + required: + - organization + type: object + gitlab: + properties: + allBranches: + type: boolean + api: + type: string + group: type: string - plugin: + includeSubgroups: + type: boolean + tokenRef: properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + key: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + secretName: + type: string + required: + - key + - secretName type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string required: - - repoURL + - group type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + selector: + properties: + matchExpressions: + items: properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: + key: + type: string + operator: + type: string + values: + items: type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer + type: array + required: + - key + - operator type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: object + type: array + template: + x-kubernetes-preserve-unknown-fields: true required: - - elements + - generators type: object - matrix: + merge: properties: generators: items: @@ -5969,448 +4666,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -6444,448 +4700,7 @@ spec: type: object type: object template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true values: additionalProperties: type: string @@ -6923,448 +4738,7 @@ spec: revision: type: string template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true required: - repoURL - revision @@ -7376,448 +4750,7 @@ spec: x-kubernetes-preserve-unknown-fields: true type: array template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true required: - elements type: object @@ -7947,448 +4880,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true type: object scmProvider: properties: @@ -8565,448 +5057,7 @@ spec: format: int64 type: integer template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object + x-kubernetes-preserve-unknown-fields: true type: object selector: properties: @@ -9033,5694 +5084,382 @@ spec: type: object type: object type: array + mergeKeys: + items: + type: string + type: array template: + x-kubernetes-preserve-unknown-fields: true + required: + - generators + - mergeKeys + type: object + pullRequest: + properties: + bitbucketServer: properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: + api: + type: string + basicAuth: properties: - destination: + passwordRef: properties: - name: - type: string - namespace: + key: type: string - server: + secretName: type: string + required: + - key + - secretName type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - generators - type: object - merge: - properties: - generators: - items: - properties: - clusterDecisionResource: - properties: - configMapRef: - type: string - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - name: - type: string - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - required: - - configMapRef - type: object - clusters: - properties: - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - values: - additionalProperties: - type: string - type: object - type: object - git: - properties: - directories: - items: - properties: - exclude: - type: boolean - path: - type: string - required: - - path - type: object - type: array - files: - items: - properties: - path: - type: string - required: - - path - type: object - type: array - pathParamPrefix: - type: string - repoURL: - type: string - requeueAfterSeconds: - format: int64 - type: integer - revision: - type: string - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - repoURL - - revision - type: object - list: - properties: - elements: - items: - x-kubernetes-preserve-unknown-fields: true - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - elements - type: object - matrix: - x-kubernetes-preserve-unknown-fields: true - merge: - x-kubernetes-preserve-unknown-fields: true - pullRequest: - properties: - bitbucketServer: - properties: - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - repo: - type: string - required: - - api - - project - - repo - type: object - filters: - items: - properties: - branchMatch: - type: string - type: object - type: array - gitea: - properties: - api: - type: string - insecure: - type: boolean - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - - repo - type: object - github: - properties: - api: - type: string - appSecretName: - type: string - labels: - items: - type: string - type: array - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - owner - - repo - type: object - gitlab: - properties: - api: - type: string - labels: - items: - type: string - type: array - project: - type: string - pullRequestState: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - project - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - type: object - scmProvider: - properties: - azureDevOps: - properties: - accessTokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - allBranches: - type: boolean - api: - type: string - organization: - type: string - teamProject: - type: string - required: - - accessTokenRef - - organization - - teamProject - type: object - bitbucket: - properties: - allBranches: - type: boolean - appPasswordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - owner: - type: string - user: - type: string - required: - - appPasswordRef - - owner - - user - type: object - bitbucketServer: - properties: - allBranches: - type: boolean - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - required: - - api - - project - type: object - cloneProtocol: - type: string - filters: - items: - properties: - branchMatch: - type: string - labelMatch: - type: string - pathsDoNotExist: - items: - type: string - type: array - pathsExist: - items: - type: string - type: array - repositoryMatch: - type: string - type: object - type: array - gitea: - properties: - allBranches: - type: boolean - api: - type: string - insecure: - type: boolean - owner: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - type: object - github: - properties: - allBranches: - type: boolean - api: - type: string - appSecretName: - type: string - organization: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - type: object - gitlab: - properties: - allBranches: - type: boolean - api: - type: string - group: - type: string - includeSubgroups: - type: boolean - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - group - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: object - type: array - mergeKeys: - items: - type: string - type: array - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - required: - - generators - - mergeKeys - type: object - pullRequest: - properties: - bitbucketServer: - properties: - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - repo: - type: string - required: - - api - - project - - repo - type: object - filters: - items: - properties: - branchMatch: - type: string - type: object - type: array - gitea: - properties: - api: - type: string - insecure: - type: boolean - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - - repo - type: object - github: - properties: - api: - type: string - appSecretName: - type: string - labels: - items: - type: string - type: array - owner: - type: string - repo: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - owner - - repo - type: object - gitlab: - properties: - api: - type: string - labels: - items: - type: string - type: array - project: - type: string - pullRequestState: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - project - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project - type: object - required: - - metadata - - spec - type: object - type: object - scmProvider: - properties: - azureDevOps: - properties: - accessTokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - allBranches: - type: boolean - api: - type: string - organization: - type: string - teamProject: - type: string - required: - - accessTokenRef - - organization - - teamProject - type: object - bitbucket: - properties: - allBranches: - type: boolean - appPasswordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - owner: - type: string - user: - type: string - required: - - appPasswordRef - - owner - - user - type: object - bitbucketServer: - properties: - allBranches: - type: boolean - api: - type: string - basicAuth: - properties: - passwordRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - username: - type: string - required: - - passwordRef - - username - type: object - project: - type: string - required: - - api - - project - type: object - cloneProtocol: - type: string - filters: - items: - properties: - branchMatch: - type: string - labelMatch: - type: string - pathsDoNotExist: - items: - type: string - type: array - pathsExist: - items: - type: string - type: array - repositoryMatch: - type: string - type: object - type: array - gitea: - properties: - allBranches: - type: boolean - api: - type: string - insecure: - type: boolean - owner: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - api - - owner - type: object - github: - properties: - allBranches: - type: boolean - api: - type: string - appSecretName: - type: string - organization: - type: string - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - organization - type: object - gitlab: - properties: - allBranches: - type: boolean - api: - type: string - group: - type: string - includeSubgroups: - type: boolean - tokenRef: - properties: - key: - type: string - secretName: - type: string - required: - - key - - secretName - type: object - required: - - group - type: object - requeueAfterSeconds: - format: int64 - type: integer - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: - properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: - type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - retry: - properties: - backoff: - properties: - duration: - type: string - factor: - format: int64 - type: integer - maxDuration: - type: string - type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object + username: + type: string required: - - destination - - project + - passwordRef + - username type: object + project: + type: string + repo: + type: string required: - - metadata - - spec + - api + - project + - repo type: object - type: object - selector: - properties: - matchExpressions: + filters: items: properties: - key: - type: string - operator: + branchMatch: type: string - values: - items: - type: string - type: array - required: - - key - - operator type: object type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - type: object - type: array - goTemplate: - type: boolean - strategy: - properties: - rollingSync: - properties: - steps: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - maxUpdate: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - type: object - type: array - type: object - type: - type: string - type: object - syncPolicy: - properties: - preserveResourcesOnDeletion: - type: boolean - type: object - template: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - destination: - properties: - name: - type: string - namespace: - type: string - server: - type: string - type: object - ignoreDifferences: - items: + gitea: properties: - group: - type: string - jqPathExpressions: - items: - type: string - type: array - jsonPointers: - items: - type: string - type: array - kind: - type: string - managedFieldsManagers: - items: - type: string - type: array - name: - type: string - namespace: + api: type: string - required: - - kind - type: object - type: array - info: - items: - properties: - name: + insecure: + type: boolean + owner: type: string - value: + repo: type: string - required: - - name - - value - type: object - type: array - project: - type: string - revisionHistoryLimit: - format: int64 - type: integer - source: - properties: - chart: - type: string - directory: - properties: - exclude: - type: string - include: - type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean - type: object - helm: - properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: - type: string - skipCrds: - type: boolean - valueFiles: - items: + tokenRef: + properties: + key: type: string - type: array - values: - type: string - version: - type: string - type: object - kustomize: - properties: - commonAnnotations: - additionalProperties: + secretName: type: string - type: object - commonLabels: - additionalProperties: + required: + - key + - secretName + type: object + required: + - api + - owner + - repo + type: object + github: + properties: + api: + type: string + appSecretName: + type: string + labels: + items: + type: string + type: array + owner: + type: string + repo: + type: string + tokenRef: + properties: + key: type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: + secretName: type: string - type: array - namePrefix: - type: string - nameSuffix: - type: string - version: - type: string - type: object - path: - type: string - plugin: - properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: - type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array - type: object - ref: - type: string - repoURL: - type: string - targetRevision: - type: string - required: - - repoURL - type: object - sources: - items: + required: + - key + - secretName + type: object + required: + - owner + - repo + type: object + gitlab: properties: - chart: + api: type: string - directory: + labels: + items: + type: string + type: array + project: + type: string + pullRequestState: + type: string + tokenRef: properties: - exclude: + key: type: string - include: + secretName: type: string - jsonnet: - properties: - extVars: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - libs: - items: - type: string - type: array - tlas: - items: - properties: - code: - type: boolean - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - type: object - recurse: - type: boolean + required: + - key + - secretName type: object - helm: + required: + - project + type: object + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + scmProvider: + properties: + azureDevOps: + properties: + accessTokenRef: properties: - fileParameters: - items: - properties: - name: - type: string - path: - type: string - type: object - type: array - ignoreMissingValueFiles: - type: boolean - parameters: - items: - properties: - forceString: - type: boolean - name: - type: string - value: - type: string - type: object - type: array - passCredentials: - type: boolean - releaseName: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + allBranches: + type: boolean + api: + type: string + organization: + type: string + teamProject: + type: string + required: + - accessTokenRef + - organization + - teamProject + type: object + bitbucket: + properties: + allBranches: + type: boolean + appPasswordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + owner: + type: string + user: + type: string + required: + - appPasswordRef + - owner + - user + type: object + bitbucketServer: + properties: + allBranches: + type: boolean + api: + type: string + basicAuth: + properties: + passwordRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object + username: type: string - skipCrds: - type: boolean - valueFiles: - items: - type: string - type: array - values: + required: + - passwordRef + - username + type: object + project: + type: string + required: + - api + - project + type: object + cloneProtocol: + type: string + filters: + items: + properties: + branchMatch: + type: string + labelMatch: + type: string + pathsDoNotExist: + items: type: string - version: + type: array + pathsExist: + items: type: string - type: object - kustomize: + type: array + repositoryMatch: + type: string + type: object + type: array + gitea: + properties: + allBranches: + type: boolean + api: + type: string + insecure: + type: boolean + owner: + type: string + tokenRef: properties: - commonAnnotations: - additionalProperties: - type: string - type: object - commonLabels: - additionalProperties: - type: string - type: object - forceCommonAnnotations: - type: boolean - forceCommonLabels: - type: boolean - images: - items: - type: string - type: array - namePrefix: - type: string - nameSuffix: + key: type: string - version: + secretName: type: string + required: + - key + - secretName type: object - path: + required: + - api + - owner + type: object + github: + properties: + allBranches: + type: boolean + api: type: string - plugin: + appSecretName: + type: string + organization: + type: string + tokenRef: properties: - env: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - name: + key: type: string - parameters: - items: - properties: - array: - items: - type: string - type: array - map: - additionalProperties: - type: string - type: object - name: - type: string - string: - type: string - type: object - type: array + secretName: + type: string + required: + - key + - secretName type: object - ref: - type: string - repoURL: + required: + - organization + type: object + gitlab: + properties: + allBranches: + type: boolean + api: type: string - targetRevision: + group: type: string + includeSubgroups: + type: boolean + tokenRef: + properties: + key: + type: string + secretName: + type: string + required: + - key + - secretName + type: object required: - - repoURL + - group type: object - type: array - syncPolicy: - properties: - automated: - properties: - allowEmpty: - type: boolean - prune: - type: boolean - selfHeal: - type: boolean - type: object - managedNamespaceMetadata: + requeueAfterSeconds: + format: int64 + type: integer + template: + x-kubernetes-preserve-unknown-fields: true + type: object + selector: + properties: + matchExpressions: + items: properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: + key: + type: string + operator: + type: string + values: + items: type: string - type: object + type: array + required: + - key + - operator type: object - retry: - properties: - backoff: + type: array + matchLabels: + additionalProperties: + type: string + type: object + type: object + type: object + type: array + goTemplate: + type: boolean + strategy: + properties: + rollingSync: + properties: + steps: + items: + properties: + matchExpressions: + items: properties: - duration: + key: type: string - factor: - format: int64 - type: integer - maxDuration: + operator: type: string + values: + items: + type: string + type: array type: object - limit: - format: int64 - type: integer - type: object - syncOptions: - items: - type: string - type: array - type: object - required: - - destination - - project + type: array + maxUpdate: + anyOf: + - type: integer + - type: string + x-kubernetes-int-or-string: true + type: object + type: array type: object - required: - - metadata - - spec + type: + type: string + type: object + syncPolicy: + properties: + preserveResourcesOnDeletion: + type: boolean type: object + template: + x-kubernetes-preserve-unknown-fields: true required: - generators - template diff --git a/pkg/apis/api-rules/violation_exceptions.list b/pkg/apis/api-rules/violation_exceptions.list index 754988e464117..77792a4e2fd98 100644 --- a/pkg/apis/api-rules/violation_exceptions.list +++ b/pkg/apis/api-rules/violation_exceptions.list @@ -13,7 +13,6 @@ API rule violation: list_type_missing,github.com/argoproj/argo-cd/v2/pkg/apis/ap API rule violation: list_type_missing,github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1,ApplicationSetSpec,Generators API rule violation: list_type_missing,github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1,ApplicationSetStatus,ApplicationStatus API rule violation: list_type_missing,github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1,ApplicationSetStatus,Conditions -API rule violation: list_type_missing,github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1,ApplicationSetTemplateMeta,Finalizers API rule violation: list_type_missing,github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1,ApplicationSourceHelm,FileParameters API rule violation: list_type_missing,github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1,ApplicationSourceHelm,Parameters API rule violation: list_type_missing,github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1,ApplicationSourceHelm,ValueFiles diff --git a/pkg/apis/application/v1alpha1/applicationset_types.go b/pkg/apis/application/v1alpha1/applicationset_types.go index 508fc226fe736..63dae9f05dc90 100644 --- a/pkg/apis/application/v1alpha1/applicationset_types.go +++ b/pkg/apis/application/v1alpha1/applicationset_types.go @@ -47,16 +47,11 @@ type ApplicationSet struct { Status ApplicationSetStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } -// RBACName formats fully qualified application name for RBAC check. -func (a *ApplicationSet) RBACName() string { - return fmt.Sprintf("%s/%s", a.Spec.Template.Spec.GetProject(), a.ObjectMeta.Name) -} - // ApplicationSetSpec represents a class of application set state. type ApplicationSetSpec struct { GoTemplate bool `json:"goTemplate,omitempty" protobuf:"bytes,1,name=goTemplate"` Generators []ApplicationSetGenerator `json:"generators" protobuf:"bytes,2,name=generators"` - Template ApplicationSetTemplate `json:"template" protobuf:"bytes,3,name=template"` + Template apiextensionsv1.JSON `json:"template" protobuf:"bytes,3,name=template"` SyncPolicy *ApplicationSetSyncPolicy `json:"syncPolicy,omitempty" protobuf:"bytes,4,name=syncPolicy"` Strategy *ApplicationSetStrategy `json:"strategy,omitempty" protobuf:"bytes,5,opt,name=strategy"` } @@ -89,22 +84,6 @@ type ApplicationSetSyncPolicy struct { PreserveResourcesOnDeletion bool `json:"preserveResourcesOnDeletion,omitempty" protobuf:"bytes,1,name=syncPolicy"` } -// ApplicationSetTemplate represents argocd ApplicationSpec -type ApplicationSetTemplate struct { - ApplicationSetTemplateMeta `json:"metadata" protobuf:"bytes,1,name=metadata"` - Spec ApplicationSpec `json:"spec" protobuf:"bytes,2,name=spec"` -} - -// ApplicationSetTemplateMeta represents the Argo CD application fields that may -// be used for Applications generated from the ApplicationSet (based on metav1.ObjectMeta) -type ApplicationSetTemplateMeta struct { - Name string `json:"name,omitempty" protobuf:"bytes,1,name=name"` - Namespace string `json:"namespace,omitempty" protobuf:"bytes,2,name=namespace"` - Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,3,name=labels"` - Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,4,name=annotations"` - Finalizers []string `json:"finalizers,omitempty" protobuf:"bytes,5,name=finalizers"` -} - // ApplicationSetGenerator represents a generator at the top level of an ApplicationSet. type ApplicationSetGenerator struct { List *ListGenerator `json:"list,omitempty" protobuf:"bytes,1,name=list"` @@ -178,14 +157,14 @@ func (g ApplicationSetTerminalGenerators) toApplicationSetNestedGenerators() []A // ListGenerator include items info type ListGenerator struct { Elements []apiextensionsv1.JSON `json:"elements" protobuf:"bytes,1,name=elements"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"` + Template *apiextensionsv1.JSON `json:"template,omitempty" protobuf:"bytes,2,name=template"` } // MatrixGenerator generates the cartesian product of two sets of parameters. The parameters are defined by two nested // generators. type MatrixGenerator struct { Generators []ApplicationSetNestedGenerator `json:"generators" protobuf:"bytes,1,name=generators"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"` + Template *apiextensionsv1.JSON `json:"template,omitempty" protobuf:"bytes,2,name=template"` } // NestedMatrixGenerator is a MatrixGenerator nested under another combination-type generator (MatrixGenerator or @@ -237,7 +216,7 @@ func (g NestedMatrixGenerator) ToMatrixGenerator() *MatrixGenerator { type MergeGenerator struct { Generators []ApplicationSetNestedGenerator `json:"generators" protobuf:"bytes,1,name=generators"` MergeKeys []string `json:"mergeKeys" protobuf:"bytes,2,name=mergeKeys"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,3,name=template"` + Template *apiextensionsv1.JSON `json:"template,omitempty" protobuf:"bytes,3,name=template"` } // NestedMergeGenerator is a MergeGenerator nested under another combination-type generator (MatrixGenerator or @@ -283,8 +262,8 @@ type ClusterGenerator struct { // Selector defines a label selector to match against all clusters registered with ArgoCD. // Clusters today are stored as Kubernetes Secrets, thus the Secret labels will be used // for matching the selector. - Selector metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,1,name=selector"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,2,name=template"` + Selector metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,1,name=selector"` + Template *apiextensionsv1.JSON `json:"template,omitempty" protobuf:"bytes,2,name=template"` // Values contains key/value pairs which are passed directly as parameters to the template Values map[string]string `json:"values,omitempty" protobuf:"bytes,3,name=values"` @@ -301,7 +280,7 @@ type DuckTypeGenerator struct { RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"bytes,3,name=requeueAfterSeconds"` LabelSelector metav1.LabelSelector `json:"labelSelector,omitempty" protobuf:"bytes,4,name=labelSelector"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,5,name=template"` + Template *apiextensionsv1.JSON `json:"template,omitempty" protobuf:"bytes,5,name=template"` // Values contains key/value pairs which are passed directly as parameters to the template Values map[string]string `json:"values,omitempty" protobuf:"bytes,6,name=values"` } @@ -312,7 +291,7 @@ type GitGenerator struct { Files []GitFileGeneratorItem `json:"files,omitempty" protobuf:"bytes,3,name=files"` Revision string `json:"revision" protobuf:"bytes,4,name=revision"` RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"bytes,5,name=requeueAfterSeconds"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,6,name=template"` + Template *apiextensionsv1.JSON `json:"template,omitempty" protobuf:"bytes,6,name=template"` PathParamPrefix string `json:"pathParamPrefix,omitempty" protobuf:"bytes,7,name=pathParamPrefix"` } @@ -340,8 +319,8 @@ type SCMProviderGenerator struct { // necessarily support all protocols. CloneProtocol string `json:"cloneProtocol,omitempty" protobuf:"bytes,8,opt,name=cloneProtocol"` // Standard parameters. - RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,9,opt,name=requeueAfterSeconds"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,10,opt,name=template"` + RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,9,opt,name=requeueAfterSeconds"` + Template *apiextensionsv1.JSON `json:"template,omitempty" protobuf:"bytes,10,name=template"` } // SCMProviderGeneratorGitea defines a connection info specific to Gitea. @@ -450,8 +429,8 @@ type PullRequestGenerator struct { // Filters for which pull requests should be considered. Filters []PullRequestGeneratorFilter `json:"filters,omitempty" protobuf:"bytes,5,rep,name=filters"` // Standard parameters. - RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,6,opt,name=requeueAfterSeconds"` - Template ApplicationSetTemplate `json:"template,omitempty" protobuf:"bytes,7,opt,name=template"` + RequeueAfterSeconds *int64 `json:"requeueAfterSeconds,omitempty" protobuf:"varint,6,opt,name=requeueAfterSeconds"` + Template *apiextensionsv1.JSON `json:"template,omitempty" protobuf:"bytes,7,name=template"` } // PullRequestGenerator defines connection info specific to Gitea. diff --git a/pkg/apis/application/v1alpha1/generated.pb.go b/pkg/apis/application/v1alpha1/generated.pb.go index 4410d283aae43..c88edddb8d89a 100644 --- a/pkg/apis/application/v1alpha1/generated.pb.go +++ b/pkg/apis/application/v1alpha1/generated.pb.go @@ -654,66 +654,10 @@ func (m *ApplicationSetSyncPolicy) XXX_DiscardUnknown() { var xxx_messageInfo_ApplicationSetSyncPolicy proto.InternalMessageInfo -func (m *ApplicationSetTemplate) Reset() { *m = ApplicationSetTemplate{} } -func (*ApplicationSetTemplate) ProtoMessage() {} -func (*ApplicationSetTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{22} -} -func (m *ApplicationSetTemplate) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ApplicationSetTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ApplicationSetTemplate) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplicationSetTemplate.Merge(m, src) -} -func (m *ApplicationSetTemplate) XXX_Size() int { - return m.Size() -} -func (m *ApplicationSetTemplate) XXX_DiscardUnknown() { - xxx_messageInfo_ApplicationSetTemplate.DiscardUnknown(m) -} - -var xxx_messageInfo_ApplicationSetTemplate proto.InternalMessageInfo - -func (m *ApplicationSetTemplateMeta) Reset() { *m = ApplicationSetTemplateMeta{} } -func (*ApplicationSetTemplateMeta) ProtoMessage() {} -func (*ApplicationSetTemplateMeta) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{23} -} -func (m *ApplicationSetTemplateMeta) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ApplicationSetTemplateMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ApplicationSetTemplateMeta) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplicationSetTemplateMeta.Merge(m, src) -} -func (m *ApplicationSetTemplateMeta) XXX_Size() int { - return m.Size() -} -func (m *ApplicationSetTemplateMeta) XXX_DiscardUnknown() { - xxx_messageInfo_ApplicationSetTemplateMeta.DiscardUnknown(m) -} - -var xxx_messageInfo_ApplicationSetTemplateMeta proto.InternalMessageInfo - func (m *ApplicationSetTerminalGenerator) Reset() { *m = ApplicationSetTerminalGenerator{} } func (*ApplicationSetTerminalGenerator) ProtoMessage() {} func (*ApplicationSetTerminalGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{24} + return fileDescriptor_030104ce3b95bcac, []int{22} } func (m *ApplicationSetTerminalGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -741,7 +685,7 @@ var xxx_messageInfo_ApplicationSetTerminalGenerator proto.InternalMessageInfo func (m *ApplicationSource) Reset() { *m = ApplicationSource{} } func (*ApplicationSource) ProtoMessage() {} func (*ApplicationSource) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{25} + return fileDescriptor_030104ce3b95bcac, []int{23} } func (m *ApplicationSource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -769,7 +713,7 @@ var xxx_messageInfo_ApplicationSource proto.InternalMessageInfo func (m *ApplicationSourceDirectory) Reset() { *m = ApplicationSourceDirectory{} } func (*ApplicationSourceDirectory) ProtoMessage() {} func (*ApplicationSourceDirectory) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{26} + return fileDescriptor_030104ce3b95bcac, []int{24} } func (m *ApplicationSourceDirectory) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -797,7 +741,7 @@ var xxx_messageInfo_ApplicationSourceDirectory proto.InternalMessageInfo func (m *ApplicationSourceHelm) Reset() { *m = ApplicationSourceHelm{} } func (*ApplicationSourceHelm) ProtoMessage() {} func (*ApplicationSourceHelm) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{27} + return fileDescriptor_030104ce3b95bcac, []int{25} } func (m *ApplicationSourceHelm) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -825,7 +769,7 @@ var xxx_messageInfo_ApplicationSourceHelm proto.InternalMessageInfo func (m *ApplicationSourceJsonnet) Reset() { *m = ApplicationSourceJsonnet{} } func (*ApplicationSourceJsonnet) ProtoMessage() {} func (*ApplicationSourceJsonnet) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{28} + return fileDescriptor_030104ce3b95bcac, []int{26} } func (m *ApplicationSourceJsonnet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -853,7 +797,7 @@ var xxx_messageInfo_ApplicationSourceJsonnet proto.InternalMessageInfo func (m *ApplicationSourceKustomize) Reset() { *m = ApplicationSourceKustomize{} } func (*ApplicationSourceKustomize) ProtoMessage() {} func (*ApplicationSourceKustomize) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{29} + return fileDescriptor_030104ce3b95bcac, []int{27} } func (m *ApplicationSourceKustomize) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -881,7 +825,7 @@ var xxx_messageInfo_ApplicationSourceKustomize proto.InternalMessageInfo func (m *ApplicationSourcePlugin) Reset() { *m = ApplicationSourcePlugin{} } func (*ApplicationSourcePlugin) ProtoMessage() {} func (*ApplicationSourcePlugin) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{30} + return fileDescriptor_030104ce3b95bcac, []int{28} } func (m *ApplicationSourcePlugin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -909,7 +853,7 @@ var xxx_messageInfo_ApplicationSourcePlugin proto.InternalMessageInfo func (m *ApplicationSourcePluginParameter) Reset() { *m = ApplicationSourcePluginParameter{} } func (*ApplicationSourcePluginParameter) ProtoMessage() {} func (*ApplicationSourcePluginParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{31} + return fileDescriptor_030104ce3b95bcac, []int{29} } func (m *ApplicationSourcePluginParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -937,7 +881,7 @@ var xxx_messageInfo_ApplicationSourcePluginParameter proto.InternalMessageInfo func (m *ApplicationSpec) Reset() { *m = ApplicationSpec{} } func (*ApplicationSpec) ProtoMessage() {} func (*ApplicationSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{32} + return fileDescriptor_030104ce3b95bcac, []int{30} } func (m *ApplicationSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -965,7 +909,7 @@ var xxx_messageInfo_ApplicationSpec proto.InternalMessageInfo func (m *ApplicationStatus) Reset() { *m = ApplicationStatus{} } func (*ApplicationStatus) ProtoMessage() {} func (*ApplicationStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{33} + return fileDescriptor_030104ce3b95bcac, []int{31} } func (m *ApplicationStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -993,7 +937,7 @@ var xxx_messageInfo_ApplicationStatus proto.InternalMessageInfo func (m *ApplicationSummary) Reset() { *m = ApplicationSummary{} } func (*ApplicationSummary) ProtoMessage() {} func (*ApplicationSummary) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{34} + return fileDescriptor_030104ce3b95bcac, []int{32} } func (m *ApplicationSummary) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1021,7 +965,7 @@ var xxx_messageInfo_ApplicationSummary proto.InternalMessageInfo func (m *ApplicationTree) Reset() { *m = ApplicationTree{} } func (*ApplicationTree) ProtoMessage() {} func (*ApplicationTree) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{35} + return fileDescriptor_030104ce3b95bcac, []int{33} } func (m *ApplicationTree) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1049,7 +993,7 @@ var xxx_messageInfo_ApplicationTree proto.InternalMessageInfo func (m *ApplicationWatchEvent) Reset() { *m = ApplicationWatchEvent{} } func (*ApplicationWatchEvent) ProtoMessage() {} func (*ApplicationWatchEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{36} + return fileDescriptor_030104ce3b95bcac, []int{34} } func (m *ApplicationWatchEvent) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1077,7 +1021,7 @@ var xxx_messageInfo_ApplicationWatchEvent proto.InternalMessageInfo func (m *Backoff) Reset() { *m = Backoff{} } func (*Backoff) ProtoMessage() {} func (*Backoff) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{37} + return fileDescriptor_030104ce3b95bcac, []int{35} } func (m *Backoff) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1105,7 +1049,7 @@ var xxx_messageInfo_Backoff proto.InternalMessageInfo func (m *BasicAuthBitbucketServer) Reset() { *m = BasicAuthBitbucketServer{} } func (*BasicAuthBitbucketServer) ProtoMessage() {} func (*BasicAuthBitbucketServer) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{38} + return fileDescriptor_030104ce3b95bcac, []int{36} } func (m *BasicAuthBitbucketServer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1133,7 +1077,7 @@ var xxx_messageInfo_BasicAuthBitbucketServer proto.InternalMessageInfo func (m *Cluster) Reset() { *m = Cluster{} } func (*Cluster) ProtoMessage() {} func (*Cluster) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{39} + return fileDescriptor_030104ce3b95bcac, []int{37} } func (m *Cluster) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1161,7 +1105,7 @@ var xxx_messageInfo_Cluster proto.InternalMessageInfo func (m *ClusterCacheInfo) Reset() { *m = ClusterCacheInfo{} } func (*ClusterCacheInfo) ProtoMessage() {} func (*ClusterCacheInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{40} + return fileDescriptor_030104ce3b95bcac, []int{38} } func (m *ClusterCacheInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1189,7 +1133,7 @@ var xxx_messageInfo_ClusterCacheInfo proto.InternalMessageInfo func (m *ClusterConfig) Reset() { *m = ClusterConfig{} } func (*ClusterConfig) ProtoMessage() {} func (*ClusterConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{41} + return fileDescriptor_030104ce3b95bcac, []int{39} } func (m *ClusterConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1217,7 +1161,7 @@ var xxx_messageInfo_ClusterConfig proto.InternalMessageInfo func (m *ClusterGenerator) Reset() { *m = ClusterGenerator{} } func (*ClusterGenerator) ProtoMessage() {} func (*ClusterGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{42} + return fileDescriptor_030104ce3b95bcac, []int{40} } func (m *ClusterGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1245,7 +1189,7 @@ var xxx_messageInfo_ClusterGenerator proto.InternalMessageInfo func (m *ClusterInfo) Reset() { *m = ClusterInfo{} } func (*ClusterInfo) ProtoMessage() {} func (*ClusterInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{43} + return fileDescriptor_030104ce3b95bcac, []int{41} } func (m *ClusterInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1273,7 +1217,7 @@ var xxx_messageInfo_ClusterInfo proto.InternalMessageInfo func (m *ClusterList) Reset() { *m = ClusterList{} } func (*ClusterList) ProtoMessage() {} func (*ClusterList) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{44} + return fileDescriptor_030104ce3b95bcac, []int{42} } func (m *ClusterList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1301,7 +1245,7 @@ var xxx_messageInfo_ClusterList proto.InternalMessageInfo func (m *Command) Reset() { *m = Command{} } func (*Command) ProtoMessage() {} func (*Command) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{45} + return fileDescriptor_030104ce3b95bcac, []int{43} } func (m *Command) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1329,7 +1273,7 @@ var xxx_messageInfo_Command proto.InternalMessageInfo func (m *ComparedTo) Reset() { *m = ComparedTo{} } func (*ComparedTo) ProtoMessage() {} func (*ComparedTo) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{46} + return fileDescriptor_030104ce3b95bcac, []int{44} } func (m *ComparedTo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1357,7 +1301,7 @@ var xxx_messageInfo_ComparedTo proto.InternalMessageInfo func (m *ComponentParameter) Reset() { *m = ComponentParameter{} } func (*ComponentParameter) ProtoMessage() {} func (*ComponentParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{47} + return fileDescriptor_030104ce3b95bcac, []int{45} } func (m *ComponentParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1385,7 +1329,7 @@ var xxx_messageInfo_ComponentParameter proto.InternalMessageInfo func (m *ConfigManagementPlugin) Reset() { *m = ConfigManagementPlugin{} } func (*ConfigManagementPlugin) ProtoMessage() {} func (*ConfigManagementPlugin) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{48} + return fileDescriptor_030104ce3b95bcac, []int{46} } func (m *ConfigManagementPlugin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1413,7 +1357,7 @@ var xxx_messageInfo_ConfigManagementPlugin proto.InternalMessageInfo func (m *ConnectionState) Reset() { *m = ConnectionState{} } func (*ConnectionState) ProtoMessage() {} func (*ConnectionState) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{49} + return fileDescriptor_030104ce3b95bcac, []int{47} } func (m *ConnectionState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1441,7 +1385,7 @@ var xxx_messageInfo_ConnectionState proto.InternalMessageInfo func (m *DuckTypeGenerator) Reset() { *m = DuckTypeGenerator{} } func (*DuckTypeGenerator) ProtoMessage() {} func (*DuckTypeGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{50} + return fileDescriptor_030104ce3b95bcac, []int{48} } func (m *DuckTypeGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1469,7 +1413,7 @@ var xxx_messageInfo_DuckTypeGenerator proto.InternalMessageInfo func (m *EnvEntry) Reset() { *m = EnvEntry{} } func (*EnvEntry) ProtoMessage() {} func (*EnvEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{51} + return fileDescriptor_030104ce3b95bcac, []int{49} } func (m *EnvEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1497,7 +1441,7 @@ var xxx_messageInfo_EnvEntry proto.InternalMessageInfo func (m *ExecProviderConfig) Reset() { *m = ExecProviderConfig{} } func (*ExecProviderConfig) ProtoMessage() {} func (*ExecProviderConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{52} + return fileDescriptor_030104ce3b95bcac, []int{50} } func (m *ExecProviderConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1525,7 +1469,7 @@ var xxx_messageInfo_ExecProviderConfig proto.InternalMessageInfo func (m *GitDirectoryGeneratorItem) Reset() { *m = GitDirectoryGeneratorItem{} } func (*GitDirectoryGeneratorItem) ProtoMessage() {} func (*GitDirectoryGeneratorItem) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{53} + return fileDescriptor_030104ce3b95bcac, []int{51} } func (m *GitDirectoryGeneratorItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1553,7 +1497,7 @@ var xxx_messageInfo_GitDirectoryGeneratorItem proto.InternalMessageInfo func (m *GitFileGeneratorItem) Reset() { *m = GitFileGeneratorItem{} } func (*GitFileGeneratorItem) ProtoMessage() {} func (*GitFileGeneratorItem) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{54} + return fileDescriptor_030104ce3b95bcac, []int{52} } func (m *GitFileGeneratorItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1581,7 +1525,7 @@ var xxx_messageInfo_GitFileGeneratorItem proto.InternalMessageInfo func (m *GitGenerator) Reset() { *m = GitGenerator{} } func (*GitGenerator) ProtoMessage() {} func (*GitGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{55} + return fileDescriptor_030104ce3b95bcac, []int{53} } func (m *GitGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1609,7 +1553,7 @@ var xxx_messageInfo_GitGenerator proto.InternalMessageInfo func (m *GnuPGPublicKey) Reset() { *m = GnuPGPublicKey{} } func (*GnuPGPublicKey) ProtoMessage() {} func (*GnuPGPublicKey) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{56} + return fileDescriptor_030104ce3b95bcac, []int{54} } func (m *GnuPGPublicKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1637,7 +1581,7 @@ var xxx_messageInfo_GnuPGPublicKey proto.InternalMessageInfo func (m *GnuPGPublicKeyList) Reset() { *m = GnuPGPublicKeyList{} } func (*GnuPGPublicKeyList) ProtoMessage() {} func (*GnuPGPublicKeyList) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{57} + return fileDescriptor_030104ce3b95bcac, []int{55} } func (m *GnuPGPublicKeyList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1665,7 +1609,7 @@ var xxx_messageInfo_GnuPGPublicKeyList proto.InternalMessageInfo func (m *HealthStatus) Reset() { *m = HealthStatus{} } func (*HealthStatus) ProtoMessage() {} func (*HealthStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{58} + return fileDescriptor_030104ce3b95bcac, []int{56} } func (m *HealthStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1693,7 +1637,7 @@ var xxx_messageInfo_HealthStatus proto.InternalMessageInfo func (m *HelmFileParameter) Reset() { *m = HelmFileParameter{} } func (*HelmFileParameter) ProtoMessage() {} func (*HelmFileParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{59} + return fileDescriptor_030104ce3b95bcac, []int{57} } func (m *HelmFileParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1721,7 +1665,7 @@ var xxx_messageInfo_HelmFileParameter proto.InternalMessageInfo func (m *HelmOptions) Reset() { *m = HelmOptions{} } func (*HelmOptions) ProtoMessage() {} func (*HelmOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{60} + return fileDescriptor_030104ce3b95bcac, []int{58} } func (m *HelmOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1749,7 +1693,7 @@ var xxx_messageInfo_HelmOptions proto.InternalMessageInfo func (m *HelmParameter) Reset() { *m = HelmParameter{} } func (*HelmParameter) ProtoMessage() {} func (*HelmParameter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{61} + return fileDescriptor_030104ce3b95bcac, []int{59} } func (m *HelmParameter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1777,7 +1721,7 @@ var xxx_messageInfo_HelmParameter proto.InternalMessageInfo func (m *HostInfo) Reset() { *m = HostInfo{} } func (*HostInfo) ProtoMessage() {} func (*HostInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{62} + return fileDescriptor_030104ce3b95bcac, []int{60} } func (m *HostInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1805,7 +1749,7 @@ var xxx_messageInfo_HostInfo proto.InternalMessageInfo func (m *HostResourceInfo) Reset() { *m = HostResourceInfo{} } func (*HostResourceInfo) ProtoMessage() {} func (*HostResourceInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{63} + return fileDescriptor_030104ce3b95bcac, []int{61} } func (m *HostResourceInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1833,7 +1777,7 @@ var xxx_messageInfo_HostResourceInfo proto.InternalMessageInfo func (m *Info) Reset() { *m = Info{} } func (*Info) ProtoMessage() {} func (*Info) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{64} + return fileDescriptor_030104ce3b95bcac, []int{62} } func (m *Info) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1861,7 +1805,7 @@ var xxx_messageInfo_Info proto.InternalMessageInfo func (m *InfoItem) Reset() { *m = InfoItem{} } func (*InfoItem) ProtoMessage() {} func (*InfoItem) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{65} + return fileDescriptor_030104ce3b95bcac, []int{63} } func (m *InfoItem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1889,7 +1833,7 @@ var xxx_messageInfo_InfoItem proto.InternalMessageInfo func (m *JWTToken) Reset() { *m = JWTToken{} } func (*JWTToken) ProtoMessage() {} func (*JWTToken) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{66} + return fileDescriptor_030104ce3b95bcac, []int{64} } func (m *JWTToken) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1917,7 +1861,7 @@ var xxx_messageInfo_JWTToken proto.InternalMessageInfo func (m *JWTTokens) Reset() { *m = JWTTokens{} } func (*JWTTokens) ProtoMessage() {} func (*JWTTokens) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{67} + return fileDescriptor_030104ce3b95bcac, []int{65} } func (m *JWTTokens) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1945,7 +1889,7 @@ var xxx_messageInfo_JWTTokens proto.InternalMessageInfo func (m *JsonnetVar) Reset() { *m = JsonnetVar{} } func (*JsonnetVar) ProtoMessage() {} func (*JsonnetVar) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{68} + return fileDescriptor_030104ce3b95bcac, []int{66} } func (m *JsonnetVar) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1973,7 +1917,7 @@ var xxx_messageInfo_JsonnetVar proto.InternalMessageInfo func (m *KnownTypeField) Reset() { *m = KnownTypeField{} } func (*KnownTypeField) ProtoMessage() {} func (*KnownTypeField) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{69} + return fileDescriptor_030104ce3b95bcac, []int{67} } func (m *KnownTypeField) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2001,7 +1945,7 @@ var xxx_messageInfo_KnownTypeField proto.InternalMessageInfo func (m *KustomizeOptions) Reset() { *m = KustomizeOptions{} } func (*KustomizeOptions) ProtoMessage() {} func (*KustomizeOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{70} + return fileDescriptor_030104ce3b95bcac, []int{68} } func (m *KustomizeOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2029,7 +1973,7 @@ var xxx_messageInfo_KustomizeOptions proto.InternalMessageInfo func (m *ListGenerator) Reset() { *m = ListGenerator{} } func (*ListGenerator) ProtoMessage() {} func (*ListGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{71} + return fileDescriptor_030104ce3b95bcac, []int{69} } func (m *ListGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2057,7 +2001,7 @@ var xxx_messageInfo_ListGenerator proto.InternalMessageInfo func (m *ManagedNamespaceMetadata) Reset() { *m = ManagedNamespaceMetadata{} } func (*ManagedNamespaceMetadata) ProtoMessage() {} func (*ManagedNamespaceMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{72} + return fileDescriptor_030104ce3b95bcac, []int{70} } func (m *ManagedNamespaceMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2085,7 +2029,7 @@ var xxx_messageInfo_ManagedNamespaceMetadata proto.InternalMessageInfo func (m *MatrixGenerator) Reset() { *m = MatrixGenerator{} } func (*MatrixGenerator) ProtoMessage() {} func (*MatrixGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{73} + return fileDescriptor_030104ce3b95bcac, []int{71} } func (m *MatrixGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2113,7 +2057,7 @@ var xxx_messageInfo_MatrixGenerator proto.InternalMessageInfo func (m *MergeGenerator) Reset() { *m = MergeGenerator{} } func (*MergeGenerator) ProtoMessage() {} func (*MergeGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{74} + return fileDescriptor_030104ce3b95bcac, []int{72} } func (m *MergeGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2141,7 +2085,7 @@ var xxx_messageInfo_MergeGenerator proto.InternalMessageInfo func (m *NestedMatrixGenerator) Reset() { *m = NestedMatrixGenerator{} } func (*NestedMatrixGenerator) ProtoMessage() {} func (*NestedMatrixGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{75} + return fileDescriptor_030104ce3b95bcac, []int{73} } func (m *NestedMatrixGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2169,7 +2113,7 @@ var xxx_messageInfo_NestedMatrixGenerator proto.InternalMessageInfo func (m *NestedMergeGenerator) Reset() { *m = NestedMergeGenerator{} } func (*NestedMergeGenerator) ProtoMessage() {} func (*NestedMergeGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{76} + return fileDescriptor_030104ce3b95bcac, []int{74} } func (m *NestedMergeGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2197,7 +2141,7 @@ var xxx_messageInfo_NestedMergeGenerator proto.InternalMessageInfo func (m *Operation) Reset() { *m = Operation{} } func (*Operation) ProtoMessage() {} func (*Operation) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{77} + return fileDescriptor_030104ce3b95bcac, []int{75} } func (m *Operation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2225,7 +2169,7 @@ var xxx_messageInfo_Operation proto.InternalMessageInfo func (m *OperationInitiator) Reset() { *m = OperationInitiator{} } func (*OperationInitiator) ProtoMessage() {} func (*OperationInitiator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{78} + return fileDescriptor_030104ce3b95bcac, []int{76} } func (m *OperationInitiator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2253,7 +2197,7 @@ var xxx_messageInfo_OperationInitiator proto.InternalMessageInfo func (m *OperationState) Reset() { *m = OperationState{} } func (*OperationState) ProtoMessage() {} func (*OperationState) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{79} + return fileDescriptor_030104ce3b95bcac, []int{77} } func (m *OperationState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2281,7 +2225,7 @@ var xxx_messageInfo_OperationState proto.InternalMessageInfo func (m *OrphanedResourceKey) Reset() { *m = OrphanedResourceKey{} } func (*OrphanedResourceKey) ProtoMessage() {} func (*OrphanedResourceKey) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{80} + return fileDescriptor_030104ce3b95bcac, []int{78} } func (m *OrphanedResourceKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2309,7 +2253,7 @@ var xxx_messageInfo_OrphanedResourceKey proto.InternalMessageInfo func (m *OrphanedResourcesMonitorSettings) Reset() { *m = OrphanedResourcesMonitorSettings{} } func (*OrphanedResourcesMonitorSettings) ProtoMessage() {} func (*OrphanedResourcesMonitorSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{81} + return fileDescriptor_030104ce3b95bcac, []int{79} } func (m *OrphanedResourcesMonitorSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2337,7 +2281,7 @@ var xxx_messageInfo_OrphanedResourcesMonitorSettings proto.InternalMessageInfo func (m *OverrideIgnoreDiff) Reset() { *m = OverrideIgnoreDiff{} } func (*OverrideIgnoreDiff) ProtoMessage() {} func (*OverrideIgnoreDiff) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{82} + return fileDescriptor_030104ce3b95bcac, []int{80} } func (m *OverrideIgnoreDiff) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2365,7 +2309,7 @@ var xxx_messageInfo_OverrideIgnoreDiff proto.InternalMessageInfo func (m *ProjectRole) Reset() { *m = ProjectRole{} } func (*ProjectRole) ProtoMessage() {} func (*ProjectRole) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{83} + return fileDescriptor_030104ce3b95bcac, []int{81} } func (m *ProjectRole) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2393,7 +2337,7 @@ var xxx_messageInfo_ProjectRole proto.InternalMessageInfo func (m *PullRequestGenerator) Reset() { *m = PullRequestGenerator{} } func (*PullRequestGenerator) ProtoMessage() {} func (*PullRequestGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{84} + return fileDescriptor_030104ce3b95bcac, []int{82} } func (m *PullRequestGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2421,7 +2365,7 @@ var xxx_messageInfo_PullRequestGenerator proto.InternalMessageInfo func (m *PullRequestGeneratorBitbucketServer) Reset() { *m = PullRequestGeneratorBitbucketServer{} } func (*PullRequestGeneratorBitbucketServer) ProtoMessage() {} func (*PullRequestGeneratorBitbucketServer) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{85} + return fileDescriptor_030104ce3b95bcac, []int{83} } func (m *PullRequestGeneratorBitbucketServer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2449,7 +2393,7 @@ var xxx_messageInfo_PullRequestGeneratorBitbucketServer proto.InternalMessageInf func (m *PullRequestGeneratorFilter) Reset() { *m = PullRequestGeneratorFilter{} } func (*PullRequestGeneratorFilter) ProtoMessage() {} func (*PullRequestGeneratorFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{86} + return fileDescriptor_030104ce3b95bcac, []int{84} } func (m *PullRequestGeneratorFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2477,7 +2421,7 @@ var xxx_messageInfo_PullRequestGeneratorFilter proto.InternalMessageInfo func (m *PullRequestGeneratorGitLab) Reset() { *m = PullRequestGeneratorGitLab{} } func (*PullRequestGeneratorGitLab) ProtoMessage() {} func (*PullRequestGeneratorGitLab) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{87} + return fileDescriptor_030104ce3b95bcac, []int{85} } func (m *PullRequestGeneratorGitLab) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2505,7 +2449,7 @@ var xxx_messageInfo_PullRequestGeneratorGitLab proto.InternalMessageInfo func (m *PullRequestGeneratorGitea) Reset() { *m = PullRequestGeneratorGitea{} } func (*PullRequestGeneratorGitea) ProtoMessage() {} func (*PullRequestGeneratorGitea) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{88} + return fileDescriptor_030104ce3b95bcac, []int{86} } func (m *PullRequestGeneratorGitea) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2533,7 +2477,7 @@ var xxx_messageInfo_PullRequestGeneratorGitea proto.InternalMessageInfo func (m *PullRequestGeneratorGithub) Reset() { *m = PullRequestGeneratorGithub{} } func (*PullRequestGeneratorGithub) ProtoMessage() {} func (*PullRequestGeneratorGithub) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{89} + return fileDescriptor_030104ce3b95bcac, []int{87} } func (m *PullRequestGeneratorGithub) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2561,7 +2505,7 @@ var xxx_messageInfo_PullRequestGeneratorGithub proto.InternalMessageInfo func (m *RefTarget) Reset() { *m = RefTarget{} } func (*RefTarget) ProtoMessage() {} func (*RefTarget) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{90} + return fileDescriptor_030104ce3b95bcac, []int{88} } func (m *RefTarget) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2589,7 +2533,7 @@ var xxx_messageInfo_RefTarget proto.InternalMessageInfo func (m *RepoCreds) Reset() { *m = RepoCreds{} } func (*RepoCreds) ProtoMessage() {} func (*RepoCreds) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{91} + return fileDescriptor_030104ce3b95bcac, []int{89} } func (m *RepoCreds) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2617,7 +2561,7 @@ var xxx_messageInfo_RepoCreds proto.InternalMessageInfo func (m *RepoCredsList) Reset() { *m = RepoCredsList{} } func (*RepoCredsList) ProtoMessage() {} func (*RepoCredsList) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{92} + return fileDescriptor_030104ce3b95bcac, []int{90} } func (m *RepoCredsList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2645,7 +2589,7 @@ var xxx_messageInfo_RepoCredsList proto.InternalMessageInfo func (m *Repository) Reset() { *m = Repository{} } func (*Repository) ProtoMessage() {} func (*Repository) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{93} + return fileDescriptor_030104ce3b95bcac, []int{91} } func (m *Repository) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2673,7 +2617,7 @@ var xxx_messageInfo_Repository proto.InternalMessageInfo func (m *RepositoryCertificate) Reset() { *m = RepositoryCertificate{} } func (*RepositoryCertificate) ProtoMessage() {} func (*RepositoryCertificate) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{94} + return fileDescriptor_030104ce3b95bcac, []int{92} } func (m *RepositoryCertificate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2701,7 +2645,7 @@ var xxx_messageInfo_RepositoryCertificate proto.InternalMessageInfo func (m *RepositoryCertificateList) Reset() { *m = RepositoryCertificateList{} } func (*RepositoryCertificateList) ProtoMessage() {} func (*RepositoryCertificateList) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{95} + return fileDescriptor_030104ce3b95bcac, []int{93} } func (m *RepositoryCertificateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2729,7 +2673,7 @@ var xxx_messageInfo_RepositoryCertificateList proto.InternalMessageInfo func (m *RepositoryList) Reset() { *m = RepositoryList{} } func (*RepositoryList) ProtoMessage() {} func (*RepositoryList) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{96} + return fileDescriptor_030104ce3b95bcac, []int{94} } func (m *RepositoryList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2757,7 +2701,7 @@ var xxx_messageInfo_RepositoryList proto.InternalMessageInfo func (m *ResourceAction) Reset() { *m = ResourceAction{} } func (*ResourceAction) ProtoMessage() {} func (*ResourceAction) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{97} + return fileDescriptor_030104ce3b95bcac, []int{95} } func (m *ResourceAction) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2785,7 +2729,7 @@ var xxx_messageInfo_ResourceAction proto.InternalMessageInfo func (m *ResourceActionDefinition) Reset() { *m = ResourceActionDefinition{} } func (*ResourceActionDefinition) ProtoMessage() {} func (*ResourceActionDefinition) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{98} + return fileDescriptor_030104ce3b95bcac, []int{96} } func (m *ResourceActionDefinition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2813,7 +2757,7 @@ var xxx_messageInfo_ResourceActionDefinition proto.InternalMessageInfo func (m *ResourceActionParam) Reset() { *m = ResourceActionParam{} } func (*ResourceActionParam) ProtoMessage() {} func (*ResourceActionParam) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{99} + return fileDescriptor_030104ce3b95bcac, []int{97} } func (m *ResourceActionParam) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2841,7 +2785,7 @@ var xxx_messageInfo_ResourceActionParam proto.InternalMessageInfo func (m *ResourceActions) Reset() { *m = ResourceActions{} } func (*ResourceActions) ProtoMessage() {} func (*ResourceActions) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{100} + return fileDescriptor_030104ce3b95bcac, []int{98} } func (m *ResourceActions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2869,7 +2813,7 @@ var xxx_messageInfo_ResourceActions proto.InternalMessageInfo func (m *ResourceDiff) Reset() { *m = ResourceDiff{} } func (*ResourceDiff) ProtoMessage() {} func (*ResourceDiff) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{101} + return fileDescriptor_030104ce3b95bcac, []int{99} } func (m *ResourceDiff) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2897,7 +2841,7 @@ var xxx_messageInfo_ResourceDiff proto.InternalMessageInfo func (m *ResourceIgnoreDifferences) Reset() { *m = ResourceIgnoreDifferences{} } func (*ResourceIgnoreDifferences) ProtoMessage() {} func (*ResourceIgnoreDifferences) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{102} + return fileDescriptor_030104ce3b95bcac, []int{100} } func (m *ResourceIgnoreDifferences) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2925,7 +2869,7 @@ var xxx_messageInfo_ResourceIgnoreDifferences proto.InternalMessageInfo func (m *ResourceNetworkingInfo) Reset() { *m = ResourceNetworkingInfo{} } func (*ResourceNetworkingInfo) ProtoMessage() {} func (*ResourceNetworkingInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{103} + return fileDescriptor_030104ce3b95bcac, []int{101} } func (m *ResourceNetworkingInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2953,7 +2897,7 @@ var xxx_messageInfo_ResourceNetworkingInfo proto.InternalMessageInfo func (m *ResourceNode) Reset() { *m = ResourceNode{} } func (*ResourceNode) ProtoMessage() {} func (*ResourceNode) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{104} + return fileDescriptor_030104ce3b95bcac, []int{102} } func (m *ResourceNode) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2981,7 +2925,7 @@ var xxx_messageInfo_ResourceNode proto.InternalMessageInfo func (m *ResourceOverride) Reset() { *m = ResourceOverride{} } func (*ResourceOverride) ProtoMessage() {} func (*ResourceOverride) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{105} + return fileDescriptor_030104ce3b95bcac, []int{103} } func (m *ResourceOverride) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3009,7 +2953,7 @@ var xxx_messageInfo_ResourceOverride proto.InternalMessageInfo func (m *ResourceRef) Reset() { *m = ResourceRef{} } func (*ResourceRef) ProtoMessage() {} func (*ResourceRef) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{106} + return fileDescriptor_030104ce3b95bcac, []int{104} } func (m *ResourceRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3037,7 +2981,7 @@ var xxx_messageInfo_ResourceRef proto.InternalMessageInfo func (m *ResourceResult) Reset() { *m = ResourceResult{} } func (*ResourceResult) ProtoMessage() {} func (*ResourceResult) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{107} + return fileDescriptor_030104ce3b95bcac, []int{105} } func (m *ResourceResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3065,7 +3009,7 @@ var xxx_messageInfo_ResourceResult proto.InternalMessageInfo func (m *ResourceStatus) Reset() { *m = ResourceStatus{} } func (*ResourceStatus) ProtoMessage() {} func (*ResourceStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{108} + return fileDescriptor_030104ce3b95bcac, []int{106} } func (m *ResourceStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3093,7 +3037,7 @@ var xxx_messageInfo_ResourceStatus proto.InternalMessageInfo func (m *RetryStrategy) Reset() { *m = RetryStrategy{} } func (*RetryStrategy) ProtoMessage() {} func (*RetryStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{109} + return fileDescriptor_030104ce3b95bcac, []int{107} } func (m *RetryStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3121,7 +3065,7 @@ var xxx_messageInfo_RetryStrategy proto.InternalMessageInfo func (m *RevisionHistory) Reset() { *m = RevisionHistory{} } func (*RevisionHistory) ProtoMessage() {} func (*RevisionHistory) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{110} + return fileDescriptor_030104ce3b95bcac, []int{108} } func (m *RevisionHistory) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3149,7 +3093,7 @@ var xxx_messageInfo_RevisionHistory proto.InternalMessageInfo func (m *RevisionMetadata) Reset() { *m = RevisionMetadata{} } func (*RevisionMetadata) ProtoMessage() {} func (*RevisionMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{111} + return fileDescriptor_030104ce3b95bcac, []int{109} } func (m *RevisionMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3177,7 +3121,7 @@ var xxx_messageInfo_RevisionMetadata proto.InternalMessageInfo func (m *SCMProviderGenerator) Reset() { *m = SCMProviderGenerator{} } func (*SCMProviderGenerator) ProtoMessage() {} func (*SCMProviderGenerator) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{112} + return fileDescriptor_030104ce3b95bcac, []int{110} } func (m *SCMProviderGenerator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3205,7 +3149,7 @@ var xxx_messageInfo_SCMProviderGenerator proto.InternalMessageInfo func (m *SCMProviderGeneratorAzureDevOps) Reset() { *m = SCMProviderGeneratorAzureDevOps{} } func (*SCMProviderGeneratorAzureDevOps) ProtoMessage() {} func (*SCMProviderGeneratorAzureDevOps) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{113} + return fileDescriptor_030104ce3b95bcac, []int{111} } func (m *SCMProviderGeneratorAzureDevOps) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3233,7 +3177,7 @@ var xxx_messageInfo_SCMProviderGeneratorAzureDevOps proto.InternalMessageInfo func (m *SCMProviderGeneratorBitbucket) Reset() { *m = SCMProviderGeneratorBitbucket{} } func (*SCMProviderGeneratorBitbucket) ProtoMessage() {} func (*SCMProviderGeneratorBitbucket) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{114} + return fileDescriptor_030104ce3b95bcac, []int{112} } func (m *SCMProviderGeneratorBitbucket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3261,7 +3205,7 @@ var xxx_messageInfo_SCMProviderGeneratorBitbucket proto.InternalMessageInfo func (m *SCMProviderGeneratorBitbucketServer) Reset() { *m = SCMProviderGeneratorBitbucketServer{} } func (*SCMProviderGeneratorBitbucketServer) ProtoMessage() {} func (*SCMProviderGeneratorBitbucketServer) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{115} + return fileDescriptor_030104ce3b95bcac, []int{113} } func (m *SCMProviderGeneratorBitbucketServer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3289,7 +3233,7 @@ var xxx_messageInfo_SCMProviderGeneratorBitbucketServer proto.InternalMessageInf func (m *SCMProviderGeneratorFilter) Reset() { *m = SCMProviderGeneratorFilter{} } func (*SCMProviderGeneratorFilter) ProtoMessage() {} func (*SCMProviderGeneratorFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{116} + return fileDescriptor_030104ce3b95bcac, []int{114} } func (m *SCMProviderGeneratorFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3317,7 +3261,7 @@ var xxx_messageInfo_SCMProviderGeneratorFilter proto.InternalMessageInfo func (m *SCMProviderGeneratorGitea) Reset() { *m = SCMProviderGeneratorGitea{} } func (*SCMProviderGeneratorGitea) ProtoMessage() {} func (*SCMProviderGeneratorGitea) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{117} + return fileDescriptor_030104ce3b95bcac, []int{115} } func (m *SCMProviderGeneratorGitea) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3345,7 +3289,7 @@ var xxx_messageInfo_SCMProviderGeneratorGitea proto.InternalMessageInfo func (m *SCMProviderGeneratorGithub) Reset() { *m = SCMProviderGeneratorGithub{} } func (*SCMProviderGeneratorGithub) ProtoMessage() {} func (*SCMProviderGeneratorGithub) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{118} + return fileDescriptor_030104ce3b95bcac, []int{116} } func (m *SCMProviderGeneratorGithub) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3373,7 +3317,7 @@ var xxx_messageInfo_SCMProviderGeneratorGithub proto.InternalMessageInfo func (m *SCMProviderGeneratorGitlab) Reset() { *m = SCMProviderGeneratorGitlab{} } func (*SCMProviderGeneratorGitlab) ProtoMessage() {} func (*SCMProviderGeneratorGitlab) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{119} + return fileDescriptor_030104ce3b95bcac, []int{117} } func (m *SCMProviderGeneratorGitlab) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3401,7 +3345,7 @@ var xxx_messageInfo_SCMProviderGeneratorGitlab proto.InternalMessageInfo func (m *SecretRef) Reset() { *m = SecretRef{} } func (*SecretRef) ProtoMessage() {} func (*SecretRef) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{120} + return fileDescriptor_030104ce3b95bcac, []int{118} } func (m *SecretRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3429,7 +3373,7 @@ var xxx_messageInfo_SecretRef proto.InternalMessageInfo func (m *SignatureKey) Reset() { *m = SignatureKey{} } func (*SignatureKey) ProtoMessage() {} func (*SignatureKey) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{121} + return fileDescriptor_030104ce3b95bcac, []int{119} } func (m *SignatureKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3457,7 +3401,7 @@ var xxx_messageInfo_SignatureKey proto.InternalMessageInfo func (m *SyncOperation) Reset() { *m = SyncOperation{} } func (*SyncOperation) ProtoMessage() {} func (*SyncOperation) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{122} + return fileDescriptor_030104ce3b95bcac, []int{120} } func (m *SyncOperation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3485,7 +3429,7 @@ var xxx_messageInfo_SyncOperation proto.InternalMessageInfo func (m *SyncOperationResource) Reset() { *m = SyncOperationResource{} } func (*SyncOperationResource) ProtoMessage() {} func (*SyncOperationResource) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{123} + return fileDescriptor_030104ce3b95bcac, []int{121} } func (m *SyncOperationResource) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3513,7 +3457,7 @@ var xxx_messageInfo_SyncOperationResource proto.InternalMessageInfo func (m *SyncOperationResult) Reset() { *m = SyncOperationResult{} } func (*SyncOperationResult) ProtoMessage() {} func (*SyncOperationResult) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{124} + return fileDescriptor_030104ce3b95bcac, []int{122} } func (m *SyncOperationResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3541,7 +3485,7 @@ var xxx_messageInfo_SyncOperationResult proto.InternalMessageInfo func (m *SyncPolicy) Reset() { *m = SyncPolicy{} } func (*SyncPolicy) ProtoMessage() {} func (*SyncPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{125} + return fileDescriptor_030104ce3b95bcac, []int{123} } func (m *SyncPolicy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3569,7 +3513,7 @@ var xxx_messageInfo_SyncPolicy proto.InternalMessageInfo func (m *SyncPolicyAutomated) Reset() { *m = SyncPolicyAutomated{} } func (*SyncPolicyAutomated) ProtoMessage() {} func (*SyncPolicyAutomated) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{126} + return fileDescriptor_030104ce3b95bcac, []int{124} } func (m *SyncPolicyAutomated) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3597,7 +3541,7 @@ var xxx_messageInfo_SyncPolicyAutomated proto.InternalMessageInfo func (m *SyncStatus) Reset() { *m = SyncStatus{} } func (*SyncStatus) ProtoMessage() {} func (*SyncStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{127} + return fileDescriptor_030104ce3b95bcac, []int{125} } func (m *SyncStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3625,7 +3569,7 @@ var xxx_messageInfo_SyncStatus proto.InternalMessageInfo func (m *SyncStrategy) Reset() { *m = SyncStrategy{} } func (*SyncStrategy) ProtoMessage() {} func (*SyncStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{128} + return fileDescriptor_030104ce3b95bcac, []int{126} } func (m *SyncStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3653,7 +3597,7 @@ var xxx_messageInfo_SyncStrategy proto.InternalMessageInfo func (m *SyncStrategyApply) Reset() { *m = SyncStrategyApply{} } func (*SyncStrategyApply) ProtoMessage() {} func (*SyncStrategyApply) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{129} + return fileDescriptor_030104ce3b95bcac, []int{127} } func (m *SyncStrategyApply) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3681,7 +3625,7 @@ var xxx_messageInfo_SyncStrategyApply proto.InternalMessageInfo func (m *SyncStrategyHook) Reset() { *m = SyncStrategyHook{} } func (*SyncStrategyHook) ProtoMessage() {} func (*SyncStrategyHook) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{130} + return fileDescriptor_030104ce3b95bcac, []int{128} } func (m *SyncStrategyHook) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3709,7 +3653,7 @@ var xxx_messageInfo_SyncStrategyHook proto.InternalMessageInfo func (m *SyncWindow) Reset() { *m = SyncWindow{} } func (*SyncWindow) ProtoMessage() {} func (*SyncWindow) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{131} + return fileDescriptor_030104ce3b95bcac, []int{129} } func (m *SyncWindow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3737,7 +3681,7 @@ var xxx_messageInfo_SyncWindow proto.InternalMessageInfo func (m *TLSClientConfig) Reset() { *m = TLSClientConfig{} } func (*TLSClientConfig) ProtoMessage() {} func (*TLSClientConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_030104ce3b95bcac, []int{132} + return fileDescriptor_030104ce3b95bcac, []int{130} } func (m *TLSClientConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3786,10 +3730,6 @@ func init() { proto.RegisterType((*ApplicationSetStatus)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSetStatus") proto.RegisterType((*ApplicationSetStrategy)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSetStrategy") proto.RegisterType((*ApplicationSetSyncPolicy)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSetSyncPolicy") - proto.RegisterType((*ApplicationSetTemplate)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSetTemplate") - proto.RegisterType((*ApplicationSetTemplateMeta)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSetTemplateMeta") - proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSetTemplateMeta.AnnotationsEntry") - proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSetTemplateMeta.LabelsEntry") proto.RegisterType((*ApplicationSetTerminalGenerator)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSetTerminalGenerator") proto.RegisterType((*ApplicationSource)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSource") proto.RegisterType((*ApplicationSourceDirectory)(nil), "github.com.argoproj.argo_cd.v2.pkg.apis.application.v1alpha1.ApplicationSourceDirectory") @@ -3918,611 +3858,604 @@ func init() { } var fileDescriptor_030104ce3b95bcac = []byte{ - // 9659 bytes of a gzipped FileDescriptorProto + // 9552 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x24, 0xc7, - 0x75, 0x98, 0x66, 0x17, 0x0b, 0xec, 0x3e, 0x7c, 0xdc, 0xa1, 0xef, 0x8e, 0x04, 0x4f, 0xe4, 0xe1, - 0x6a, 0x58, 0xa6, 0xa9, 0x88, 0x04, 0xc2, 0x13, 0xa5, 0x30, 0xa6, 0x4d, 0x19, 0x0b, 0xdc, 0xe1, - 0x70, 0x07, 0x1c, 0xc0, 0x06, 0xee, 0x4e, 0x22, 0x4d, 0x49, 0x83, 0xd9, 0xde, 0xc5, 0x1c, 0x76, - 0x67, 0x86, 0x33, 0xb3, 0x38, 0x2c, 0x2d, 0xcb, 0x92, 0x2c, 0xd9, 0x4a, 0xf4, 0x41, 0x85, 0xfe, - 0x11, 0xb9, 0x92, 0x38, 0x8a, 0xed, 0x72, 0xc5, 0x95, 0xb0, 0xe2, 0x54, 0x7e, 0xe4, 0xab, 0x52, - 0x15, 0xdb, 0xf9, 0xc1, 0x94, 0x52, 0x15, 0x55, 0xc5, 0x65, 0x39, 0xb1, 0x03, 0x53, 0x97, 0x4a, - 0x25, 0x95, 0xaa, 0x38, 0x95, 0x8f, 0x3f, 0xb9, 0xca, 0x8f, 0x54, 0x7f, 0xf7, 0xcc, 0xee, 0x1e, - 0x76, 0x0f, 0x83, 0xbb, 0x93, 0x8a, 0xff, 0x76, 0xfb, 0xbd, 0x7e, 0xaf, 0xbb, 0xa7, 0xfb, 0xf5, - 0x7b, 0xdd, 0xef, 0xbd, 0x86, 0xd5, 0x86, 0x97, 0xec, 0xb4, 0xb7, 0xe7, 0xdc, 0xa0, 0x35, 0xef, - 0x44, 0x8d, 0x20, 0x8c, 0x82, 0x5b, 0xec, 0xc7, 0xf3, 0x6e, 0x6d, 0x7e, 0xef, 0xc2, 0x7c, 0xb8, - 0xdb, 0x98, 0x77, 0x42, 0x2f, 0x9e, 0x77, 0xc2, 0xb0, 0xe9, 0xb9, 0x4e, 0xe2, 0x05, 0xfe, 0xfc, - 0xde, 0x0b, 0x4e, 0x33, 0xdc, 0x71, 0x5e, 0x98, 0x6f, 0x10, 0x9f, 0x44, 0x4e, 0x42, 0x6a, 0x73, - 0x61, 0x14, 0x24, 0x01, 0xfa, 0x69, 0x4d, 0x6d, 0x4e, 0x52, 0x63, 0x3f, 0x3e, 0xeb, 0xd6, 0xe6, - 0xf6, 0x2e, 0xcc, 0x85, 0xbb, 0x8d, 0x39, 0x4a, 0x6d, 0xce, 0xa0, 0x36, 0x27, 0xa9, 0x9d, 0x7d, - 0xde, 0x68, 0x4b, 0x23, 0x68, 0x04, 0xf3, 0x8c, 0xe8, 0x76, 0xbb, 0xce, 0xfe, 0xb1, 0x3f, 0xec, - 0x17, 0x67, 0x76, 0xd6, 0xde, 0x7d, 0x29, 0x9e, 0xf3, 0x02, 0xda, 0xbc, 0x79, 0x37, 0x88, 0xc8, - 0xfc, 0x5e, 0x57, 0x83, 0xce, 0x5e, 0xd6, 0x38, 0x64, 0x3f, 0x21, 0x7e, 0xec, 0x05, 0x7e, 0xfc, - 0x3c, 0x6d, 0x02, 0x89, 0xf6, 0x48, 0x64, 0x76, 0xcf, 0x40, 0xe8, 0x45, 0xe9, 0x45, 0x4d, 0xa9, - 0xe5, 0xb8, 0x3b, 0x9e, 0x4f, 0xa2, 0x8e, 0xae, 0xde, 0x22, 0x89, 0xd3, 0xab, 0xd6, 0x7c, 0xbf, - 0x5a, 0x51, 0xdb, 0x4f, 0xbc, 0x16, 0xe9, 0xaa, 0xf0, 0x89, 0xc3, 0x2a, 0xc4, 0xee, 0x0e, 0x69, - 0x39, 0x5d, 0xf5, 0x3e, 0xd6, 0xaf, 0x5e, 0x3b, 0xf1, 0x9a, 0xf3, 0x9e, 0x9f, 0xc4, 0x49, 0x94, - 0xad, 0x64, 0xbf, 0x09, 0x93, 0x0b, 0x37, 0x37, 0x17, 0xda, 0xc9, 0xce, 0x62, 0xe0, 0xd7, 0xbd, - 0x06, 0xfa, 0x38, 0x8c, 0xbb, 0xcd, 0x76, 0x9c, 0x90, 0xe8, 0x9a, 0xd3, 0x22, 0x33, 0xd6, 0x79, - 0xeb, 0xd9, 0x4a, 0xf5, 0xd4, 0x7b, 0x07, 0xb3, 0x1f, 0xba, 0x73, 0x30, 0x3b, 0xbe, 0xa8, 0x41, - 0xd8, 0xc4, 0x43, 0x1f, 0x81, 0xb1, 0x28, 0x68, 0x92, 0x05, 0x7c, 0x6d, 0xa6, 0xc0, 0xaa, 0x9c, - 0x10, 0x55, 0xc6, 0x30, 0x2f, 0xc6, 0x12, 0x6e, 0xff, 0x51, 0x01, 0x60, 0x21, 0x0c, 0x37, 0xa2, - 0xe0, 0x16, 0x71, 0x13, 0xf4, 0x39, 0x28, 0xd3, 0xa1, 0xab, 0x39, 0x89, 0xc3, 0xb8, 0x8d, 0x5f, - 0xf8, 0x8b, 0x73, 0xbc, 0x27, 0x73, 0x66, 0x4f, 0xf4, 0xc4, 0xa1, 0xd8, 0x73, 0x7b, 0x2f, 0xcc, - 0xad, 0x6f, 0xd3, 0xfa, 0x6b, 0x24, 0x71, 0xaa, 0x48, 0x30, 0x03, 0x5d, 0x86, 0x15, 0x55, 0xe4, - 0xc3, 0x48, 0x1c, 0x12, 0x97, 0x35, 0x6c, 0xfc, 0xc2, 0xea, 0xdc, 0x51, 0x66, 0xe8, 0x9c, 0x6e, - 0xf9, 0x66, 0x48, 0xdc, 0xea, 0x84, 0xe0, 0x3c, 0x42, 0xff, 0x61, 0xc6, 0x07, 0xed, 0xc1, 0x68, - 0x9c, 0x38, 0x49, 0x3b, 0x9e, 0x29, 0x32, 0x8e, 0xd7, 0x72, 0xe3, 0xc8, 0xa8, 0x56, 0xa7, 0x04, - 0xcf, 0x51, 0xfe, 0x1f, 0x0b, 0x6e, 0xf6, 0x7f, 0xb4, 0x60, 0x4a, 0x23, 0xaf, 0x7a, 0x71, 0x82, - 0x7e, 0xae, 0x6b, 0x70, 0xe7, 0x06, 0x1b, 0x5c, 0x5a, 0x9b, 0x0d, 0xed, 0x49, 0xc1, 0xac, 0x2c, - 0x4b, 0x8c, 0x81, 0x6d, 0x41, 0xc9, 0x4b, 0x48, 0x2b, 0x9e, 0x29, 0x9c, 0x2f, 0x3e, 0x3b, 0x7e, - 0xe1, 0x72, 0x5e, 0xfd, 0xac, 0x4e, 0x0a, 0xa6, 0xa5, 0x15, 0x4a, 0x1e, 0x73, 0x2e, 0xf6, 0xef, - 0x4c, 0x98, 0xfd, 0xa3, 0x03, 0x8e, 0x5e, 0x80, 0xf1, 0x38, 0x68, 0x47, 0x2e, 0xc1, 0x24, 0x0c, - 0xe2, 0x19, 0xeb, 0x7c, 0x91, 0x4e, 0x3d, 0x3a, 0x53, 0x37, 0x75, 0x31, 0x36, 0x71, 0xd0, 0xb7, - 0x2c, 0x98, 0xa8, 0x91, 0x38, 0xf1, 0x7c, 0xc6, 0x5f, 0x36, 0x7e, 0xeb, 0xc8, 0x8d, 0x97, 0x85, - 0x4b, 0x9a, 0x78, 0xf5, 0xb4, 0xe8, 0xc8, 0x84, 0x51, 0x18, 0xe3, 0x14, 0x7f, 0xba, 0xe2, 0x6a, - 0x24, 0x76, 0x23, 0x2f, 0xa4, 0xff, 0xd9, 0x9c, 0x31, 0x56, 0xdc, 0x92, 0x06, 0x61, 0x13, 0x0f, - 0xf9, 0x50, 0xa2, 0x2b, 0x2a, 0x9e, 0x19, 0x61, 0xed, 0x5f, 0x39, 0x5a, 0xfb, 0xc5, 0xa0, 0xd2, - 0xc5, 0xaa, 0x47, 0x9f, 0xfe, 0x8b, 0x31, 0x67, 0x83, 0xbe, 0x69, 0xc1, 0x8c, 0x58, 0xf1, 0x98, - 0xf0, 0x01, 0xbd, 0xb9, 0xe3, 0x25, 0xa4, 0xe9, 0xc5, 0xc9, 0x4c, 0x89, 0xb5, 0x61, 0x7e, 0xb0, - 0xb9, 0xb5, 0x1c, 0x05, 0xed, 0xf0, 0xaa, 0xe7, 0xd7, 0xaa, 0xe7, 0x05, 0xa7, 0x99, 0xc5, 0x3e, - 0x84, 0x71, 0x5f, 0x96, 0xe8, 0x57, 0x2d, 0x38, 0xeb, 0x3b, 0x2d, 0x12, 0x87, 0x0e, 0xfd, 0xb4, - 0x1c, 0x5c, 0x6d, 0x3a, 0xee, 0x2e, 0x6b, 0xd1, 0xe8, 0xfd, 0xb5, 0xc8, 0x16, 0x2d, 0x3a, 0x7b, - 0xad, 0x2f, 0x69, 0x7c, 0x0f, 0xb6, 0xe8, 0x37, 0x2d, 0x98, 0x0e, 0xa2, 0x70, 0xc7, 0xf1, 0x49, - 0x4d, 0x42, 0xe3, 0x99, 0x31, 0xb6, 0xf4, 0x3e, 0x73, 0xb4, 0x4f, 0xb4, 0x9e, 0x25, 0xbb, 0x16, - 0xf8, 0x5e, 0x12, 0x44, 0x9b, 0x24, 0x49, 0x3c, 0xbf, 0x11, 0x57, 0xcf, 0xdc, 0x39, 0x98, 0x9d, - 0xee, 0xc2, 0xc2, 0xdd, 0xed, 0x41, 0x3f, 0x0f, 0xe3, 0x71, 0xc7, 0x77, 0x6f, 0x7a, 0x7e, 0x2d, - 0xb8, 0x1d, 0xcf, 0x94, 0xf3, 0x58, 0xbe, 0x9b, 0x8a, 0xa0, 0x58, 0x80, 0x9a, 0x01, 0x36, 0xb9, - 0xf5, 0xfe, 0x70, 0x7a, 0x2a, 0x55, 0xf2, 0xfe, 0x70, 0x7a, 0x32, 0xdd, 0x83, 0x2d, 0xfa, 0x15, - 0x0b, 0x26, 0x63, 0xaf, 0xe1, 0x3b, 0x49, 0x3b, 0x22, 0x57, 0x49, 0x27, 0x9e, 0x01, 0xd6, 0x90, - 0x2b, 0x47, 0x1c, 0x15, 0x83, 0x64, 0xf5, 0x8c, 0x68, 0xe3, 0xa4, 0x59, 0x1a, 0xe3, 0x34, 0xdf, - 0x5e, 0x0b, 0x4d, 0x4f, 0xeb, 0xf1, 0x7c, 0x17, 0x9a, 0x9e, 0xd4, 0x7d, 0x59, 0xa2, 0x9f, 0x85, - 0x93, 0xbc, 0x48, 0x8d, 0x6c, 0x3c, 0x33, 0xc1, 0x04, 0xed, 0xe9, 0x3b, 0x07, 0xb3, 0x27, 0x37, - 0x33, 0x30, 0xdc, 0x85, 0x8d, 0xde, 0x84, 0xd9, 0x90, 0x44, 0x2d, 0x2f, 0x59, 0xf7, 0x9b, 0x1d, - 0x29, 0xbe, 0xdd, 0x20, 0x24, 0x35, 0xd1, 0x9c, 0x78, 0x66, 0xf2, 0xbc, 0xf5, 0x6c, 0xb9, 0xfa, - 0x93, 0xa2, 0x99, 0xb3, 0x1b, 0xf7, 0x46, 0xc7, 0x87, 0xd1, 0xb3, 0xff, 0x75, 0x01, 0x4e, 0x66, - 0x37, 0x4e, 0xf4, 0xdb, 0x16, 0x9c, 0xb8, 0x75, 0x3b, 0xd9, 0x0a, 0x76, 0x89, 0x1f, 0x57, 0x3b, - 0x54, 0xbc, 0xb1, 0x2d, 0x63, 0xfc, 0x82, 0x9b, 0xef, 0x16, 0x3d, 0x77, 0x25, 0xcd, 0xe5, 0xa2, - 0x9f, 0x44, 0x9d, 0xea, 0xe3, 0xa2, 0x77, 0x27, 0xae, 0xdc, 0xdc, 0x32, 0xa1, 0x38, 0xdb, 0xa8, - 0xb3, 0x5f, 0xb7, 0xe0, 0x74, 0x2f, 0x12, 0xe8, 0x24, 0x14, 0x77, 0x49, 0x87, 0x6b, 0x65, 0x98, - 0xfe, 0x44, 0x6f, 0x40, 0x69, 0xcf, 0x69, 0xb6, 0x89, 0xd0, 0x6e, 0x96, 0x8f, 0xd6, 0x11, 0xd5, - 0x32, 0xcc, 0xa9, 0xfe, 0x54, 0xe1, 0x25, 0xcb, 0xfe, 0xb7, 0x45, 0x18, 0x37, 0xf6, 0xb7, 0x07, - 0xa0, 0xb1, 0x05, 0x29, 0x8d, 0x6d, 0x2d, 0xb7, 0xad, 0xb9, 0xaf, 0xca, 0x76, 0x3b, 0xa3, 0xb2, - 0xad, 0xe7, 0xc7, 0xf2, 0x9e, 0x3a, 0x1b, 0x4a, 0xa0, 0x12, 0x84, 0x54, 0x23, 0xa7, 0x5b, 0xff, - 0x48, 0x1e, 0x9f, 0x70, 0x5d, 0x92, 0xab, 0x4e, 0xde, 0x39, 0x98, 0xad, 0xa8, 0xbf, 0x58, 0x33, - 0xb2, 0x7f, 0x60, 0xc1, 0x69, 0xa3, 0x8d, 0x8b, 0x81, 0x5f, 0xf3, 0xd8, 0xa7, 0x3d, 0x0f, 0x23, - 0x49, 0x27, 0x94, 0x6a, 0xbf, 0x1a, 0xa9, 0xad, 0x4e, 0x48, 0x30, 0x83, 0x50, 0x45, 0xbf, 0x45, - 0xe2, 0xd8, 0x69, 0x90, 0xac, 0xa2, 0xbf, 0xc6, 0x8b, 0xb1, 0x84, 0xa3, 0x08, 0x50, 0xd3, 0x89, - 0x93, 0xad, 0xc8, 0xf1, 0x63, 0x46, 0x7e, 0xcb, 0x6b, 0x11, 0x31, 0xc0, 0x7f, 0x61, 0xb0, 0x19, - 0x43, 0x6b, 0x54, 0x1f, 0xbb, 0x73, 0x30, 0x8b, 0x56, 0xbb, 0x28, 0xe1, 0x1e, 0xd4, 0xed, 0x5f, - 0xb5, 0xe0, 0xb1, 0xde, 0xba, 0x18, 0x7a, 0x06, 0x46, 0xb9, 0xc9, 0x27, 0x7a, 0xa7, 0x3f, 0x09, - 0x2b, 0xc5, 0x02, 0x8a, 0xe6, 0xa1, 0xa2, 0xf6, 0x09, 0xd1, 0xc7, 0x69, 0x81, 0x5a, 0xd1, 0x9b, - 0x8b, 0xc6, 0xa1, 0x83, 0x46, 0xff, 0x08, 0xcd, 0x4d, 0x0d, 0x1a, 0x33, 0x92, 0x18, 0xc4, 0xfe, - 0x33, 0x0b, 0x4e, 0x18, 0xad, 0x7a, 0x00, 0xaa, 0xb9, 0x9f, 0x56, 0xcd, 0x57, 0x72, 0x9b, 0xcf, - 0x7d, 0x74, 0xf3, 0x6f, 0x5a, 0x70, 0xd6, 0xc0, 0x5a, 0x73, 0x12, 0x77, 0xe7, 0xe2, 0x7e, 0x18, - 0x91, 0x98, 0x9a, 0xd3, 0xe8, 0x29, 0x43, 0x6e, 0x55, 0xc7, 0x05, 0x85, 0xe2, 0x55, 0xd2, 0xe1, - 0x42, 0xec, 0x39, 0x28, 0xf3, 0xc9, 0x19, 0x44, 0x62, 0xc4, 0x55, 0xdf, 0xd6, 0x45, 0x39, 0x56, - 0x18, 0xc8, 0x86, 0x51, 0x26, 0x9c, 0xe8, 0x62, 0xa5, 0xdb, 0x10, 0xd0, 0x8f, 0x78, 0x83, 0x95, - 0x60, 0x01, 0xb1, 0xef, 0x14, 0x98, 0xad, 0xa0, 0x56, 0x21, 0x79, 0x10, 0x86, 0x66, 0x94, 0x12, - 0x5b, 0x1b, 0xf9, 0xc9, 0x10, 0xd2, 0xdf, 0xd8, 0x7c, 0x2b, 0x23, 0xb9, 0x70, 0xae, 0x5c, 0xef, - 0x6d, 0x70, 0xfe, 0x5e, 0x01, 0x66, 0xd3, 0x15, 0xba, 0x04, 0x1f, 0xb5, 0x6e, 0x0c, 0x46, 0xd9, - 0xf3, 0x04, 0x03, 0x1f, 0x9b, 0x78, 0x7d, 0x64, 0x47, 0xe1, 0x38, 0x65, 0x87, 0x29, 0xda, 0x8a, - 0x87, 0x88, 0xb6, 0x67, 0xd4, 0xa8, 0x8f, 0x64, 0x64, 0x49, 0x5a, 0xbc, 0x9f, 0x87, 0x91, 0x38, - 0x21, 0xe1, 0x4c, 0x29, 0x2d, 0x1a, 0x36, 0x13, 0x12, 0x62, 0x06, 0xb1, 0xff, 0x5b, 0x01, 0x1e, - 0x4f, 0x8f, 0xa1, 0x96, 0xc6, 0x9f, 0x4c, 0x49, 0xe3, 0x8f, 0x9a, 0xd2, 0xf8, 0xee, 0xc1, 0xec, - 0x87, 0xfb, 0x54, 0xfb, 0x91, 0x11, 0xd6, 0x68, 0x39, 0x33, 0x8a, 0xf3, 0xe9, 0x51, 0xbc, 0x7b, - 0x30, 0xfb, 0x54, 0x9f, 0x3e, 0x66, 0x86, 0xf9, 0x19, 0x18, 0x8d, 0x88, 0x13, 0x07, 0xbe, 0x18, - 0x68, 0xf5, 0x39, 0x30, 0x2b, 0xc5, 0x02, 0x6a, 0xff, 0x59, 0x39, 0x3b, 0xd8, 0xcb, 0xfc, 0x3c, - 0x2c, 0x88, 0x90, 0x07, 0x23, 0x4c, 0xc3, 0xe6, 0xa2, 0xe1, 0xea, 0xd1, 0x96, 0x11, 0x95, 0xc8, - 0x8a, 0x74, 0xb5, 0x4c, 0xbf, 0x1a, 0x2d, 0xc2, 0x8c, 0x05, 0xda, 0x87, 0xb2, 0x2b, 0x15, 0xdf, - 0x42, 0x1e, 0x47, 0x44, 0x42, 0xed, 0xd5, 0x1c, 0x27, 0xa8, 0xe8, 0x54, 0xda, 0xb2, 0xe2, 0x86, - 0x08, 0x14, 0x1b, 0x5e, 0x22, 0x3e, 0xeb, 0x11, 0x4d, 0x9b, 0x65, 0xcf, 0xe8, 0xe2, 0x18, 0x95, - 0xe7, 0xcb, 0x5e, 0x82, 0x29, 0x7d, 0xf4, 0x55, 0x0b, 0xc6, 0x63, 0xb7, 0xb5, 0x11, 0x05, 0x7b, - 0x5e, 0x8d, 0x44, 0x42, 0xb1, 0x39, 0xa2, 0x68, 0xda, 0x5c, 0x5c, 0x93, 0x04, 0x35, 0x5f, 0x6e, - 0x6a, 0x6a, 0x08, 0x36, 0xf9, 0x52, 0x85, 0xff, 0x71, 0xd1, 0xf7, 0x25, 0xe2, 0x7a, 0x74, 0x2b, - 0x92, 0xf6, 0x0d, 0x9b, 0x29, 0x47, 0x56, 0xf4, 0x96, 0xda, 0xee, 0x2e, 0x5d, 0x6f, 0xba, 0x41, - 0x1f, 0xbe, 0x73, 0x30, 0xfb, 0xf8, 0x62, 0x6f, 0x9e, 0xb8, 0x5f, 0x63, 0xd8, 0x80, 0x85, 0xed, - 0x66, 0x13, 0x93, 0x37, 0xdb, 0x84, 0x9d, 0x5e, 0xe4, 0x30, 0x60, 0x1b, 0x9a, 0x60, 0x66, 0xc0, - 0x0c, 0x08, 0x36, 0xf9, 0xa2, 0x37, 0x61, 0xb4, 0xe5, 0x24, 0x91, 0xb7, 0x2f, 0x8e, 0x2c, 0x8e, - 0xa8, 0x7a, 0xaf, 0x31, 0x5a, 0x9a, 0x39, 0xdb, 0xa9, 0x79, 0x21, 0x16, 0x8c, 0x50, 0x0b, 0x4a, - 0x2d, 0x12, 0x35, 0xc8, 0x4c, 0x39, 0x8f, 0xe3, 0xd9, 0x35, 0x4a, 0x4a, 0x33, 0xac, 0x50, 0x45, - 0x85, 0x95, 0x61, 0xce, 0x05, 0xbd, 0x01, 0xe5, 0x98, 0x34, 0x89, 0x4b, 0x55, 0x8d, 0x0a, 0xe3, - 0xf8, 0xb1, 0x01, 0xd5, 0x2e, 0x67, 0x9b, 0x34, 0x37, 0x45, 0x55, 0xbe, 0xc0, 0xe4, 0x3f, 0xac, - 0x48, 0xda, 0xff, 0xd9, 0x02, 0x94, 0x96, 0x30, 0x0f, 0x40, 0xd9, 0x7b, 0x33, 0xad, 0xec, 0xad, - 0xe6, 0xa9, 0x02, 0xf4, 0xd1, 0xf7, 0xde, 0x2b, 0x43, 0x46, 0x36, 0x5f, 0x23, 0x71, 0x42, 0x6a, - 0x1f, 0xc8, 0xd3, 0x0f, 0xe4, 0xe9, 0x07, 0xf2, 0x54, 0xc9, 0xd3, 0xed, 0x8c, 0x3c, 0x7d, 0xc5, - 0x58, 0xf5, 0xfa, 0xb2, 0xf1, 0xb3, 0xea, 0x36, 0xd2, 0x6c, 0x81, 0x81, 0x40, 0x25, 0xc1, 0x95, - 0xcd, 0xf5, 0x6b, 0x3d, 0x05, 0xe8, 0x67, 0xd3, 0x02, 0xf4, 0xa8, 0x2c, 0x1e, 0xb8, 0xc8, 0xfc, - 0x1b, 0x05, 0x78, 0x22, 0x2d, 0x4a, 0x70, 0xd0, 0x6c, 0x06, 0xed, 0x84, 0x6a, 0xc9, 0xe8, 0xd7, - 0x2d, 0x38, 0xd9, 0x4a, 0x5b, 0x93, 0xb1, 0x38, 0xb4, 0xfb, 0x54, 0x6e, 0x72, 0x2e, 0x63, 0xae, - 0x56, 0x67, 0x84, 0xcc, 0x3b, 0x99, 0x01, 0xc4, 0xb8, 0xab, 0x2d, 0xe8, 0x0d, 0xa8, 0xb4, 0x9c, - 0xfd, 0xeb, 0x61, 0xcd, 0x49, 0xa4, 0x81, 0xd2, 0xdf, 0xae, 0x6c, 0x27, 0x5e, 0x73, 0x8e, 0x5f, - 0xc5, 0xce, 0xad, 0xf8, 0xc9, 0x7a, 0xb4, 0x99, 0x44, 0x9e, 0xdf, 0xe0, 0x47, 0x35, 0x6b, 0x92, - 0x0c, 0xd6, 0x14, 0xed, 0xbf, 0x65, 0x65, 0x05, 0xad, 0x1a, 0x9d, 0xc8, 0x49, 0x48, 0xa3, 0x83, - 0x3e, 0x0f, 0x25, 0x6a, 0x49, 0xc8, 0x51, 0xb9, 0x99, 0xa7, 0xf4, 0x37, 0xbe, 0x84, 0xde, 0x08, - 0xe8, 0xbf, 0x18, 0x73, 0xa6, 0xf6, 0x9d, 0x91, 0xec, 0x86, 0xc7, 0x2e, 0xe6, 0x2e, 0x00, 0x34, - 0x82, 0x2d, 0xd2, 0x0a, 0x9b, 0x74, 0x58, 0x2c, 0x76, 0xba, 0xab, 0x8c, 0xe7, 0x65, 0x05, 0xc1, - 0x06, 0x16, 0xfa, 0x2b, 0x16, 0x40, 0x43, 0x2e, 0x2c, 0xb9, 0x99, 0x5d, 0xcf, 0xb3, 0x3b, 0x7a, - 0xd9, 0xea, 0xb6, 0x28, 0x86, 0xd8, 0x60, 0x8e, 0xbe, 0x6c, 0x41, 0x39, 0x91, 0xcd, 0xe7, 0xe2, - 0x7d, 0x2b, 0xcf, 0x96, 0xc8, 0x4e, 0xeb, 0x7d, 0x5d, 0x0d, 0x89, 0xe2, 0x8b, 0x7e, 0xd9, 0x02, - 0x88, 0x3b, 0xbe, 0xbb, 0x11, 0x34, 0x3d, 0xb7, 0x23, 0xa4, 0xfe, 0x8d, 0x5c, 0x0d, 0x7c, 0x45, - 0xbd, 0x3a, 0x45, 0x47, 0x43, 0xff, 0xc7, 0x06, 0x67, 0xf4, 0x05, 0x28, 0xc7, 0x62, 0xba, 0x09, - 0x39, 0xbf, 0x95, 0xef, 0x31, 0x03, 0xa7, 0x2d, 0x44, 0x84, 0xf8, 0x87, 0x15, 0x4f, 0xfb, 0x7b, - 0x85, 0xd4, 0x79, 0xa5, 0x3a, 0x99, 0x60, 0x53, 0xc6, 0x95, 0x46, 0xa1, 0x5c, 0x01, 0xb9, 0x4e, - 0x19, 0x65, 0x72, 0xea, 0x29, 0xa3, 0x8a, 0x62, 0x6c, 0x30, 0xa7, 0x9b, 0xe3, 0xb4, 0x93, 0x3d, - 0xff, 0x10, 0xb3, 0xf8, 0x8d, 0x3c, 0x9b, 0xd4, 0x7d, 0xba, 0xfc, 0x84, 0x68, 0xda, 0x74, 0x17, - 0x08, 0x77, 0x37, 0xc9, 0xfe, 0x5e, 0xfa, 0x8c, 0xd4, 0xf8, 0x00, 0x03, 0x9c, 0xff, 0x7e, 0xcb, - 0x82, 0xf1, 0x28, 0x68, 0x36, 0x3d, 0xbf, 0x41, 0x27, 0x8b, 0x90, 0x78, 0xaf, 0x1f, 0x8b, 0xd0, - 0x11, 0xb3, 0x82, 0x6d, 0xb1, 0x58, 0xf3, 0xc4, 0x66, 0x03, 0xec, 0x2f, 0x59, 0x30, 0xd3, 0x6f, - 0x52, 0x23, 0x02, 0x1f, 0xa6, 0x92, 0x9a, 0x6e, 0x7c, 0xea, 0xf6, 0x73, 0xdd, 0x5f, 0x22, 0x4d, - 0xa2, 0x4e, 0xa3, 0xca, 0xd5, 0xa7, 0x45, 0x37, 0x3f, 0xbc, 0xd1, 0x1f, 0x15, 0xdf, 0x8b, 0x8e, - 0xfd, 0x5b, 0x85, 0xec, 0x88, 0x2a, 0xa1, 0xf6, 0x1d, 0xab, 0x4b, 0xf5, 0xff, 0xd4, 0x71, 0x08, - 0x12, 0x66, 0x24, 0xa8, 0x4b, 0xd0, 0xfe, 0x38, 0x0f, 0xf1, 0x96, 0xc5, 0xfe, 0x37, 0x23, 0x70, - 0x8f, 0x96, 0xa9, 0x73, 0x74, 0xab, 0xdf, 0x39, 0xfa, 0xf0, 0x47, 0xf3, 0xdf, 0xb0, 0x60, 0xb4, - 0x49, 0xb5, 0x10, 0x7e, 0x56, 0x3c, 0x7e, 0xa1, 0x76, 0x5c, 0x63, 0xcf, 0x95, 0x9d, 0x98, 0xdf, - 0xf4, 0xa9, 0xf3, 0x27, 0x5e, 0x88, 0x45, 0x1b, 0xd0, 0x77, 0x2d, 0x18, 0x77, 0x7c, 0x3f, 0x48, - 0x84, 0xeb, 0x09, 0x77, 0xdd, 0xf0, 0x8e, 0xad, 0x4d, 0x0b, 0x9a, 0x17, 0x6f, 0x98, 0x3e, 0x78, - 0xd5, 0x10, 0x6c, 0x36, 0x09, 0xcd, 0x01, 0xd4, 0x3d, 0xdf, 0x69, 0x7a, 0x6f, 0x51, 0x6b, 0xaa, - 0xc4, 0x0e, 0xd8, 0xd9, 0xd6, 0x70, 0x49, 0x95, 0x62, 0x03, 0xe3, 0xec, 0x5f, 0x86, 0x71, 0xa3, - 0xe7, 0x3d, 0x2e, 0x28, 0x4f, 0x9b, 0x17, 0x94, 0x15, 0xe3, 0x5e, 0xf1, 0xec, 0x2b, 0x70, 0x32, - 0xdb, 0xc0, 0x61, 0xea, 0xdb, 0xbf, 0x3d, 0x9a, 0x3d, 0x7e, 0xde, 0x22, 0x51, 0x8b, 0x36, 0xed, - 0x03, 0x2b, 0xf4, 0x03, 0x2b, 0xf4, 0x03, 0x2b, 0x54, 0xfe, 0xb1, 0xef, 0x94, 0x20, 0xa5, 0x19, - 0xf0, 0xd6, 0x7d, 0x04, 0xc6, 0x22, 0x12, 0x06, 0xd7, 0xf1, 0xaa, 0x90, 0xb8, 0xda, 0x65, 0x93, - 0x17, 0x63, 0x09, 0xa7, 0x92, 0x39, 0x74, 0x92, 0x1d, 0x21, 0x72, 0x95, 0x64, 0xde, 0x70, 0x92, - 0x1d, 0xcc, 0x20, 0xe8, 0x15, 0x98, 0x4a, 0x9c, 0xa8, 0x41, 0x12, 0x4c, 0xf6, 0xd8, 0x20, 0x88, - 0x23, 0xfd, 0xc7, 0x04, 0xee, 0xd4, 0x56, 0x0a, 0x8a, 0x33, 0xd8, 0xe8, 0x4d, 0x18, 0xd9, 0x21, - 0xcd, 0x96, 0x30, 0x93, 0x37, 0xf3, 0x93, 0x88, 0xac, 0xaf, 0x97, 0x49, 0xb3, 0xc5, 0xd7, 0x2b, - 0xfd, 0x85, 0x19, 0x2b, 0xfa, 0x75, 0x2a, 0xbb, 0xed, 0x38, 0x09, 0x5a, 0xde, 0x5b, 0xd2, 0x78, - 0xfe, 0x54, 0xce, 0x8c, 0xaf, 0x4a, 0xfa, 0xdc, 0xc2, 0x53, 0x7f, 0xb1, 0xe6, 0xcc, 0xda, 0x51, - 0xf3, 0x22, 0x66, 0x0c, 0x77, 0x66, 0xe0, 0x58, 0xda, 0xb1, 0x24, 0xe9, 0xf3, 0x76, 0xa8, 0xbf, - 0x58, 0x73, 0x46, 0x1d, 0x18, 0x0d, 0x9b, 0xed, 0x86, 0xe7, 0xcf, 0x8c, 0xb3, 0x36, 0x5c, 0xcf, - 0xb9, 0x0d, 0x1b, 0x8c, 0x38, 0x3f, 0xc2, 0xe0, 0xbf, 0xb1, 0x60, 0x88, 0x9e, 0x86, 0x92, 0xbb, - 0xe3, 0x44, 0xc9, 0xcc, 0x04, 0x9b, 0x34, 0xca, 0xd2, 0x5c, 0xa4, 0x85, 0x98, 0xc3, 0xd0, 0x53, - 0x50, 0x8c, 0x48, 0x9d, 0x79, 0x0a, 0x19, 0x77, 0xc8, 0x98, 0xd4, 0x31, 0x2d, 0xb7, 0xff, 0x4e, - 0x21, 0xad, 0x5c, 0xa4, 0xfb, 0xcd, 0x67, 0xbb, 0xdb, 0x8e, 0x62, 0x69, 0x8d, 0x1a, 0xb3, 0x9d, - 0x15, 0x63, 0x09, 0x47, 0x5f, 0xb2, 0x60, 0xec, 0x56, 0x1c, 0xf8, 0x3e, 0x49, 0x84, 0x20, 0xbf, - 0x91, 0xf3, 0x50, 0x5c, 0xe1, 0xd4, 0x75, 0x1b, 0x44, 0x01, 0x96, 0x7c, 0x69, 0x73, 0xc9, 0xbe, - 0xdb, 0x6c, 0xd7, 0xba, 0xee, 0x22, 0x2f, 0xf2, 0x62, 0x2c, 0xe1, 0x14, 0xd5, 0xf3, 0x39, 0xea, - 0x48, 0x1a, 0x75, 0xc5, 0x17, 0xa8, 0x02, 0x6e, 0xff, 0x6e, 0x09, 0xce, 0xf4, 0x5c, 0x1c, 0x74, - 0xdb, 0x67, 0x1b, 0xeb, 0x25, 0xaf, 0x49, 0xa4, 0x1f, 0x2d, 0xdb, 0xf6, 0x6f, 0xa8, 0x52, 0x6c, - 0x60, 0xa0, 0x5f, 0x04, 0x08, 0x9d, 0xc8, 0x69, 0x11, 0xb1, 0xdd, 0x15, 0x8f, 0xbe, 0xbb, 0xd2, - 0x76, 0x6c, 0x48, 0x9a, 0xda, 0xda, 0x52, 0x45, 0x31, 0x36, 0x58, 0xa2, 0x8f, 0xc3, 0x78, 0x44, - 0x9a, 0xc4, 0x89, 0x99, 0xa3, 0x59, 0xd6, 0x6b, 0x16, 0x6b, 0x10, 0x36, 0xf1, 0xd0, 0x33, 0xca, - 0x77, 0x20, 0x73, 0x71, 0x9b, 0xf6, 0x1f, 0x40, 0x6f, 0x5b, 0x30, 0x55, 0xf7, 0x9a, 0x44, 0x73, - 0x17, 0x3e, 0xae, 0xeb, 0x47, 0xef, 0xe4, 0x25, 0x93, 0xae, 0x96, 0x90, 0xa9, 0xe2, 0x18, 0x67, - 0xd8, 0xd3, 0xcf, 0xbc, 0x47, 0x22, 0x26, 0x5a, 0x47, 0xd3, 0x9f, 0xf9, 0x06, 0x2f, 0xc6, 0x12, - 0x8e, 0x16, 0xe0, 0x44, 0xe8, 0xc4, 0xf1, 0x62, 0x44, 0x6a, 0xc4, 0x4f, 0x3c, 0xa7, 0xc9, 0x3d, - 0x50, 0xcb, 0xda, 0x03, 0x6d, 0x23, 0x0d, 0xc6, 0x59, 0x7c, 0xf4, 0x69, 0x78, 0xdc, 0x6b, 0xf8, - 0x41, 0x44, 0xd6, 0xbc, 0x38, 0xf6, 0xfc, 0x86, 0x9e, 0x06, 0x4c, 0x52, 0x96, 0xab, 0xb3, 0x82, - 0xd4, 0xe3, 0x2b, 0xbd, 0xd1, 0x70, 0xbf, 0xfa, 0xe8, 0x39, 0x28, 0xc7, 0xbb, 0x5e, 0xb8, 0x18, - 0xd5, 0x62, 0x76, 0x9c, 0x58, 0xd6, 0x67, 0x20, 0x9b, 0xa2, 0x1c, 0x2b, 0x0c, 0xfb, 0xd7, 0x0a, - 0x69, 0xf3, 0xce, 0x5c, 0x3f, 0x28, 0xa6, 0xab, 0x24, 0xb9, 0xe1, 0x44, 0xd2, 0xf4, 0x3f, 0xa2, - 0x0f, 0xab, 0xa0, 0x7b, 0xc3, 0x89, 0xcc, 0xf5, 0xc6, 0x18, 0x60, 0xc9, 0x09, 0xdd, 0x82, 0x91, - 0xa4, 0xe9, 0xe4, 0xe4, 0xf4, 0x6e, 0x70, 0xd4, 0xd6, 0xf6, 0xea, 0x42, 0x8c, 0x19, 0x0f, 0xf4, - 0x24, 0x55, 0x5f, 0xb7, 0xa5, 0xa3, 0x8b, 0xd0, 0x38, 0xb7, 0x63, 0xcc, 0x4a, 0xed, 0xff, 0x31, - 0xda, 0x43, 0xe4, 0xa9, 0x3d, 0x06, 0x5d, 0x00, 0xa0, 0x96, 0xd0, 0x46, 0x44, 0xea, 0xde, 0xbe, - 0xd8, 0xe3, 0xd5, 0xb2, 0xba, 0xa6, 0x20, 0xd8, 0xc0, 0x92, 0x75, 0x36, 0xdb, 0x75, 0x5a, 0xa7, - 0xd0, 0x5d, 0x87, 0x43, 0xb0, 0x81, 0x85, 0x5e, 0x84, 0x51, 0xaf, 0xe5, 0x34, 0x94, 0x3f, 0xce, - 0x93, 0x74, 0x3d, 0xad, 0xb0, 0x92, 0xbb, 0x07, 0xb3, 0x53, 0xaa, 0x41, 0xac, 0x08, 0x0b, 0x5c, - 0xf4, 0x5b, 0x16, 0x4c, 0xb8, 0x41, 0xab, 0x15, 0xf8, 0xdc, 0x7e, 0x10, 0xc6, 0xd0, 0xad, 0xe3, - 0xda, 0x81, 0xe7, 0x16, 0x0d, 0x66, 0xdc, 0x1a, 0x52, 0xde, 0xf9, 0x26, 0x08, 0xa7, 0x5a, 0x65, - 0x2e, 0xbb, 0xd2, 0x21, 0xcb, 0xee, 0x9f, 0x58, 0x30, 0xcd, 0xeb, 0x1a, 0x66, 0x8d, 0x70, 0x44, - 0x0f, 0x8e, 0xb9, 0x5b, 0x5d, 0x96, 0x9e, 0x3a, 0x12, 0xea, 0x82, 0xe3, 0xee, 0x46, 0xa2, 0x65, - 0x98, 0xae, 0x07, 0x91, 0x4b, 0xcc, 0x81, 0x10, 0x32, 0x43, 0x11, 0xba, 0x94, 0x45, 0xc0, 0xdd, - 0x75, 0xd0, 0x0d, 0x78, 0xcc, 0x28, 0x34, 0xc7, 0x81, 0x8b, 0x8d, 0x73, 0x82, 0xda, 0x63, 0x97, - 0x7a, 0x62, 0xe1, 0x3e, 0xb5, 0xcf, 0x7e, 0x12, 0xa6, 0xbb, 0xbe, 0xdf, 0x50, 0xc6, 0xe6, 0x12, - 0x3c, 0xd6, 0x7b, 0xa4, 0x86, 0x32, 0x39, 0xff, 0x51, 0xc6, 0x5b, 0xc7, 0x50, 0x6c, 0x06, 0x38, - 0xbe, 0x70, 0xa0, 0x48, 0xfc, 0x3d, 0x21, 0x38, 0x2e, 0x1d, 0x6d, 0x46, 0x5c, 0xf4, 0xf7, 0xf8, - 0x87, 0x66, 0x36, 0xda, 0x45, 0x7f, 0x0f, 0x53, 0xda, 0xe8, 0x1d, 0x2b, 0xb5, 0x31, 0xf3, 0x43, - 0x8f, 0xcf, 0x1c, 0x8b, 0x26, 0x37, 0xf0, 0x5e, 0x6d, 0x7f, 0xaf, 0x00, 0xe7, 0x0f, 0x23, 0x32, - 0xc0, 0xf0, 0x3d, 0x0d, 0xa3, 0x31, 0xbb, 0x2e, 0x11, 0x2b, 0x71, 0x9c, 0xae, 0x42, 0x7e, 0x81, - 0xf2, 0x59, 0x2c, 0x40, 0xe8, 0x97, 0x2d, 0x28, 0xb6, 0x9c, 0x50, 0xf4, 0xbc, 0x71, 0xbc, 0x3d, - 0x9f, 0x5b, 0x73, 0x42, 0xfe, 0x15, 0x94, 0x3e, 0xba, 0xe6, 0x84, 0x98, 0x36, 0x00, 0xcd, 0x42, - 0xc9, 0x89, 0x22, 0xa7, 0xc3, 0xe4, 0x5a, 0x85, 0x5f, 0xab, 0x2d, 0xd0, 0x02, 0xcc, 0xcb, 0xcf, - 0x7e, 0x02, 0xca, 0xb2, 0xfa, 0x50, 0x73, 0xf0, 0x1b, 0x63, 0x29, 0x67, 0x52, 0x76, 0xdd, 0x12, - 0xc3, 0xa8, 0x30, 0x80, 0xad, 0xbc, 0xfd, 0x97, 0x79, 0x34, 0x00, 0xd3, 0xda, 0x45, 0x4c, 0x95, - 0x60, 0x85, 0xbe, 0x6e, 0xb1, 0xc8, 0x25, 0xe9, 0x60, 0x2b, 0x74, 0xe5, 0xe3, 0x09, 0xa4, 0x32, - 0xe3, 0xa1, 0x64, 0x21, 0x36, 0xb9, 0x53, 0x41, 0x1d, 0x72, 0x1f, 0xfc, 0xac, 0xc6, 0x2c, 0x63, - 0x9b, 0x24, 0x1c, 0xed, 0xf7, 0xb8, 0x56, 0xc9, 0x21, 0xfa, 0x65, 0x80, 0x8b, 0x94, 0xef, 0x5a, - 0x30, 0xcd, 0xf5, 0xa2, 0x25, 0xaf, 0x5e, 0x27, 0x11, 0xf1, 0x5d, 0x22, 0x35, 0xcb, 0x23, 0x5e, - 0xdc, 0xc9, 0x53, 0x87, 0x95, 0x2c, 0x79, 0x2d, 0xc1, 0xbb, 0x40, 0xb8, 0xbb, 0x31, 0xa8, 0x06, - 0x23, 0x9e, 0x5f, 0x0f, 0xc4, 0xbe, 0x55, 0x3d, 0x5a, 0xa3, 0x56, 0xfc, 0x7a, 0xa0, 0xd7, 0x32, - 0xfd, 0x87, 0x19, 0x75, 0xb4, 0x0a, 0xa7, 0x23, 0x61, 0xfb, 0x5f, 0xf6, 0x62, 0x6a, 0xa1, 0xad, - 0x7a, 0x2d, 0x2f, 0x61, 0x7b, 0x4e, 0xb1, 0x3a, 0x73, 0xe7, 0x60, 0xf6, 0x34, 0xee, 0x01, 0xc7, - 0x3d, 0x6b, 0xa1, 0xb7, 0x60, 0x4c, 0x86, 0x5a, 0x95, 0xf3, 0xd0, 0xd2, 0xbb, 0xe7, 0xbf, 0x9a, - 0x4c, 0x9b, 0x22, 0xaa, 0x4a, 0x32, 0xb4, 0xff, 0x25, 0x40, 0xf7, 0xb5, 0x0b, 0xfa, 0x05, 0xa8, - 0x44, 0x2a, 0xfc, 0xcb, 0xca, 0xc3, 0x2d, 0x47, 0x7e, 0x5f, 0x71, 0xe5, 0xa3, 0xce, 0xbd, 0x75, - 0xa0, 0x97, 0xe6, 0x48, 0x75, 0xd4, 0x58, 0xdf, 0xce, 0xe4, 0x30, 0xb7, 0x05, 0x57, 0x7d, 0xaa, - 0xdf, 0xf1, 0x5d, 0xcc, 0x78, 0xa0, 0x08, 0x46, 0x77, 0x88, 0xd3, 0x4c, 0x76, 0xf2, 0x39, 0x80, - 0xbc, 0xcc, 0x68, 0x65, 0x3d, 0x8f, 0x79, 0x29, 0x16, 0x9c, 0xd0, 0x3e, 0x8c, 0xed, 0xf0, 0x09, - 0x20, 0xd4, 0xc6, 0xb5, 0xa3, 0x0e, 0x6e, 0x6a, 0x56, 0xe9, 0xcf, 0x2d, 0x0a, 0xb0, 0x64, 0xc7, - 0xee, 0x64, 0x8d, 0x1b, 0x47, 0xbe, 0x74, 0xf3, 0x73, 0xba, 0x1e, 0xfc, 0xba, 0xf1, 0x73, 0x30, - 0x11, 0x11, 0x37, 0xf0, 0x5d, 0xaf, 0x49, 0x6a, 0x0b, 0xf2, 0x70, 0x71, 0x18, 0x57, 0xdd, 0x93, - 0x54, 0xf5, 0xc5, 0x06, 0x0d, 0x9c, 0xa2, 0x88, 0xbe, 0x66, 0xc1, 0x94, 0x8a, 0x19, 0xa1, 0x1f, - 0x84, 0x88, 0xe3, 0xb9, 0xd5, 0x9c, 0x22, 0x54, 0x18, 0xcd, 0x2a, 0xa2, 0xc6, 0x6f, 0xba, 0x0c, - 0x67, 0xf8, 0xa2, 0xd7, 0x00, 0x82, 0x6d, 0x76, 0xfd, 0x46, 0xbb, 0x5a, 0x1e, 0xba, 0xab, 0x53, - 0xdc, 0x67, 0x5f, 0x52, 0xc0, 0x06, 0x35, 0x74, 0x15, 0x80, 0x2f, 0x9b, 0xad, 0x4e, 0x48, 0x98, - 0x45, 0xaa, 0x7d, 0xad, 0x61, 0x53, 0x41, 0xee, 0x1e, 0xcc, 0x76, 0x9f, 0x9d, 0xb0, 0x8b, 0x51, - 0xa3, 0x3a, 0xfa, 0x79, 0x18, 0x8b, 0xdb, 0xad, 0x96, 0xa3, 0x4e, 0xf2, 0x72, 0x8c, 0x02, 0xe0, - 0x74, 0x0d, 0x51, 0xc4, 0x0b, 0xb0, 0xe4, 0x88, 0x6e, 0x51, 0xa1, 0x1a, 0x8b, 0x43, 0x1d, 0xb6, - 0x8a, 0xb8, 0x4e, 0x30, 0xce, 0xfa, 0xf4, 0x09, 0x51, 0xef, 0x34, 0xee, 0x81, 0x73, 0xf7, 0x60, - 0xf6, 0xb1, 0x74, 0xf9, 0x6a, 0x20, 0xfc, 0xf2, 0x7b, 0xd2, 0x44, 0x57, 0x64, 0xe4, 0x35, 0xed, - 0xb6, 0x0c, 0x08, 0x7c, 0x56, 0x47, 0x5e, 0xb3, 0xe2, 0xfe, 0x63, 0x66, 0x56, 0xb6, 0xfd, 0xb4, - 0x0b, 0x89, 0xe8, 0xcd, 0x8b, 0x30, 0x41, 0xf6, 0x13, 0x12, 0xf9, 0x4e, 0xf3, 0x3a, 0x5e, 0x95, - 0x87, 0x52, 0x6c, 0xd2, 0x5e, 0x34, 0xca, 0x71, 0x0a, 0x0b, 0xd9, 0xca, 0x18, 0x2d, 0xe8, 0xe0, - 0x10, 0x6e, 0x8c, 0x4a, 0xd3, 0xd3, 0xfe, 0xbf, 0x85, 0x94, 0x06, 0xb5, 0x15, 0x11, 0x82, 0x02, - 0x28, 0xf9, 0x41, 0x4d, 0x09, 0xeb, 0x2b, 0xf9, 0x08, 0xeb, 0x6b, 0x41, 0xcd, 0x88, 0xa7, 0xa6, - 0xff, 0x62, 0xcc, 0xf9, 0xb0, 0x80, 0x53, 0x19, 0x99, 0xcb, 0x00, 0xc2, 0x2e, 0xc8, 0x93, 0xb3, - 0x0a, 0x38, 0x5d, 0x37, 0x19, 0xe1, 0x34, 0x5f, 0xb4, 0x0b, 0xa5, 0x9d, 0x20, 0x4e, 0xa4, 0xb5, - 0x70, 0x44, 0xc3, 0xe4, 0x72, 0x10, 0x27, 0x6c, 0xdb, 0x57, 0xdd, 0xa6, 0x25, 0x31, 0xe6, 0x3c, - 0xec, 0xff, 0x62, 0xa5, 0x8e, 0x20, 0x6f, 0x32, 0x77, 0xaa, 0x3d, 0xe2, 0xd3, 0x75, 0x68, 0xfa, - 0x1e, 0xfc, 0xa5, 0x4c, 0xb4, 0xc3, 0x4f, 0xf6, 0xcb, 0x6e, 0x71, 0x9b, 0x52, 0x98, 0x63, 0x24, - 0x0c, 0x37, 0x85, 0x2f, 0x5a, 0xe9, 0xb8, 0x13, 0xbe, 0x11, 0xe6, 0x18, 0x06, 0x75, 0x68, 0x08, - 0x8b, 0xfd, 0x8e, 0x05, 0x63, 0x55, 0xc7, 0xdd, 0x0d, 0xea, 0x75, 0xf4, 0x1c, 0x94, 0x6b, 0xed, - 0xc8, 0x0c, 0x81, 0x51, 0x67, 0x5e, 0x4b, 0xa2, 0x1c, 0x2b, 0x0c, 0x3a, 0x87, 0xeb, 0x8e, 0x2b, - 0x83, 0xa1, 0x8a, 0x7c, 0x0e, 0x5f, 0x62, 0x25, 0x58, 0x40, 0xd0, 0xc7, 0x61, 0xbc, 0xe5, 0xec, - 0xcb, 0xca, 0xd9, 0xf3, 0xcf, 0x35, 0x0d, 0xc2, 0x26, 0x9e, 0xfd, 0xaf, 0x2c, 0x98, 0xa9, 0x3a, - 0xb1, 0xe7, 0x2e, 0xb4, 0x93, 0x9d, 0xaa, 0x97, 0x6c, 0xb7, 0xdd, 0x5d, 0x92, 0xf0, 0x08, 0x38, - 0xda, 0xca, 0x76, 0x4c, 0x97, 0x92, 0x32, 0xc3, 0x54, 0x2b, 0xaf, 0x8b, 0x72, 0xac, 0x30, 0xd0, - 0x5b, 0x30, 0x1e, 0x3a, 0x71, 0x7c, 0x3b, 0x88, 0x6a, 0x98, 0xd4, 0xf3, 0x89, 0x3f, 0xdd, 0x24, - 0x6e, 0x44, 0x12, 0x4c, 0xea, 0xe2, 0x46, 0x4b, 0xd3, 0xc7, 0x26, 0x33, 0xfb, 0xf7, 0x2a, 0x30, - 0x26, 0xae, 0xe3, 0x06, 0x8e, 0xeb, 0x93, 0x06, 0x66, 0xa1, 0xaf, 0x81, 0x19, 0xc3, 0xa8, 0xcb, - 0xb2, 0xa0, 0x08, 0x4d, 0xe6, 0x6a, 0x2e, 0xf7, 0xb7, 0x3c, 0xb1, 0x8a, 0x6e, 0x16, 0xff, 0x8f, - 0x05, 0x2b, 0xf4, 0x6d, 0x0b, 0x4e, 0xb8, 0x81, 0xef, 0x13, 0x57, 0x6f, 0xb3, 0x23, 0x79, 0x78, - 0x64, 0x2c, 0xa6, 0x89, 0xea, 0xc3, 0xdf, 0x0c, 0x00, 0x67, 0xd9, 0xa3, 0x97, 0x61, 0x92, 0x8f, - 0xd9, 0x8d, 0xd4, 0xc9, 0x97, 0x0e, 0x5f, 0x37, 0x81, 0x38, 0x8d, 0x8b, 0xe6, 0xf8, 0x09, 0xa2, - 0x08, 0x14, 0x1f, 0xd5, 0x37, 0x09, 0x46, 0x88, 0xb8, 0x81, 0x81, 0x22, 0x40, 0x11, 0xa9, 0x47, - 0x24, 0xde, 0x11, 0xd7, 0x95, 0x6c, 0x8b, 0x1f, 0xbb, 0xbf, 0xc0, 0x23, 0xdc, 0x45, 0x09, 0xf7, - 0xa0, 0x8e, 0x76, 0x85, 0x8d, 0x53, 0xce, 0x43, 0x2a, 0x88, 0xcf, 0xdc, 0xd7, 0xd4, 0x99, 0x85, - 0x52, 0xbc, 0xe3, 0x44, 0x35, 0xa6, 0x5a, 0x14, 0xf9, 0x41, 0xc0, 0x26, 0x2d, 0xc0, 0xbc, 0x1c, - 0x2d, 0xc1, 0xc9, 0x4c, 0xf0, 0x7d, 0xcc, 0x94, 0x87, 0xb2, 0xf6, 0x43, 0xcd, 0x84, 0xed, 0xc7, - 0xb8, 0xab, 0x86, 0x69, 0xff, 0x8e, 0x1f, 0x62, 0xff, 0x76, 0x94, 0x53, 0xcc, 0x04, 0x93, 0xf8, - 0xaf, 0xe6, 0x32, 0x00, 0x03, 0x79, 0xc0, 0x7c, 0x33, 0xe3, 0x01, 0x33, 0xc9, 0x1a, 0x70, 0x23, - 0x9f, 0x06, 0x0c, 0xef, 0xee, 0xf2, 0x30, 0xdd, 0x57, 0xfe, 0x8f, 0x05, 0xf2, 0xbb, 0x2e, 0x3a, - 0xee, 0x0e, 0xa1, 0x53, 0x06, 0xbd, 0x02, 0x53, 0xca, 0x8a, 0x5b, 0x0c, 0xda, 0x3e, 0xf7, 0x5c, - 0x29, 0xea, 0x5b, 0x22, 0x9c, 0x82, 0xe2, 0x0c, 0x36, 0x9a, 0x87, 0x0a, 0x1d, 0x27, 0x5e, 0x95, - 0xef, 0x1e, 0xca, 0x52, 0x5c, 0xd8, 0x58, 0x11, 0xb5, 0x34, 0x0e, 0x0a, 0x60, 0xba, 0xe9, 0xc4, - 0x09, 0x6b, 0x01, 0x35, 0xea, 0xee, 0x33, 0xec, 0x8f, 0xe5, 0x1e, 0x59, 0xcd, 0x12, 0xc2, 0xdd, - 0xb4, 0xed, 0x1f, 0x8c, 0xc0, 0x64, 0x4a, 0x32, 0x0e, 0xb9, 0xed, 0x3c, 0x07, 0x65, 0xb9, 0x13, - 0x64, 0x63, 0x85, 0xd5, 0x76, 0xa1, 0x30, 0xe8, 0x36, 0xb9, 0x4d, 0x9c, 0x88, 0x44, 0x2c, 0xad, - 0x41, 0x76, 0x9b, 0xac, 0x6a, 0x10, 0x36, 0xf1, 0x98, 0x50, 0x4e, 0x9a, 0xf1, 0x62, 0xd3, 0x23, - 0x7e, 0xc2, 0x9b, 0x99, 0x8f, 0x50, 0xde, 0x5a, 0xdd, 0x34, 0x89, 0x6a, 0xa1, 0x9c, 0x01, 0xe0, - 0x2c, 0x7b, 0xf4, 0x15, 0x0b, 0x26, 0x9d, 0xdb, 0xb1, 0x4e, 0xd5, 0x25, 0x7c, 0x5d, 0x8e, 0xb8, - 0x49, 0xa5, 0xb2, 0x7f, 0x55, 0xa7, 0xa9, 0x78, 0x4f, 0x15, 0xe1, 0x34, 0x53, 0xf4, 0x1d, 0x0b, - 0x10, 0xd9, 0x27, 0xae, 0xf4, 0xc6, 0x11, 0x6d, 0x19, 0xcd, 0xc3, 0xd8, 0xb9, 0xd8, 0x45, 0x97, - 0x4b, 0xf5, 0xee, 0x72, 0xdc, 0xa3, 0x0d, 0xf6, 0x3f, 0x2b, 0xaa, 0x05, 0xa5, 0x1d, 0xc0, 0x1c, - 0x23, 0x78, 0xc1, 0xba, 0xff, 0xe0, 0x05, 0x7d, 0x45, 0xd9, 0x15, 0xc0, 0x90, 0xf6, 0x15, 0x2f, - 0x3c, 0x24, 0x5f, 0xf1, 0x2f, 0x5b, 0xa9, 0xa8, 0xf8, 0xf1, 0x0b, 0xaf, 0xe5, 0xeb, 0x7c, 0x36, - 0xc7, 0x2f, 0xc8, 0x33, 0xd2, 0x3d, 0x7d, 0x6b, 0x4e, 0xa5, 0xa9, 0x81, 0x36, 0x94, 0x34, 0xfc, - 0x0f, 0x45, 0x18, 0x37, 0x76, 0xd2, 0x9e, 0x6a, 0x91, 0xf5, 0x88, 0xa9, 0x45, 0x85, 0x21, 0xd4, - 0xa2, 0x5f, 0x84, 0x8a, 0x2b, 0xa5, 0x7c, 0x3e, 0x79, 0xe1, 0xb2, 0x7b, 0x87, 0x16, 0xf4, 0xaa, - 0x08, 0x6b, 0x9e, 0x68, 0x39, 0xe5, 0x9d, 0x2e, 0x76, 0x88, 0x11, 0xb6, 0x43, 0xf4, 0x72, 0x1f, - 0x17, 0x3b, 0x45, 0x77, 0x1d, 0xf4, 0x02, 0xb5, 0xac, 0x3c, 0xd1, 0x2f, 0xe9, 0x22, 0xca, 0xd4, - 0xf5, 0x85, 0x8d, 0x15, 0x59, 0x8c, 0x4d, 0x1c, 0xfb, 0x07, 0x96, 0xfa, 0xb8, 0x0f, 0x20, 0x1c, - 0xf2, 0x56, 0x3a, 0x1c, 0xf2, 0x62, 0x2e, 0xc3, 0xdc, 0x27, 0x0e, 0xf2, 0x1a, 0x8c, 0x2d, 0x06, - 0xad, 0x96, 0xe3, 0xd7, 0xd0, 0x4f, 0xc0, 0x98, 0xcb, 0x7f, 0x8a, 0xa3, 0x0a, 0x76, 0x3f, 0x25, - 0xa0, 0x58, 0xc2, 0xd0, 0x93, 0x30, 0xe2, 0x44, 0x0d, 0x79, 0x3c, 0xc1, 0xae, 0xf4, 0x17, 0xa2, - 0x46, 0x8c, 0x59, 0xa9, 0xfd, 0x76, 0x11, 0x60, 0x31, 0x68, 0x85, 0x4e, 0x44, 0x6a, 0x5b, 0x01, - 0xcb, 0x4b, 0x73, 0xac, 0xf7, 0x3a, 0xda, 0x58, 0x7a, 0x94, 0xef, 0x76, 0x8c, 0xf3, 0xfd, 0xe2, - 0x83, 0x3e, 0xdf, 0xff, 0x86, 0x05, 0x88, 0x7e, 0x91, 0xc0, 0x27, 0x7e, 0xa2, 0xaf, 0x2b, 0xe7, - 0xa1, 0xe2, 0xca, 0x52, 0xa1, 0xb5, 0xe8, 0xf5, 0x27, 0x01, 0x58, 0xe3, 0x0c, 0x60, 0x7e, 0x3e, - 0x2d, 0x85, 0x63, 0x31, 0xed, 0x05, 0xc7, 0x44, 0xaa, 0x90, 0x95, 0xf6, 0xef, 0x17, 0xe0, 0x31, - 0xbe, 0xdf, 0xad, 0x39, 0xbe, 0xd3, 0x20, 0x2d, 0xda, 0xaa, 0x41, 0x2f, 0xa0, 0x5d, 0x6a, 0xf7, - 0x78, 0xd2, 0xab, 0xed, 0xa8, 0x0b, 0x83, 0x4f, 0x68, 0x3e, 0x85, 0x57, 0x7c, 0x2f, 0xc1, 0x8c, - 0x38, 0x8a, 0xa1, 0x2c, 0xb3, 0x8c, 0x0a, 0x41, 0x97, 0x13, 0x23, 0xb5, 0xe6, 0xc5, 0xa6, 0x44, - 0xb0, 0x62, 0x44, 0xb5, 0xc2, 0x66, 0xe0, 0xee, 0x62, 0x12, 0x06, 0x4c, 0xa8, 0x19, 0x4e, 0x45, - 0xab, 0xa2, 0x1c, 0x2b, 0x0c, 0xfb, 0xf7, 0x2d, 0xc8, 0x8a, 0x7b, 0x23, 0xa5, 0x87, 0x75, 0xcf, - 0x94, 0x1e, 0x43, 0xe4, 0xd4, 0xf8, 0x39, 0x18, 0x77, 0x12, 0xba, 0x43, 0x73, 0x9b, 0xb6, 0x78, - 0x7f, 0xc7, 0xd6, 0x6b, 0x41, 0xcd, 0xab, 0x7b, 0xcc, 0x96, 0x35, 0xc9, 0xd9, 0xff, 0x6b, 0x04, - 0xa6, 0xbb, 0x3c, 0x95, 0xd1, 0x4b, 0x30, 0xe1, 0x8a, 0xe9, 0x11, 0x62, 0x52, 0x17, 0x9d, 0x31, - 0x3c, 0x5d, 0x34, 0x0c, 0xa7, 0x30, 0x07, 0x98, 0xa0, 0x2b, 0x70, 0x2a, 0xa2, 0x56, 0x74, 0x9b, - 0x2c, 0xd4, 0x13, 0x12, 0x6d, 0x12, 0x37, 0xf0, 0x6b, 0x3c, 0xf1, 0x4c, 0xb1, 0xfa, 0xf8, 0x9d, - 0x83, 0xd9, 0x53, 0xb8, 0x1b, 0x8c, 0x7b, 0xd5, 0x41, 0x21, 0x4c, 0x36, 0x4d, 0x05, 0x4b, 0x68, - 0xd7, 0xf7, 0xa5, 0x9b, 0xa9, 0x0d, 0x38, 0x55, 0x8c, 0xd3, 0x0c, 0xd2, 0x5a, 0x5a, 0xe9, 0x21, - 0x69, 0x69, 0xbf, 0xa4, 0xb5, 0x34, 0x7e, 0xbf, 0xfa, 0x7a, 0xce, 0x9e, 0xea, 0xc7, 0xad, 0xa6, - 0xbd, 0x0a, 0x65, 0xe9, 0x79, 0x32, 0x90, 0xc7, 0x86, 0x49, 0xa7, 0x8f, 0x44, 0xbb, 0x5b, 0x80, - 0x1e, 0x1a, 0x3e, 0x5d, 0x67, 0x7a, 0x3b, 0x4d, 0xad, 0xb3, 0xe1, 0xb6, 0x54, 0xb4, 0xcf, 0xbd, - 0x6e, 0xf8, 0xc6, 0xf1, 0xe9, 0xbc, 0x2d, 0x14, 0xed, 0x88, 0xa3, 0x5c, 0x40, 0x94, 0x33, 0xce, - 0x05, 0x00, 0xad, 0x05, 0x09, 0x87, 0x53, 0x75, 0xad, 0xa7, 0x95, 0x25, 0x6c, 0x60, 0x51, 0x83, - 0xd5, 0xf3, 0xe3, 0xc4, 0x69, 0x36, 0x2f, 0x7b, 0x7e, 0x22, 0x4e, 0xde, 0xd4, 0x0e, 0xb9, 0xa2, - 0x41, 0xd8, 0xc4, 0x3b, 0xfb, 0x09, 0xe3, 0xbb, 0x0c, 0xf3, 0x3d, 0x77, 0xe0, 0x89, 0x65, 0x2f, - 0x51, 0x6e, 0xd2, 0x6a, 0x1e, 0x51, 0x25, 0x47, 0xb9, 0xfd, 0x5b, 0x7d, 0xdd, 0xfe, 0x0d, 0x37, - 0xe5, 0x42, 0xda, 0xab, 0x3a, 0xeb, 0xa6, 0x6c, 0xbf, 0x04, 0xa7, 0x97, 0xbd, 0xe4, 0x92, 0xd7, - 0x24, 0x43, 0x32, 0xb1, 0xbf, 0x52, 0x82, 0x09, 0x33, 0x2c, 0x65, 0x98, 0xc8, 0x85, 0x6f, 0x51, - 0x3d, 0x46, 0xf4, 0xce, 0x53, 0x77, 0x2c, 0x37, 0x8f, 0x1c, 0x23, 0xd3, 0x7b, 0xc4, 0x0c, 0x55, - 0x46, 0xf3, 0xc4, 0x66, 0x03, 0xd0, 0x6d, 0x28, 0xd5, 0x99, 0x1b, 0x6d, 0x31, 0x8f, 0x9b, 0xe3, - 0x5e, 0x23, 0xaa, 0x97, 0x19, 0x77, 0xc4, 0xe5, 0xfc, 0xe8, 0x0e, 0x19, 0xa5, 0x63, 0x33, 0x94, - 0xa0, 0x52, 0x51, 0x19, 0x0a, 0xa3, 0x9f, 0xa8, 0x2f, 0xdd, 0x87, 0xa8, 0x4f, 0x09, 0xde, 0xd1, - 0x87, 0x24, 0x78, 0x99, 0x4b, 0x74, 0xb2, 0xc3, 0xf4, 0x37, 0xe1, 0x10, 0x3b, 0xc6, 0x06, 0xc1, - 0x70, 0x89, 0x4e, 0x81, 0x71, 0x16, 0xdf, 0xfe, 0x46, 0x01, 0xa6, 0x96, 0xfd, 0xf6, 0xc6, 0xf2, - 0x46, 0x7b, 0xbb, 0xe9, 0xb9, 0x57, 0x49, 0x87, 0xca, 0xb7, 0x5d, 0xd2, 0x59, 0x59, 0x12, 0xd3, - 0x50, 0x0d, 0xfc, 0x55, 0x5a, 0x88, 0x39, 0x8c, 0xae, 0xe8, 0xba, 0xe7, 0x37, 0x48, 0x14, 0x46, - 0x9e, 0x38, 0x94, 0x33, 0x56, 0xf4, 0x25, 0x0d, 0xc2, 0x26, 0x1e, 0xa5, 0x1d, 0xdc, 0xf6, 0x49, - 0x94, 0xd5, 0x06, 0xd7, 0x69, 0x21, 0xe6, 0x30, 0x8a, 0x94, 0x44, 0xed, 0x38, 0x11, 0x5f, 0x54, - 0x21, 0x6d, 0xd1, 0x42, 0xcc, 0x61, 0x74, 0xb9, 0xc4, 0xed, 0x6d, 0x76, 0xbb, 0x9d, 0x71, 0x61, - 0xdd, 0xe4, 0xc5, 0x58, 0xc2, 0x29, 0xea, 0x2e, 0xe9, 0x2c, 0x51, 0xbb, 0x2c, 0xe3, 0x64, 0x7e, - 0x95, 0x17, 0x63, 0x09, 0x67, 0x99, 0x6e, 0xd2, 0xc3, 0xf1, 0x23, 0x97, 0xe9, 0x26, 0xdd, 0xfc, - 0x3e, 0x16, 0xde, 0x6f, 0x58, 0x30, 0x61, 0xfa, 0xa4, 0xa0, 0x46, 0x46, 0x51, 0x5c, 0xef, 0xca, - 0x5a, 0xf6, 0x33, 0xbd, 0x5e, 0x54, 0x68, 0x78, 0x49, 0x10, 0xc6, 0xcf, 0x13, 0xbf, 0xe1, 0xf9, - 0x84, 0xdd, 0x5c, 0x72, 0x5f, 0x96, 0x94, 0xc3, 0xcb, 0x62, 0x50, 0x23, 0xf7, 0xa1, 0x69, 0xda, - 0x37, 0x61, 0xba, 0x2b, 0xb2, 0x60, 0x80, 0xfd, 0xf9, 0xd0, 0xb8, 0x2e, 0x1b, 0xc3, 0x38, 0x25, - 0xbc, 0x1e, 0x72, 0xa7, 0x93, 0x45, 0x98, 0xe6, 0x3a, 0x04, 0xe5, 0xb4, 0xe9, 0xee, 0x90, 0x96, - 0x8a, 0x16, 0x61, 0x27, 0xc0, 0x37, 0xb2, 0x40, 0xdc, 0x8d, 0x6f, 0x7f, 0xd3, 0x82, 0xc9, 0x54, - 0xb0, 0x47, 0x4e, 0x9a, 0x04, 0x5b, 0x69, 0x01, 0x73, 0x91, 0x62, 0x5e, 0xa2, 0x45, 0xb6, 0x23, - 0xe9, 0x95, 0xa6, 0x41, 0xd8, 0xc4, 0xb3, 0xdf, 0x29, 0x40, 0x59, 0xde, 0x5a, 0x0f, 0xd0, 0x94, - 0xaf, 0x5b, 0x30, 0xa9, 0x4e, 0xdd, 0xd9, 0x71, 0x0e, 0x9f, 0x8c, 0xd7, 0x8e, 0x7e, 0x6f, 0xae, - 0x7c, 0xf8, 0xfc, 0x7a, 0xa0, 0xd5, 0x5a, 0x6c, 0x32, 0xc3, 0x69, 0xde, 0xe8, 0x06, 0x40, 0xdc, - 0x89, 0x13, 0xd2, 0x32, 0x0e, 0x96, 0x6c, 0x63, 0xc5, 0xcd, 0xb9, 0x41, 0x44, 0xe8, 0xfa, 0xba, - 0x16, 0xd4, 0xc8, 0xa6, 0xc2, 0xd4, 0x7a, 0x88, 0x2e, 0xc3, 0x06, 0x25, 0xfb, 0x1f, 0x14, 0xe0, - 0x64, 0xb6, 0x49, 0xe8, 0x75, 0x98, 0x90, 0xdc, 0x8d, 0xd7, 0x21, 0xe4, 0x55, 0xfd, 0x04, 0x36, - 0x60, 0x77, 0x0f, 0x66, 0x67, 0xbb, 0x5f, 0xe7, 0x98, 0x33, 0x51, 0x70, 0x8a, 0x18, 0xbf, 0xfa, - 0x10, 0x77, 0x74, 0xd5, 0xce, 0x42, 0x18, 0x8a, 0xfb, 0x0b, 0xe3, 0xea, 0xc3, 0x84, 0xe2, 0x0c, - 0x36, 0xda, 0x80, 0xd3, 0x46, 0xc9, 0x35, 0xe2, 0x35, 0x76, 0xb6, 0x83, 0x48, 0x9a, 0x27, 0x4f, - 0x6a, 0xef, 0x97, 0x6e, 0x1c, 0xdc, 0xb3, 0x26, 0xdd, 0x32, 0x5d, 0x27, 0x74, 0x5c, 0x2f, 0xe9, - 0x88, 0x93, 0x32, 0x25, 0x9b, 0x16, 0x45, 0x39, 0x56, 0x18, 0xf6, 0x1a, 0x8c, 0x0c, 0x38, 0x83, - 0x06, 0x52, 0x8b, 0x5f, 0x85, 0x32, 0x25, 0x27, 0x75, 0xa4, 0x3c, 0x48, 0x06, 0x50, 0x96, 0x09, - 0x9e, 0x91, 0x0d, 0x45, 0xcf, 0x91, 0xb7, 0x4b, 0xaa, 0x5b, 0x2b, 0x71, 0xdc, 0x66, 0x96, 0x26, - 0x05, 0xa2, 0xa7, 0xa1, 0x48, 0xf6, 0xc3, 0xec, 0x35, 0xd2, 0xc5, 0xfd, 0xd0, 0x8b, 0x48, 0x4c, - 0x91, 0xc8, 0x7e, 0x88, 0xce, 0x42, 0xc1, 0xab, 0x89, 0x4d, 0x0a, 0x04, 0x4e, 0x61, 0x65, 0x09, - 0x17, 0xbc, 0x9a, 0xbd, 0x0f, 0x15, 0x95, 0x51, 0x1a, 0xed, 0x4a, 0xd9, 0x6d, 0xe5, 0xe1, 0x66, - 0x22, 0xe9, 0xf6, 0x91, 0xda, 0x6d, 0x00, 0x1d, 0x5a, 0x93, 0x97, 0x7c, 0x39, 0x0f, 0x23, 0x6e, - 0x20, 0x22, 0xf2, 0xca, 0x9a, 0x0c, 0x13, 0xda, 0x0c, 0x62, 0xdf, 0x84, 0xa9, 0xab, 0x7e, 0x70, - 0x9b, 0xe5, 0xe0, 0xbc, 0xe4, 0x91, 0x66, 0x8d, 0x12, 0xae, 0xd3, 0x1f, 0x59, 0x15, 0x81, 0x41, - 0x31, 0x87, 0xa9, 0xb4, 0x1b, 0x85, 0x7e, 0x69, 0x37, 0xec, 0x2f, 0x5a, 0x70, 0x52, 0xc5, 0x7c, - 0x48, 0x69, 0xfc, 0x12, 0x4c, 0x6c, 0xb7, 0xbd, 0x66, 0x4d, 0xfc, 0xcf, 0xda, 0xfa, 0x55, 0x03, - 0x86, 0x53, 0x98, 0xd4, 0x32, 0xd9, 0xf6, 0x7c, 0x27, 0xea, 0x6c, 0x68, 0xf1, 0xaf, 0x24, 0x42, - 0x55, 0x41, 0xb0, 0x81, 0x65, 0x7f, 0xb9, 0x00, 0x93, 0xa9, 0x08, 0x78, 0xd4, 0x84, 0x32, 0x69, - 0xb2, 0x13, 0x28, 0xf9, 0x51, 0x8f, 0x9a, 0x7c, 0x4a, 0x4d, 0xc4, 0x8b, 0x82, 0x2e, 0x56, 0x1c, - 0x1e, 0x89, 0x6b, 0x16, 0xfb, 0x0f, 0x8a, 0x30, 0xc3, 0x0f, 0xde, 0x6a, 0xca, 0x9f, 0x61, 0x4d, - 0x6a, 0x27, 0x7f, 0x55, 0x67, 0x9b, 0xe0, 0xc3, 0xb1, 0x7d, 0xd4, 0xf4, 0x89, 0xbd, 0x19, 0x0d, - 0x74, 0xd3, 0xfe, 0xeb, 0x99, 0x9b, 0xf6, 0x42, 0x1e, 0x01, 0x11, 0x7d, 0x5b, 0xf4, 0xa3, 0x75, - 0xf5, 0xfe, 0x77, 0x0b, 0x70, 0x22, 0x93, 0x9b, 0x12, 0xbd, 0x9d, 0xce, 0x3e, 0x65, 0xe5, 0x71, - 0x3c, 0x73, 0xcf, 0x0c, 0x89, 0xc3, 0xe5, 0xa0, 0x7a, 0x58, 0x13, 0xfe, 0x0f, 0x0b, 0x30, 0x95, - 0x4e, 0xaa, 0xf9, 0x08, 0x8e, 0xd4, 0x47, 0xa1, 0xc2, 0x52, 0xd5, 0xb1, 0x77, 0x3b, 0xf8, 0x29, - 0x10, 0xcf, 0xa8, 0x26, 0x0b, 0xb1, 0x86, 0x3f, 0x12, 0xa9, 0xbd, 0xec, 0xbf, 0x67, 0xc1, 0x19, - 0xde, 0xcb, 0xec, 0x3c, 0xfc, 0x6b, 0xbd, 0x46, 0xf7, 0x8d, 0x7c, 0x1b, 0x98, 0xc9, 0x92, 0x72, - 0xd8, 0xf8, 0xb2, 0xf7, 0x02, 0x44, 0x6b, 0xd3, 0x53, 0xe1, 0x11, 0x6c, 0xec, 0x50, 0x93, 0xc1, - 0xfe, 0xc3, 0x22, 0xe8, 0x27, 0x12, 0x90, 0x27, 0xc2, 0x26, 0x72, 0xc9, 0x16, 0xb3, 0xd9, 0xf1, - 0x5d, 0xfd, 0x18, 0x43, 0x39, 0x13, 0x35, 0xf1, 0x2b, 0x16, 0x8c, 0x7b, 0xbe, 0x97, 0x78, 0x0e, - 0x53, 0x3a, 0xf3, 0xc9, 0x19, 0xaf, 0xd8, 0xad, 0x70, 0xca, 0x41, 0x64, 0x1e, 0x1d, 0x2a, 0x66, - 0xd8, 0xe4, 0x8c, 0x3e, 0x27, 0x9c, 0xe1, 0x8a, 0xb9, 0x05, 0xfc, 0x94, 0x33, 0x1e, 0x70, 0x21, - 0x94, 0x22, 0x92, 0x44, 0x32, 0xd4, 0xea, 0xea, 0x51, 0x3d, 0x9c, 0x93, 0xa8, 0xa3, 0x92, 0x83, - 0xe9, 0xc7, 0xaa, 0x68, 0x31, 0xe6, 0x8c, 0xec, 0x18, 0x50, 0xf7, 0x58, 0x0c, 0xe9, 0x68, 0x34, - 0x0f, 0x15, 0xa7, 0x9d, 0x04, 0x2d, 0x3a, 0x4c, 0xe2, 0x74, 0x53, 0xbb, 0x52, 0x49, 0x00, 0xd6, - 0x38, 0xf6, 0xdb, 0x25, 0xc8, 0xc4, 0x31, 0xa0, 0x7d, 0xf3, 0x79, 0x0f, 0x2b, 0xdf, 0xe7, 0x3d, - 0x54, 0x63, 0x7a, 0x3d, 0xf1, 0x81, 0x1a, 0x50, 0x0a, 0x77, 0x9c, 0x58, 0xea, 0x94, 0xaf, 0xca, - 0x61, 0xda, 0xa0, 0x85, 0x77, 0x0f, 0x66, 0x7f, 0x76, 0xb0, 0x33, 0x0a, 0x3a, 0x57, 0xe7, 0x79, - 0xbc, 0xb0, 0x66, 0xcd, 0x68, 0x60, 0x4e, 0x7f, 0x98, 0xac, 0xf9, 0x5f, 0x12, 0xf9, 0x0c, 0x31, - 0x89, 0xdb, 0xcd, 0x44, 0xcc, 0x86, 0x57, 0x73, 0x5c, 0x65, 0x9c, 0xb0, 0x8e, 0xc0, 0xe3, 0xff, - 0xb1, 0xc1, 0x14, 0xbd, 0x0e, 0x95, 0x38, 0x71, 0xa2, 0xe4, 0x3e, 0x63, 0x66, 0xd4, 0xa0, 0x6f, - 0x4a, 0x22, 0x58, 0xd3, 0x43, 0xaf, 0xb1, 0xe4, 0x59, 0x5e, 0xbc, 0x73, 0x9f, 0x3e, 0xac, 0x32, - 0xd1, 0x96, 0xa0, 0x80, 0x0d, 0x6a, 0x54, 0x65, 0x67, 0x73, 0x9b, 0x3b, 0x6e, 0x94, 0x99, 0x4d, - 0xa6, 0x44, 0x21, 0x56, 0x10, 0x6c, 0x60, 0xd9, 0x5f, 0x80, 0x53, 0xd9, 0xf7, 0xc0, 0xc4, 0xb1, - 0x65, 0x23, 0x0a, 0xda, 0x61, 0xd6, 0x26, 0x61, 0xef, 0x45, 0x61, 0x0e, 0xa3, 0x36, 0xc9, 0xae, - 0xe7, 0xd7, 0xb2, 0x36, 0xc9, 0x55, 0xcf, 0xaf, 0x61, 0x06, 0x19, 0xe0, 0xdd, 0x93, 0x7f, 0x6e, - 0xc1, 0xf9, 0xc3, 0x9e, 0x2d, 0x43, 0x4f, 0xc2, 0xc8, 0x6d, 0x27, 0x92, 0xc9, 0xf8, 0x98, 0xec, - 0xb8, 0xe9, 0x44, 0x3e, 0x66, 0xa5, 0xa8, 0x03, 0xa3, 0x3c, 0x46, 0x51, 0x28, 0xb0, 0xaf, 0xe6, - 0xfb, 0x88, 0xda, 0x55, 0x62, 0x68, 0xd0, 0x3c, 0x3e, 0x12, 0x0b, 0x86, 0xf6, 0xfb, 0x16, 0xa0, - 0xf5, 0x3d, 0x12, 0x45, 0x5e, 0xcd, 0x88, 0xaa, 0x44, 0x2f, 0xc2, 0xc4, 0xad, 0xcd, 0xf5, 0x6b, - 0x1b, 0x81, 0xe7, 0xb3, 0x18, 0x6b, 0x23, 0x2e, 0xe5, 0x8a, 0x51, 0x8e, 0x53, 0x58, 0x68, 0x11, - 0xa6, 0x6f, 0xbd, 0x49, 0xed, 0x28, 0x33, 0x8f, 0x6d, 0x41, 0x9f, 0x9c, 0x5d, 0x79, 0x35, 0x03, - 0xc4, 0xdd, 0xf8, 0x68, 0x1d, 0xce, 0xb4, 0xb8, 0x06, 0xce, 0xcc, 0xc7, 0x98, 0xab, 0xe3, 0x91, - 0x4c, 0xbc, 0xf0, 0xc4, 0x9d, 0x83, 0xd9, 0x33, 0x6b, 0xbd, 0x10, 0x70, 0xef, 0x7a, 0xf6, 0xbb, - 0x05, 0x18, 0x37, 0x9e, 0xfe, 0x1b, 0xc0, 0x50, 0xce, 0xbc, 0x56, 0x58, 0x18, 0xf0, 0xb5, 0xc2, - 0x67, 0xa1, 0x1c, 0x06, 0x4d, 0xcf, 0xf5, 0x54, 0x96, 0x08, 0x96, 0xcc, 0x6c, 0x43, 0x94, 0x61, - 0x05, 0x45, 0xb7, 0xa1, 0xa2, 0x9e, 0xc3, 0x12, 0xc1, 0x7d, 0x79, 0x1d, 0x15, 0xa8, 0xc5, 0xab, - 0x9f, 0xb9, 0xd2, 0xbc, 0x90, 0x0d, 0xa3, 0x6c, 0xe6, 0x4b, 0x97, 0x26, 0x16, 0x75, 0xc1, 0x96, - 0x44, 0x8c, 0x05, 0xc4, 0xfe, 0xea, 0x18, 0x9c, 0xee, 0x95, 0x80, 0x0b, 0x7d, 0x1e, 0x46, 0x79, - 0x1b, 0xf3, 0xc9, 0xf1, 0xd8, 0x8b, 0xc7, 0x32, 0x23, 0x28, 0x9a, 0xc5, 0x7e, 0x63, 0xc1, 0x53, - 0x70, 0x6f, 0x3a, 0xdb, 0x42, 0x8d, 0x38, 0x1e, 0xee, 0xab, 0x8e, 0xe6, 0xbe, 0xea, 0x70, 0xee, - 0x4d, 0x67, 0x1b, 0xed, 0x43, 0xa9, 0xe1, 0x25, 0xc4, 0x11, 0xca, 0xf4, 0xcd, 0x63, 0x61, 0x4e, - 0x1c, 0xee, 0x39, 0xcf, 0x7e, 0x62, 0xce, 0x10, 0x7d, 0xd7, 0x82, 0x13, 0xdb, 0xe9, 0x20, 0x16, - 0xb1, 0xab, 0x38, 0xc7, 0x90, 0x64, 0x2d, 0xcd, 0xa8, 0x7a, 0xea, 0xce, 0xc1, 0xec, 0x89, 0x4c, - 0x21, 0xce, 0x36, 0x07, 0xfd, 0x92, 0x05, 0x63, 0x75, 0xaf, 0x69, 0x64, 0x10, 0x3a, 0x86, 0x8f, - 0x73, 0x89, 0x31, 0xd0, 0x3b, 0x2f, 0xff, 0x1f, 0x63, 0xc9, 0xb9, 0xdf, 0x75, 0xde, 0xe8, 0x51, - 0xaf, 0xf3, 0xc6, 0x1e, 0x92, 0xf9, 0xf4, 0xd7, 0x0b, 0xf0, 0xf4, 0x00, 0xdf, 0xc8, 0x0c, 0x8a, - 0xb0, 0x0e, 0x09, 0x8a, 0x38, 0x0f, 0x23, 0x11, 0x09, 0x83, 0xec, 0x7e, 0xc7, 0x3c, 0x87, 0x18, - 0x04, 0x3d, 0x05, 0x45, 0x27, 0xf4, 0xc4, 0x76, 0xa7, 0x6e, 0xfb, 0x17, 0x36, 0x56, 0x30, 0x2d, - 0xa7, 0x5f, 0xba, 0xb2, 0x2d, 0x43, 0xab, 0xf2, 0x49, 0xd6, 0xdc, 0x2f, 0x52, 0x8b, 0x1b, 0x34, - 0x0a, 0x8a, 0x35, 0x5f, 0x7b, 0x1d, 0xce, 0xf6, 0x9f, 0x21, 0xe8, 0x05, 0x18, 0xdf, 0x8e, 0x1c, - 0xdf, 0xdd, 0x61, 0x89, 0xcd, 0xe5, 0x98, 0x30, 0x57, 0x78, 0x5d, 0x8c, 0x4d, 0x1c, 0xfb, 0x0f, - 0x0a, 0xbd, 0x29, 0x72, 0x21, 0x30, 0xcc, 0x08, 0x8b, 0xf1, 0x2b, 0xf4, 0x19, 0xbf, 0x37, 0xa1, - 0x9c, 0x30, 0x4f, 0x7c, 0x52, 0x17, 0x92, 0x24, 0xb7, 0x60, 0x32, 0xb6, 0xd7, 0x6c, 0x09, 0xe2, - 0x58, 0xb1, 0xa1, 0x22, 0xbf, 0xa9, 0x93, 0x0f, 0x09, 0x91, 0x9f, 0x39, 0x47, 0x5b, 0x82, 0x93, - 0x46, 0x2e, 0x45, 0xee, 0x88, 0xcc, 0xaf, 0x51, 0x55, 0x74, 0xce, 0x46, 0x06, 0x8e, 0xbb, 0x6a, - 0xd8, 0xbf, 0x51, 0x80, 0x27, 0xfa, 0x4a, 0x36, 0x7d, 0xd7, 0x6b, 0xdd, 0xe3, 0xae, 0xf7, 0xc8, - 0x13, 0xd4, 0x1c, 0xe0, 0x91, 0x07, 0x33, 0xc0, 0xcf, 0x41, 0xd9, 0xf3, 0x63, 0xe2, 0xb6, 0x23, - 0x3e, 0x68, 0x86, 0x5b, 0xde, 0x8a, 0x28, 0xc7, 0x0a, 0xc3, 0xfe, 0xa3, 0xfe, 0x53, 0x8d, 0xee, - 0x72, 0x3f, 0xb6, 0xa3, 0xf4, 0x32, 0x4c, 0x3a, 0x61, 0xc8, 0xf1, 0xd8, 0xbd, 0x5a, 0x26, 0xde, - 0x6e, 0xc1, 0x04, 0xe2, 0x34, 0xae, 0x31, 0x87, 0x47, 0xfb, 0xcd, 0x61, 0xfb, 0x4f, 0x2d, 0xa8, - 0x60, 0x52, 0xe7, 0x39, 0x38, 0xd1, 0x2d, 0x31, 0x44, 0x56, 0x1e, 0xc9, 0x21, 0xd8, 0xa3, 0xda, - 0x1e, 0x4b, 0x9a, 0xd0, 0x6b, 0xb0, 0xbb, 0xf3, 0x82, 0x16, 0x86, 0xca, 0x0b, 0xaa, 0x32, 0x43, - 0x16, 0xfb, 0x67, 0x86, 0xb4, 0xdf, 0x1d, 0xa3, 0xdd, 0x0b, 0x83, 0xc5, 0x88, 0xd4, 0x62, 0xfa, - 0x7d, 0xdb, 0x51, 0x33, 0xfb, 0xd6, 0xe0, 0x75, 0xbc, 0x8a, 0x69, 0x79, 0xea, 0x10, 0xa0, 0x30, - 0x54, 0xb4, 0x51, 0xf1, 0xd0, 0x68, 0xa3, 0x97, 0x61, 0x32, 0x8e, 0x77, 0x36, 0x22, 0x6f, 0xcf, - 0x49, 0xa8, 0x69, 0x21, 0xdc, 0x32, 0x74, 0x84, 0xc0, 0xe6, 0x65, 0x0d, 0xc4, 0x69, 0x5c, 0xb4, - 0x0c, 0xd3, 0x3a, 0xe6, 0x87, 0x44, 0x09, 0xf3, 0xc2, 0xe0, 0x33, 0x41, 0x39, 0xe8, 0xeb, 0x28, - 0x21, 0x81, 0x80, 0xbb, 0xeb, 0x50, 0x89, 0x95, 0x2a, 0xa4, 0x0d, 0x19, 0x4d, 0x4b, 0xac, 0x14, - 0x1d, 0xda, 0x96, 0xae, 0x1a, 0x68, 0x0d, 0x4e, 0xf1, 0x89, 0xc1, 0x1e, 0xb7, 0x55, 0x3d, 0xe2, - 0x5e, 0x33, 0x1f, 0x16, 0x84, 0x4e, 0x2d, 0x77, 0xa3, 0xe0, 0x5e, 0xf5, 0xa8, 0xdd, 0xa0, 0x8a, - 0x57, 0x96, 0x84, 0xfd, 0xaa, 0xec, 0x06, 0x45, 0x66, 0xa5, 0x86, 0x4d, 0x3c, 0xf4, 0x69, 0x78, - 0x5c, 0xff, 0xe5, 0xfe, 0x6e, 0xfc, 0x50, 0x67, 0x49, 0x84, 0x53, 0xaa, 0x3c, 0x84, 0xcb, 0x3d, - 0xd1, 0x6a, 0xb8, 0x5f, 0x7d, 0xb4, 0x0d, 0x67, 0x15, 0xe8, 0x22, 0x35, 0xd2, 0xc2, 0xc8, 0x8b, - 0x49, 0xd5, 0x89, 0xc9, 0xf5, 0xa8, 0xc9, 0x02, 0x30, 0x2b, 0x3a, 0xa1, 0xfa, 0xb2, 0x97, 0x5c, - 0xee, 0x85, 0x89, 0x57, 0xf1, 0x3d, 0xa8, 0xa0, 0x79, 0xa8, 0x10, 0xdf, 0xd9, 0x6e, 0x92, 0xf5, - 0xc5, 0x15, 0x16, 0x96, 0x69, 0x9c, 0x21, 0x5d, 0x94, 0x00, 0xac, 0x71, 0xd4, 0x4d, 0xe0, 0x44, - 0xdf, 0x04, 0xfc, 0x1b, 0x70, 0xba, 0xe1, 0x86, 0x54, 0x0f, 0xf0, 0x5c, 0xb2, 0xe0, 0xba, 0xd4, - 0xd0, 0xa7, 0x1f, 0x86, 0xe7, 0x45, 0x55, 0xd7, 0xdc, 0xcb, 0x8b, 0x1b, 0x5d, 0x38, 0xb8, 0x67, - 0x4d, 0xba, 0xc6, 0xc2, 0x28, 0xd8, 0xef, 0xcc, 0x9c, 0x4a, 0xaf, 0xb1, 0x0d, 0x5a, 0x88, 0x39, - 0x0c, 0x5d, 0x01, 0xc4, 0x7c, 0x26, 0x2e, 0x27, 0x49, 0xa8, 0x14, 0x8f, 0x99, 0xd3, 0xac, 0x4b, - 0x67, 0x45, 0x0d, 0x74, 0xa9, 0x0b, 0x03, 0xf7, 0xa8, 0x65, 0xff, 0x89, 0x05, 0x93, 0x6a, 0xbd, - 0x3e, 0x00, 0xaf, 0xa1, 0x66, 0xda, 0x6b, 0x68, 0xf9, 0xe8, 0x12, 0x8f, 0xb5, 0xbc, 0xcf, 0xd5, - 0xf3, 0x57, 0xc7, 0x01, 0xb4, 0x54, 0x54, 0x1b, 0x92, 0xd5, 0x77, 0x43, 0x7a, 0x64, 0x25, 0x52, - 0xaf, 0x18, 0xac, 0xd2, 0xc3, 0x8d, 0xc1, 0xda, 0x84, 0x33, 0x52, 0x5d, 0xe0, 0x47, 0x32, 0x97, - 0x83, 0x58, 0x09, 0xb8, 0x72, 0xf5, 0x29, 0x41, 0xe8, 0xcc, 0x4a, 0x2f, 0x24, 0xdc, 0xbb, 0x6e, - 0x4a, 0x4b, 0x19, 0x3b, 0x4c, 0x4b, 0xd1, 0x6b, 0x7a, 0xb5, 0x2e, 0xb3, 0x1a, 0x66, 0xd6, 0xf4, - 0xea, 0xa5, 0x4d, 0xac, 0x71, 0x7a, 0x0b, 0xf6, 0x4a, 0x4e, 0x82, 0x1d, 0x86, 0x16, 0xec, 0x52, - 0xc4, 0x8c, 0xf7, 0x15, 0x31, 0xf2, 0x14, 0x68, 0xa2, 0xef, 0x29, 0xd0, 0x2b, 0x30, 0xe5, 0xf9, - 0x3b, 0x24, 0xf2, 0x12, 0x52, 0x63, 0x6b, 0x41, 0x3c, 0xe0, 0xae, 0xb6, 0xf5, 0x95, 0x14, 0x14, - 0x67, 0xb0, 0xd3, 0x72, 0x71, 0x6a, 0x00, 0xb9, 0xd8, 0x67, 0x37, 0x3a, 0x91, 0xcf, 0x6e, 0x74, - 0xf2, 0xe8, 0xbb, 0xd1, 0xf4, 0xb1, 0xee, 0x46, 0x28, 0x97, 0xdd, 0x68, 0x20, 0x41, 0x6f, 0x18, - 0x74, 0xa7, 0x0f, 0x31, 0xe8, 0xfa, 0x6d, 0x45, 0x67, 0xee, 0x7b, 0x2b, 0xea, 0xbd, 0xcb, 0x3c, - 0x76, 0x5f, 0xbb, 0xcc, 0xd7, 0x0a, 0x70, 0x46, 0xcb, 0x61, 0x3a, 0xfb, 0xbd, 0x3a, 0x95, 0x44, - 0x2c, 0x31, 0x2e, 0x77, 0x47, 0x31, 0x9c, 0xd8, 0xb4, 0x3f, 0x9c, 0x82, 0x60, 0x03, 0x8b, 0xf9, - 0x82, 0x91, 0x88, 0xa5, 0x98, 0xc9, 0x0a, 0xe9, 0x45, 0x51, 0x8e, 0x15, 0x06, 0x9d, 0x5f, 0xf4, - 0xb7, 0xf0, 0xaf, 0xcd, 0x86, 0x9d, 0x2f, 0x6a, 0x10, 0x36, 0xf1, 0xd0, 0xb3, 0x9c, 0x09, 0x13, - 0x10, 0x54, 0x50, 0x4f, 0x88, 0x27, 0x1f, 0xa4, 0x4c, 0x50, 0x50, 0xd9, 0x1c, 0xe6, 0xf4, 0x57, - 0xea, 0x6e, 0x0e, 0xbb, 0x7c, 0x53, 0x18, 0xf6, 0xff, 0xb6, 0xe0, 0x89, 0x9e, 0x43, 0xf1, 0x00, - 0x36, 0xdf, 0xfd, 0xf4, 0xe6, 0xbb, 0x99, 0x97, 0xb9, 0x61, 0xf4, 0xa2, 0xcf, 0x46, 0xfc, 0xef, - 0x2d, 0x98, 0xd2, 0xf8, 0x0f, 0xa0, 0xab, 0x5e, 0xba, 0xab, 0xf9, 0x59, 0x56, 0x95, 0xae, 0xbe, - 0xfd, 0x09, 0xeb, 0x1b, 0xbf, 0xc3, 0x58, 0x70, 0xe5, 0xdb, 0xfd, 0x87, 0x9c, 0xdd, 0x77, 0x60, - 0x94, 0x65, 0x65, 0x8d, 0xf3, 0xb9, 0x4b, 0x49, 0xf3, 0x67, 0xde, 0xbc, 0xfa, 0x2e, 0x85, 0xfd, - 0x8d, 0xb1, 0x60, 0xc8, 0x12, 0x20, 0x79, 0x31, 0x95, 0xe6, 0x35, 0xe1, 0x3e, 0xa7, 0x13, 0x20, - 0x89, 0x72, 0xac, 0x30, 0xec, 0x16, 0xcc, 0xa4, 0x89, 0x2f, 0x91, 0x3a, 0xbb, 0xb2, 0x1e, 0xa8, - 0x9b, 0xf3, 0x50, 0x71, 0x58, 0xad, 0xd5, 0xb6, 0x93, 0x7d, 0x25, 0x68, 0x41, 0x02, 0xb0, 0xc6, - 0xb1, 0x7f, 0xc7, 0x82, 0x53, 0x3d, 0x3a, 0x93, 0xa3, 0xdb, 0x60, 0xa2, 0xa5, 0x40, 0xaf, 0x0d, - 0xf7, 0x23, 0x30, 0x56, 0x23, 0x75, 0x47, 0x5e, 0x8a, 0x1a, 0x32, 0x77, 0x89, 0x17, 0x63, 0x09, - 0xb7, 0xff, 0xbb, 0x05, 0x27, 0xd2, 0x6d, 0x8d, 0xa9, 0xd4, 0xe4, 0x9d, 0x59, 0xf2, 0x62, 0x37, - 0xd8, 0x23, 0x51, 0x87, 0xf6, 0x9c, 0xb7, 0x5a, 0x49, 0xcd, 0x85, 0x2e, 0x0c, 0xdc, 0xa3, 0x16, - 0x4b, 0xd0, 0x52, 0x53, 0xa3, 0x2d, 0x67, 0xca, 0x8d, 0x3c, 0x67, 0x8a, 0xfe, 0x98, 0xe6, 0xc5, - 0x91, 0x62, 0x89, 0x4d, 0xfe, 0xf6, 0xfb, 0x23, 0xa0, 0xfc, 0x8a, 0xd9, 0xf5, 0x5b, 0x4e, 0x97, - 0x97, 0xa9, 0xa7, 0xa4, 0x8a, 0x03, 0x3c, 0x25, 0x25, 0x27, 0xc3, 0xc8, 0xbd, 0xae, 0xc6, 0xf8, - 0xe9, 0x85, 0x79, 0x48, 0xa8, 0x7a, 0xb8, 0xa5, 0x41, 0xd8, 0xc4, 0xa3, 0x2d, 0x69, 0x7a, 0x7b, - 0x84, 0x57, 0x1a, 0x4d, 0xb7, 0x64, 0x55, 0x02, 0xb0, 0xc6, 0xa1, 0x2d, 0xa9, 0x79, 0xf5, 0xba, - 0x30, 0xc5, 0x55, 0x4b, 0xe8, 0xe8, 0x60, 0x06, 0xa1, 0x18, 0x3b, 0x41, 0xb0, 0x2b, 0xb4, 0x53, - 0x85, 0x71, 0x39, 0x08, 0x76, 0x31, 0x83, 0x50, 0x7d, 0xca, 0x0f, 0xa2, 0x16, 0x7b, 0xc5, 0xa9, - 0xa6, 0xb8, 0x08, 0xad, 0x54, 0xe9, 0x53, 0xd7, 0xba, 0x51, 0x70, 0xaf, 0x7a, 0x74, 0x06, 0x86, - 0x11, 0xa9, 0x79, 0x6e, 0x62, 0x52, 0x83, 0xf4, 0x0c, 0xdc, 0xe8, 0xc2, 0xc0, 0x3d, 0x6a, 0xa1, - 0x05, 0x38, 0x21, 0xfd, 0xc2, 0x65, 0xe8, 0xdc, 0x78, 0x3a, 0x54, 0x07, 0xa7, 0xc1, 0x38, 0x8b, - 0x4f, 0xa5, 0x4d, 0x4b, 0x44, 0xcd, 0x32, 0x25, 0xd6, 0x90, 0x36, 0x32, 0x9a, 0x16, 0x2b, 0x0c, - 0xfb, 0x4b, 0x45, 0xba, 0x3b, 0xf6, 0xc9, 0x9e, 0xfb, 0xc0, 0x2e, 0xcb, 0xd3, 0x33, 0x72, 0x64, - 0x80, 0x19, 0xf9, 0x22, 0x4c, 0xdc, 0x8a, 0x03, 0x5f, 0x5d, 0x44, 0x97, 0xfa, 0x5e, 0x44, 0x1b, - 0x58, 0xbd, 0x2f, 0xa2, 0x47, 0xf3, 0xba, 0x88, 0x1e, 0xbb, 0xcf, 0x8b, 0xe8, 0xef, 0x95, 0x40, - 0xe5, 0x9f, 0xbc, 0x46, 0x92, 0xdb, 0x41, 0xb4, 0xeb, 0xf9, 0x0d, 0xe6, 0x4f, 0xff, 0x5d, 0x0b, - 0x26, 0xf8, 0x7a, 0x59, 0x35, 0x7d, 0x6b, 0xeb, 0x39, 0xe5, 0x49, 0x4c, 0x31, 0x9b, 0xdb, 0x32, - 0x18, 0x65, 0x1e, 0x09, 0x30, 0x41, 0x38, 0xd5, 0x22, 0xf4, 0x0b, 0x00, 0xf2, 0xdc, 0xb2, 0x2e, - 0x45, 0xe6, 0x4a, 0x3e, 0xed, 0xc3, 0xa4, 0xae, 0x75, 0xd3, 0x2d, 0xc5, 0x04, 0x1b, 0x0c, 0xd1, - 0xd7, 0xb2, 0xaf, 0xdc, 0x7d, 0xee, 0x58, 0xc6, 0x66, 0x10, 0xaf, 0x63, 0x0c, 0x63, 0x9e, 0xdf, - 0xa0, 0xf3, 0x44, 0xdc, 0xdd, 0xff, 0x64, 0xaf, 0x58, 0x94, 0xd5, 0xc0, 0xa9, 0x55, 0x9d, 0xa6, - 0xe3, 0xbb, 0x24, 0x5a, 0xe1, 0xe8, 0xe6, 0xab, 0x35, 0xac, 0x00, 0x4b, 0x42, 0x5d, 0x89, 0x40, - 0x4b, 0x83, 0x24, 0x02, 0x3d, 0xfb, 0x49, 0x98, 0xee, 0xfa, 0x98, 0x43, 0x39, 0x19, 0xdf, 0xbf, - 0x7f, 0xb2, 0xfd, 0x2f, 0x46, 0xf5, 0xa6, 0x75, 0x2d, 0xa8, 0xf1, 0x74, 0x94, 0x91, 0xfe, 0xa2, - 0x42, 0xf7, 0xcc, 0x71, 0x8a, 0x18, 0x2f, 0xdf, 0xa8, 0x42, 0x6c, 0xb2, 0xa4, 0x73, 0x34, 0x74, - 0x22, 0xe2, 0x1f, 0xf7, 0x1c, 0xdd, 0x50, 0x4c, 0xb0, 0xc1, 0x10, 0xed, 0xa4, 0xbc, 0x0c, 0x2f, - 0x1d, 0xdd, 0xcb, 0x90, 0x85, 0xba, 0xf6, 0xca, 0xb7, 0xf7, 0x6d, 0x0b, 0xa6, 0xfc, 0xd4, 0xcc, - 0x15, 0xf7, 0x38, 0x5b, 0xc7, 0xb1, 0x2a, 0x78, 0xfa, 0xe2, 0x74, 0x19, 0xce, 0xf0, 0xef, 0xb5, - 0xa5, 0x95, 0x86, 0xdc, 0xd2, 0x74, 0x5e, 0xdb, 0xd1, 0x7e, 0x79, 0x6d, 0x91, 0xaf, 0x32, 0x71, - 0x8f, 0xe5, 0x9e, 0x89, 0x1b, 0x7a, 0x64, 0xe1, 0xbe, 0x09, 0x15, 0x37, 0x22, 0x4e, 0x72, 0x9f, - 0x49, 0x99, 0xd9, 0x25, 0xf6, 0xa2, 0x24, 0x80, 0x35, 0x2d, 0xfb, 0xdf, 0x15, 0xe1, 0xa4, 0x1c, - 0x11, 0xe9, 0x81, 0x45, 0xf7, 0x47, 0xce, 0x57, 0x2b, 0xb7, 0x6a, 0x7f, 0xbc, 0x2c, 0x01, 0x58, - 0xe3, 0x50, 0x7d, 0xac, 0x1d, 0x93, 0xf5, 0x90, 0xf8, 0xab, 0xde, 0x76, 0x2c, 0xee, 0x1f, 0xd5, - 0x42, 0xb9, 0xae, 0x41, 0xd8, 0xc4, 0xa3, 0xca, 0x38, 0xd7, 0x8b, 0xe3, 0xac, 0x43, 0xa3, 0xd0, - 0xb7, 0xb1, 0x84, 0xa3, 0x5f, 0xeb, 0x99, 0xce, 0x3f, 0x1f, 0x57, 0xde, 0x2e, 0xc7, 0xb3, 0x21, - 0xf3, 0xf8, 0xbf, 0x6d, 0xc1, 0x89, 0xdd, 0x54, 0x2c, 0x92, 0x14, 0xc9, 0x47, 0x8c, 0x9a, 0x4d, - 0x07, 0x38, 0xe9, 0x29, 0x9c, 0x2e, 0x8f, 0x71, 0x96, 0xbb, 0xfd, 0x3f, 0x2d, 0x30, 0xc5, 0xd3, - 0x60, 0x9a, 0x95, 0xf1, 0xfe, 0x4e, 0xe1, 0x90, 0xf7, 0x77, 0xa4, 0x12, 0x56, 0x1c, 0x4c, 0xe9, - 0x1f, 0x19, 0x42, 0xe9, 0x2f, 0xf5, 0xd5, 0xda, 0x9e, 0x82, 0x62, 0xdb, 0xab, 0x09, 0xbd, 0x5d, - 0xdf, 0x36, 0xae, 0x2c, 0x61, 0x5a, 0x6e, 0xff, 0xd3, 0x92, 0xb6, 0xd3, 0x85, 0x07, 0xea, 0x8f, - 0x45, 0xb7, 0xeb, 0x2a, 0x08, 0x9a, 0xf7, 0xfc, 0x5a, 0x57, 0x10, 0xf4, 0x4f, 0x0f, 0xef, 0x60, - 0xcc, 0x07, 0xa8, 0x5f, 0x0c, 0xf4, 0xd8, 0x21, 0xde, 0xc5, 0xb7, 0xa0, 0x4c, 0x4d, 0x1b, 0x76, - 0xe0, 0x56, 0x4e, 0x35, 0xaa, 0x7c, 0x59, 0x94, 0xdf, 0x3d, 0x98, 0xfd, 0xa9, 0xe1, 0x9b, 0x25, - 0x6b, 0x63, 0x45, 0x1f, 0xc5, 0x50, 0xa1, 0xbf, 0x99, 0x23, 0xb4, 0x30, 0x9a, 0xae, 0x2b, 0x59, - 0x24, 0x01, 0xb9, 0x78, 0x59, 0x6b, 0x3e, 0xc8, 0x87, 0x0a, 0x7b, 0x4a, 0x84, 0x31, 0xe5, 0xb6, - 0xd5, 0x86, 0x72, 0x47, 0x96, 0x80, 0xbb, 0x07, 0xb3, 0x2f, 0x0f, 0xcf, 0x54, 0x55, 0xc7, 0x9a, - 0x85, 0xfd, 0xce, 0x88, 0x9e, 0xbb, 0x22, 0xf6, 0xfd, 0xc7, 0x62, 0xee, 0xbe, 0x94, 0x99, 0xbb, - 0xe7, 0xbb, 0xe6, 0xee, 0x94, 0x7e, 0xf2, 0x22, 0x35, 0x1b, 0x1f, 0xf4, 0x06, 0x7b, 0xb8, 0x1d, - 0xcf, 0x34, 0x8b, 0x37, 0xdb, 0x5e, 0x44, 0xe2, 0x8d, 0xa8, 0xed, 0x7b, 0x7e, 0x43, 0xbc, 0xa9, - 0x67, 0x68, 0x16, 0x29, 0x30, 0xce, 0xe2, 0xb3, 0xf7, 0xf8, 0x3a, 0xbe, 0x7b, 0xd3, 0xd9, 0xe3, - 0xb3, 0xca, 0x08, 0x07, 0xde, 0x14, 0xe5, 0x58, 0x61, 0xd8, 0xef, 0xb2, 0xbb, 0x5b, 0x23, 0x02, - 0x83, 0xce, 0x89, 0x26, 0x7b, 0xbb, 0x85, 0xc7, 0x12, 0xab, 0x39, 0xc1, 0x1f, 0x6c, 0xe1, 0x30, - 0x74, 0x1b, 0xc6, 0xb6, 0x79, 0x2e, 0xf4, 0x7c, 0x92, 0x8f, 0x89, 0xc4, 0xea, 0x2c, 0x3f, 0xa8, - 0xcc, 0xb2, 0x7e, 0x57, 0xff, 0xc4, 0x92, 0x9b, 0xfd, 0xde, 0x08, 0x9c, 0xc8, 0xbc, 0xee, 0x91, - 0x4a, 0x85, 0x52, 0x38, 0x34, 0x15, 0xca, 0x67, 0x00, 0x6a, 0x24, 0x6c, 0x06, 0x1d, 0xa6, 0xe6, - 0x8c, 0x0c, 0xad, 0xe6, 0x28, 0xcd, 0x78, 0x49, 0x51, 0xc1, 0x06, 0x45, 0x11, 0x40, 0xcd, 0x33, - 0xab, 0x64, 0x02, 0xa8, 0x8d, 0xfc, 0x7f, 0xa3, 0x0f, 0x36, 0xff, 0x9f, 0x07, 0x27, 0x78, 0x13, - 0x55, 0x9c, 0xc3, 0x7d, 0x84, 0x33, 0x30, 0x0f, 0xd9, 0xa5, 0x34, 0x19, 0x9c, 0xa5, 0xfb, 0x30, - 0x1f, 0xef, 0x41, 0x1f, 0x85, 0x8a, 0xfc, 0xce, 0xf1, 0x4c, 0x45, 0xc7, 0x8a, 0xc9, 0x69, 0xc0, - 0x1e, 0xd5, 0x11, 0x3f, 0xed, 0x6f, 0x15, 0xa8, 0x56, 0xca, 0xff, 0xa9, 0x98, 0xdf, 0x67, 0x60, - 0xd4, 0x69, 0x27, 0x3b, 0x41, 0x57, 0xf6, 0xf9, 0x05, 0x56, 0x8a, 0x05, 0x14, 0xad, 0xc2, 0x48, - 0x4d, 0xc7, 0x71, 0x0e, 0x33, 0x8a, 0xfa, 0x80, 0xcf, 0x49, 0x08, 0x66, 0x54, 0xd0, 0x93, 0x30, - 0x92, 0x38, 0x8d, 0xd4, 0xbb, 0x90, 0x5b, 0x4e, 0x23, 0xc6, 0xac, 0xd4, 0xdc, 0x34, 0x47, 0x0e, - 0xd9, 0x34, 0x5f, 0x86, 0xc9, 0xd8, 0x6b, 0xf8, 0x4e, 0xd2, 0x8e, 0x88, 0x71, 0x99, 0xa4, 0xfd, - 0x03, 0x4c, 0x20, 0x4e, 0xe3, 0xda, 0xef, 0x57, 0xe0, 0x74, 0xaf, 0xf7, 0xbb, 0xf3, 0xf6, 0x86, - 0xef, 0xc5, 0xe3, 0xc1, 0x79, 0xc3, 0xf7, 0xe1, 0xde, 0x34, 0xbc, 0xe1, 0x9b, 0x86, 0x37, 0xfc, - 0xd7, 0x2c, 0xa8, 0x28, 0x27, 0x70, 0xe1, 0xc8, 0xfa, 0xfa, 0x31, 0xbc, 0x91, 0x2e, 0x59, 0x08, - 0x5f, 0x60, 0xf9, 0x17, 0x6b, 0xe6, 0xc7, 0xe7, 0x1e, 0x7f, 0xcf, 0x06, 0x0d, 0xe5, 0x1e, 0xaf, - 0x62, 0x07, 0x4a, 0x79, 0xc4, 0x0e, 0xf4, 0xf9, 0x54, 0x3d, 0x63, 0x07, 0xbe, 0x6d, 0xc1, 0xb8, - 0xf3, 0x56, 0x3b, 0x22, 0x4b, 0x64, 0x6f, 0x3d, 0x8c, 0x85, 0x80, 0x7d, 0x23, 0xff, 0x06, 0x2c, - 0x68, 0x26, 0x22, 0x4d, 0xae, 0x2e, 0xc0, 0x66, 0x13, 0x52, 0xb1, 0x02, 0x63, 0x79, 0xc4, 0x0a, - 0xf4, 0x6a, 0xce, 0xa1, 0xb1, 0x02, 0x2f, 0xc3, 0xa4, 0xdb, 0x0c, 0x7c, 0xb2, 0x11, 0x05, 0x49, - 0xe0, 0x06, 0x4d, 0xa1, 0x4c, 0x2b, 0x91, 0xb0, 0x68, 0x02, 0x71, 0x1a, 0xb7, 0x5f, 0xa0, 0x41, - 0xe5, 0xa8, 0x81, 0x06, 0xf0, 0x90, 0x02, 0x0d, 0xfe, 0xbc, 0x00, 0xb3, 0x87, 0x7c, 0x54, 0xf4, - 0x12, 0x4c, 0x04, 0x51, 0xc3, 0xf1, 0xbd, 0xb7, 0x78, 0x9c, 0x67, 0x29, 0x9d, 0x86, 0x63, 0xdd, - 0x80, 0xe1, 0x14, 0xa6, 0x74, 0x45, 0x1e, 0xed, 0xe3, 0x8a, 0xfc, 0x71, 0x18, 0x4f, 0x88, 0xd3, - 0x12, 0x7e, 0x17, 0xc2, 0x00, 0xd2, 0x17, 0x4a, 0x1a, 0x84, 0x4d, 0x3c, 0x3a, 0x8d, 0xa6, 0x1c, - 0xd7, 0x25, 0x71, 0x2c, 0x7d, 0x8d, 0xc5, 0xe1, 0x4c, 0x6e, 0x8e, 0xcc, 0xec, 0xcc, 0x6b, 0x21, - 0xc5, 0x02, 0x67, 0x58, 0xd2, 0xc6, 0x3b, 0xcd, 0x26, 0x0f, 0x2b, 0x20, 0xf2, 0xa5, 0x67, 0x9d, - 0x15, 0x42, 0x83, 0xb0, 0x89, 0x67, 0xff, 0x66, 0x01, 0x9e, 0xba, 0xa7, 0x78, 0x19, 0xd8, 0x0d, - 0xbc, 0x1d, 0x93, 0x28, 0x7b, 0x21, 0x73, 0x3d, 0x26, 0x11, 0x66, 0x10, 0x3e, 0x4a, 0x61, 0x68, - 0x3c, 0x31, 0x93, 0x77, 0xd4, 0x01, 0x1f, 0xa5, 0x14, 0x0b, 0x9c, 0x61, 0x99, 0x1d, 0xa5, 0x91, - 0x01, 0x47, 0xe9, 0xef, 0x17, 0xe0, 0xe9, 0x01, 0x84, 0x70, 0x8e, 0xd1, 0x19, 0xe9, 0xe8, 0x96, - 0xe2, 0xc3, 0x89, 0x6e, 0xb9, 0xdf, 0xe1, 0x7a, 0xb7, 0x00, 0x67, 0xfb, 0xcb, 0x42, 0xf4, 0x33, - 0xd4, 0x88, 0x92, 0xce, 0x16, 0x66, 0x64, 0xcc, 0x29, 0x6e, 0x40, 0xa5, 0x40, 0x38, 0x8b, 0x8b, - 0xe6, 0x00, 0x42, 0x27, 0xd9, 0x89, 0x2f, 0xee, 0x7b, 0x71, 0x22, 0x62, 0x3a, 0xa7, 0xf8, 0x51, - 0xb8, 0x2c, 0xc5, 0x06, 0x06, 0x65, 0xc7, 0xfe, 0x2d, 0x05, 0xd7, 0x82, 0x84, 0x57, 0xe2, 0x7a, - 0xdc, 0x29, 0x99, 0x87, 0xd0, 0x00, 0xe1, 0x2c, 0x2e, 0x65, 0xc7, 0x2e, 0x5b, 0x78, 0x43, 0xc5, - 0x33, 0xf6, 0x94, 0xdd, 0xaa, 0x2a, 0xc5, 0x06, 0x46, 0x36, 0xe6, 0xa7, 0x34, 0x40, 0xcc, 0xcf, - 0x3f, 0x2e, 0xc0, 0x13, 0x7d, 0xf7, 0xd2, 0xc1, 0x16, 0xe0, 0xa3, 0x17, 0xec, 0x73, 0x7f, 0x73, - 0x67, 0xc8, 0x10, 0x96, 0x3f, 0xed, 0x33, 0xd3, 0x44, 0x08, 0x4b, 0x76, 0xab, 0xb0, 0x86, 0xdd, - 0x2a, 0x1e, 0xa1, 0xf1, 0xec, 0x8a, 0x5a, 0x19, 0x19, 0x22, 0x6a, 0x25, 0xf3, 0x31, 0x4a, 0x03, - 0x2e, 0xe4, 0xef, 0xf7, 0x1f, 0x5e, 0xaa, 0x7b, 0x0f, 0x74, 0x3c, 0xb5, 0x04, 0x27, 0x3d, 0x9f, - 0xe5, 0xa4, 0xdd, 0x6c, 0x6f, 0x8b, 0x88, 0xdf, 0x42, 0xfa, 0xb9, 0xa5, 0x95, 0x0c, 0x1c, 0x77, - 0xd5, 0x78, 0x04, 0xa3, 0x88, 0xee, 0x73, 0x48, 0x3f, 0x03, 0x15, 0x45, 0x9b, 0x7b, 0x46, 0xaa, - 0x0f, 0xda, 0xe5, 0x19, 0xa9, 0xbe, 0xa6, 0x81, 0x45, 0x47, 0x62, 0x97, 0x74, 0xb2, 0x33, 0xf3, - 0x2a, 0xe9, 0xb0, 0x5b, 0x52, 0xfb, 0x63, 0x30, 0xa1, 0x8c, 0xc8, 0x41, 0x73, 0xa6, 0xda, 0xef, - 0x8c, 0xc2, 0x64, 0x2a, 0xb3, 0x43, 0xea, 0xcc, 0xc6, 0x3a, 0xf4, 0xcc, 0x86, 0x79, 0xba, 0xb6, - 0x7d, 0x99, 0x95, 0xd8, 0xf0, 0x74, 0x6d, 0xfb, 0x04, 0x73, 0x18, 0x35, 0xdd, 0x6b, 0x51, 0x07, - 0xb7, 0x7d, 0xe1, 0x91, 0xa6, 0x4c, 0xf7, 0x25, 0x56, 0x8a, 0x05, 0x14, 0x7d, 0xd1, 0x82, 0x89, - 0x98, 0x1d, 0x08, 0xf2, 0x13, 0x2f, 0xf1, 0x41, 0xaf, 0xe4, 0xf1, 0xaa, 0xae, 0xc8, 0x62, 0xc2, - 0x2e, 0xb3, 0xcd, 0x12, 0x9c, 0xe2, 0x88, 0xbe, 0x62, 0x99, 0xef, 0x09, 0x8f, 0xe6, 0xe1, 0x49, - 0x99, 0x4d, 0x9c, 0xc1, 0x8f, 0x4a, 0xee, 0xfd, 0xac, 0xb0, 0x7e, 0x66, 0x7c, 0xec, 0xc1, 0x3d, - 0x33, 0xfe, 0x51, 0xa8, 0xb4, 0x1c, 0xdf, 0xab, 0x93, 0x38, 0xe1, 0x27, 0x44, 0x32, 0x9f, 0x8f, - 0x2c, 0xc4, 0x1a, 0x4e, 0x37, 0xbb, 0x98, 0x75, 0x2c, 0x31, 0x8e, 0x74, 0xd8, 0x66, 0xb7, 0xa9, - 0x8b, 0xb1, 0x89, 0x63, 0x9e, 0x3f, 0xc1, 0x43, 0x3d, 0x7f, 0x1a, 0x3f, 0xe4, 0xfc, 0xe9, 0x1f, - 0x5a, 0x70, 0xa6, 0xe7, 0x57, 0x7b, 0x74, 0x7d, 0x94, 0xec, 0xf7, 0x8b, 0x70, 0xaa, 0x47, 0x8a, - 0x16, 0xd4, 0x39, 0xb6, 0xf7, 0xb1, 0x45, 0x0e, 0x98, 0xc9, 0xbe, 0x93, 0x78, 0xb8, 0xd3, 0x5f, - 0x7d, 0x02, 0x5b, 0x7c, 0xb0, 0x27, 0xb0, 0xc6, 0xb4, 0x1c, 0x79, 0xa8, 0xd3, 0xb2, 0x74, 0xc8, - 0xb4, 0x7c, 0xbf, 0x08, 0xc6, 0x73, 0xf7, 0xe8, 0x0b, 0x66, 0xda, 0x24, 0x2b, 0xaf, 0x14, 0x3f, - 0x9c, 0xb8, 0x4a, 0xbb, 0xc4, 0x9b, 0xd3, 0x2b, 0x0b, 0x53, 0x56, 0x02, 0x14, 0x06, 0x90, 0x00, - 0x4d, 0x99, 0x9f, 0xaa, 0x98, 0x7f, 0x7e, 0xaa, 0x4a, 0x36, 0x37, 0x15, 0xfa, 0x5d, 0x0b, 0x66, - 0x5a, 0x7d, 0xf2, 0x28, 0xe6, 0x93, 0x36, 0xa0, 0x5f, 0x96, 0xc6, 0xea, 0x93, 0x77, 0x0e, 0x66, - 0xfb, 0xa6, 0xaf, 0xc4, 0x7d, 0x5b, 0x65, 0xff, 0x4d, 0x8b, 0xaf, 0xe2, 0xcc, 0x57, 0xd0, 0xdb, - 0xac, 0x75, 0x8f, 0x6d, 0xf6, 0x39, 0xf6, 0x02, 0x5b, 0xfd, 0x32, 0x71, 0x9a, 0x62, 0x3b, 0x36, - 0x1f, 0x53, 0x63, 0xe5, 0x58, 0x61, 0xb0, 0x37, 0x13, 0x9a, 0xcd, 0xe0, 0xf6, 0xc5, 0x56, 0x98, - 0x74, 0xc4, 0xc6, 0xac, 0xdf, 0x4c, 0x50, 0x10, 0x6c, 0x60, 0xd9, 0x7f, 0xbb, 0xc0, 0x67, 0xa0, - 0xb8, 0xa4, 0x7c, 0x29, 0x93, 0xa0, 0x7b, 0xf0, 0xfb, 0xbd, 0xcf, 0x03, 0xb8, 0xea, 0xf1, 0xa5, - 0x7c, 0x1e, 0xcf, 0xd7, 0x8f, 0x39, 0x99, 0x2f, 0xba, 0xcb, 0x32, 0x6c, 0xf0, 0x4b, 0x09, 0xa6, - 0xe2, 0xa1, 0x82, 0x29, 0xb5, 0x46, 0x47, 0x0e, 0x59, 0xa3, 0x7f, 0x6e, 0x41, 0x4a, 0xbd, 0x40, - 0x21, 0x94, 0x68, 0x73, 0x3b, 0xf9, 0xbc, 0x2b, 0x65, 0x92, 0xa6, 0x72, 0x46, 0x4c, 0x7b, 0xf6, - 0x13, 0x73, 0x46, 0xa8, 0x29, 0xee, 0x32, 0x0b, 0x79, 0xbc, 0x7d, 0x66, 0x32, 0xbc, 0x1c, 0x04, - 0xbb, 0xfc, 0x0a, 0x44, 0xdf, 0x8b, 0xda, 0x2f, 0xc1, 0x74, 0x57, 0xa3, 0x58, 0x2e, 0xde, 0x40, - 0x3e, 0xa6, 0x65, 0x4c, 0x57, 0x16, 0x50, 0x84, 0x39, 0xcc, 0x7e, 0xd7, 0x82, 0x93, 0x59, 0xf2, - 0xe8, 0x3b, 0x16, 0x4c, 0xc7, 0x59, 0x7a, 0xc7, 0x35, 0x76, 0xca, 0xcf, 0xa7, 0x0b, 0x84, 0xbb, - 0x1b, 0x61, 0xff, 0x3f, 0x31, 0xf9, 0x6f, 0x7a, 0x7e, 0x2d, 0xb8, 0xad, 0x76, 0x79, 0xab, 0xef, - 0x2e, 0x4f, 0xd7, 0xa3, 0xbb, 0x43, 0x6a, 0xed, 0x66, 0x57, 0x24, 0xd3, 0xa6, 0x28, 0xc7, 0x0a, - 0x23, 0xf5, 0x72, 0x75, 0xf1, 0xd0, 0x97, 0xab, 0x5f, 0x84, 0x09, 0xf3, 0xc1, 0x38, 0x31, 0x2f, - 0x99, 0x76, 0x6b, 0xbe, 0x2d, 0x87, 0x53, 0x58, 0x99, 0x27, 0x83, 0x4b, 0x87, 0x3e, 0x19, 0xfc, - 0x2c, 0x94, 0xc5, 0xf3, 0xb7, 0xd2, 0x1b, 0x8e, 0x87, 0x49, 0x89, 0x32, 0xac, 0xa0, 0x54, 0x9a, - 0xb4, 0x1c, 0xbf, 0xed, 0x34, 0xe9, 0x08, 0x89, 0xd8, 0x4e, 0xb5, 0x0c, 0xd7, 0x14, 0x04, 0x1b, - 0x58, 0xb4, 0xc7, 0x89, 0xd7, 0x22, 0xaf, 0x05, 0xbe, 0xf4, 0x23, 0xd1, 0x07, 0xc4, 0xa2, 0x1c, - 0x2b, 0x0c, 0xfb, 0xbf, 0x5a, 0x90, 0x7d, 0xbb, 0x33, 0x75, 0x64, 0x60, 0x1d, 0x1a, 0x4f, 0x9a, - 0x8e, 0x46, 0x2b, 0x0c, 0x14, 0x8d, 0x66, 0x06, 0x8a, 0x15, 0xef, 0x19, 0x28, 0xf6, 0x13, 0xfa, - 0x45, 0x07, 0x1e, 0x51, 0x36, 0xde, 0xeb, 0x35, 0x07, 0x64, 0xc3, 0xa8, 0xeb, 0xa8, 0x8c, 0x03, - 0x13, 0x5c, 0x11, 0x5f, 0x5c, 0x60, 0x48, 0x02, 0x52, 0xdd, 0x7e, 0xef, 0x87, 0xe7, 0x3e, 0xf4, - 0xfd, 0x1f, 0x9e, 0xfb, 0xd0, 0x1f, 0xff, 0xf0, 0xdc, 0x87, 0xbe, 0x78, 0xe7, 0x9c, 0xf5, 0xde, - 0x9d, 0x73, 0xd6, 0xf7, 0xef, 0x9c, 0xb3, 0xfe, 0xf8, 0xce, 0x39, 0xeb, 0xfd, 0x3b, 0xe7, 0xac, - 0x6f, 0xff, 0xa7, 0x73, 0x1f, 0x7a, 0xad, 0xa7, 0xdf, 0x0f, 0xfd, 0xf1, 0xbc, 0x5b, 0x9b, 0xdf, - 0xbb, 0xc0, 0x5c, 0x4f, 0xe8, 0x6a, 0x98, 0x37, 0xa6, 0xc0, 0xbc, 0x5c, 0x0d, 0xff, 0x3f, 0x00, - 0x00, 0xff, 0xff, 0x1e, 0x5d, 0x63, 0x46, 0x8d, 0xc2, 0x00, 0x00, + 0x75, 0x98, 0x66, 0x17, 0x1f, 0xbb, 0x0f, 0x1f, 0x77, 0xe8, 0xbb, 0x23, 0xc1, 0x13, 0x79, 0xb8, + 0x1a, 0x96, 0x29, 0x3a, 0x22, 0x81, 0xf0, 0x44, 0x29, 0x8c, 0x69, 0x53, 0xc6, 0x02, 0x77, 0x38, + 0xdc, 0x01, 0x07, 0xb0, 0x81, 0xbb, 0x93, 0x48, 0x53, 0xd2, 0x60, 0xb6, 0x77, 0x31, 0x87, 0xd9, + 0x99, 0xe1, 0xcc, 0x2c, 0x0e, 0x4b, 0xcb, 0xb2, 0x14, 0x7f, 0x29, 0x91, 0x28, 0x2a, 0xf4, 0x8f, + 0xd8, 0x95, 0xc4, 0x56, 0xec, 0x94, 0xab, 0x5c, 0x09, 0x2b, 0x4e, 0xe5, 0x47, 0xe2, 0x4a, 0xa5, + 0x2a, 0xb6, 0x93, 0x2a, 0xa6, 0xf8, 0x23, 0xaa, 0x4a, 0xca, 0x72, 0x62, 0x07, 0xa6, 0x2e, 0x95, + 0x72, 0xe2, 0xaa, 0x38, 0x95, 0x4a, 0xfe, 0xe4, 0x2a, 0x3f, 0x5c, 0xfd, 0xdd, 0x33, 0xbb, 0x7b, + 0x58, 0x00, 0x83, 0x23, 0xa5, 0xe2, 0xbf, 0xdd, 0x7e, 0xaf, 0xdf, 0xeb, 0xee, 0xe9, 0x7e, 0xfd, + 0xfa, 0xf5, 0x7b, 0xaf, 0x61, 0xa5, 0xe9, 0xa5, 0xdb, 0xed, 0xad, 0x59, 0x37, 0x6c, 0xcd, 0x39, + 0x71, 0x33, 0x8c, 0xe2, 0xf0, 0x0e, 0xfb, 0xf1, 0xac, 0x5b, 0x9f, 0xdb, 0xbd, 0x34, 0x17, 0xed, + 0x34, 0xe7, 0x9c, 0xc8, 0x4b, 0xe6, 0x9c, 0x28, 0xf2, 0x3d, 0xd7, 0x49, 0xbd, 0x30, 0x98, 0xdb, + 0x7d, 0xce, 0xf1, 0xa3, 0x6d, 0xe7, 0xb9, 0xb9, 0x26, 0x09, 0x48, 0xec, 0xa4, 0xa4, 0x3e, 0x1b, + 0xc5, 0x61, 0x1a, 0xa2, 0x1f, 0xd7, 0xd4, 0x66, 0x25, 0x35, 0xf6, 0xe3, 0x8b, 0x6e, 0x7d, 0x76, + 0xf7, 0xd2, 0x6c, 0xb4, 0xd3, 0x9c, 0xa5, 0xd4, 0x66, 0x0d, 0x6a, 0xb3, 0x92, 0xda, 0xf9, 0x67, + 0x8d, 0xb6, 0x34, 0xc3, 0x66, 0x38, 0xc7, 0x88, 0x6e, 0xb5, 0x1b, 0xec, 0x1f, 0xfb, 0xc3, 0x7e, + 0x71, 0x66, 0xe7, 0xed, 0x9d, 0x17, 0x92, 0x59, 0x2f, 0xa4, 0xcd, 0x9b, 0x73, 0xc3, 0x98, 0xcc, + 0xed, 0x76, 0x35, 0xe8, 0xfc, 0x55, 0x8d, 0x43, 0xf6, 0x52, 0x12, 0x24, 0x5e, 0x18, 0x24, 0xcf, + 0xd2, 0x26, 0x90, 0x78, 0x97, 0xc4, 0x66, 0xf7, 0x0c, 0x84, 0x5e, 0x94, 0x9e, 0xd7, 0x94, 0x5a, + 0x8e, 0xbb, 0xed, 0x05, 0x24, 0xee, 0xe8, 0xea, 0x2d, 0x92, 0x3a, 0xbd, 0x6a, 0xcd, 0xf5, 0xab, + 0x15, 0xb7, 0x83, 0xd4, 0x6b, 0x91, 0xae, 0x0a, 0x9f, 0x39, 0xa8, 0x42, 0xe2, 0x6e, 0x93, 0x96, + 0xd3, 0x55, 0xef, 0x53, 0xfd, 0xea, 0xb5, 0x53, 0xcf, 0x9f, 0xf3, 0x82, 0x34, 0x49, 0xe3, 0x7c, + 0x25, 0xfb, 0x75, 0x98, 0x98, 0xbf, 0xbd, 0x31, 0xdf, 0x4e, 0xb7, 0x17, 0xc2, 0xa0, 0xe1, 0x35, + 0xd1, 0xa7, 0x61, 0xcc, 0xf5, 0xdb, 0x49, 0x4a, 0xe2, 0x1b, 0x4e, 0x8b, 0x4c, 0x5b, 0x17, 0xad, + 0xa7, 0xab, 0xb5, 0x33, 0xef, 0xee, 0xcf, 0x7c, 0xec, 0xde, 0xfe, 0xcc, 0xd8, 0x82, 0x06, 0x61, + 0x13, 0x0f, 0xfd, 0x28, 0x8c, 0xc6, 0xa1, 0x4f, 0xe6, 0xf1, 0x8d, 0xe9, 0x12, 0xab, 0x72, 0x4a, + 0x54, 0x19, 0xc5, 0xbc, 0x18, 0x4b, 0xb8, 0xfd, 0x87, 0x25, 0x80, 0xf9, 0x28, 0x5a, 0x8f, 0xc3, + 0x3b, 0xc4, 0x4d, 0xd1, 0x97, 0xa0, 0x42, 0x87, 0xae, 0xee, 0xa4, 0x0e, 0xe3, 0x36, 0x76, 0xe9, + 0xaf, 0xce, 0xf2, 0x9e, 0xcc, 0x9a, 0x3d, 0xd1, 0x13, 0x87, 0x62, 0xcf, 0xee, 0x3e, 0x37, 0xbb, + 0xb6, 0x45, 0xeb, 0xaf, 0x92, 0xd4, 0xa9, 0x21, 0xc1, 0x0c, 0x74, 0x19, 0x56, 0x54, 0x51, 0x00, + 0x43, 0x49, 0x44, 0x5c, 0xd6, 0xb0, 0xb1, 0x4b, 0x2b, 0xb3, 0xc7, 0x99, 0xa1, 0xb3, 0xba, 0xe5, + 0x1b, 0x11, 0x71, 0x6b, 0xe3, 0x82, 0xf3, 0x10, 0xfd, 0x87, 0x19, 0x1f, 0xb4, 0x0b, 0x23, 0x49, + 0xea, 0xa4, 0xed, 0x64, 0xba, 0xcc, 0x38, 0xde, 0x28, 0x8c, 0x23, 0xa3, 0x5a, 0x9b, 0x14, 0x3c, + 0x47, 0xf8, 0x7f, 0x2c, 0xb8, 0xd9, 0xff, 0xc5, 0x82, 0x49, 0x8d, 0xbc, 0xe2, 0x25, 0x29, 0xfa, + 0xa9, 0xae, 0xc1, 0x9d, 0x1d, 0x6c, 0x70, 0x69, 0x6d, 0x36, 0xb4, 0xa7, 0x05, 0xb3, 0x8a, 0x2c, + 0x31, 0x06, 0xb6, 0x05, 0xc3, 0x5e, 0x4a, 0x5a, 0xc9, 0x74, 0xe9, 0x62, 0xf9, 0xe9, 0xb1, 0x4b, + 0x57, 0x8b, 0xea, 0x67, 0x6d, 0x42, 0x30, 0x1d, 0x5e, 0xa6, 0xe4, 0x31, 0xe7, 0x62, 0xff, 0xf6, + 0xb8, 0xd9, 0x3f, 0x3a, 0xe0, 0xe8, 0x39, 0x18, 0x4b, 0xc2, 0x76, 0xec, 0x12, 0x4c, 0xa2, 0x30, + 0x99, 0xb6, 0x2e, 0x96, 0xe9, 0xd4, 0xa3, 0x33, 0x75, 0x43, 0x17, 0x63, 0x13, 0x07, 0x7d, 0xcb, + 0x82, 0xf1, 0x3a, 0x49, 0x52, 0x2f, 0x60, 0xfc, 0x65, 0xe3, 0x37, 0x8f, 0xdd, 0x78, 0x59, 0xb8, + 0xa8, 0x89, 0xd7, 0xce, 0x8a, 0x8e, 0x8c, 0x1b, 0x85, 0x09, 0xce, 0xf0, 0xa7, 0x2b, 0xae, 0x4e, + 0x12, 0x37, 0xf6, 0x22, 0xfa, 0x9f, 0xcd, 0x19, 0x63, 0xc5, 0x2d, 0x6a, 0x10, 0x36, 0xf1, 0x50, + 0x00, 0xc3, 0x74, 0x45, 0x25, 0xd3, 0x43, 0xac, 0xfd, 0xcb, 0xc7, 0x6b, 0xbf, 0x18, 0x54, 0xba, + 0x58, 0xf5, 0xe8, 0xd3, 0x7f, 0x09, 0xe6, 0x6c, 0xd0, 0x9b, 0x16, 0x4c, 0x8b, 0x15, 0x8f, 0x09, + 0x1f, 0xd0, 0xdb, 0xdb, 0x5e, 0x4a, 0x7c, 0x2f, 0x49, 0xa7, 0x87, 0x59, 0x1b, 0xe6, 0x06, 0x9b, + 0x5b, 0x4b, 0x71, 0xd8, 0x8e, 0xae, 0x7b, 0x41, 0xbd, 0x76, 0x51, 0x70, 0x9a, 0x5e, 0xe8, 0x43, + 0x18, 0xf7, 0x65, 0x89, 0x7e, 0xd9, 0x82, 0xf3, 0x81, 0xd3, 0x22, 0x49, 0xe4, 0xd0, 0x4f, 0xcb, + 0xc1, 0x35, 0xdf, 0x71, 0x77, 0x58, 0x8b, 0x46, 0x8e, 0xd6, 0x22, 0x5b, 0xb4, 0xe8, 0xfc, 0x8d, + 0xbe, 0xa4, 0xf1, 0x03, 0xd8, 0xa2, 0xdf, 0xb4, 0x60, 0x2a, 0x8c, 0xa3, 0x6d, 0x27, 0x20, 0x75, + 0x09, 0x4d, 0xa6, 0x47, 0xd9, 0xd2, 0xfb, 0xc2, 0xf1, 0x3e, 0xd1, 0x5a, 0x9e, 0xec, 0x6a, 0x18, + 0x78, 0x69, 0x18, 0x6f, 0x90, 0x34, 0xf5, 0x82, 0x66, 0x52, 0x3b, 0x77, 0x6f, 0x7f, 0x66, 0xaa, + 0x0b, 0x0b, 0x77, 0xb7, 0x07, 0xfd, 0x34, 0x8c, 0x25, 0x9d, 0xc0, 0xbd, 0xed, 0x05, 0xf5, 0xf0, + 0x6e, 0x32, 0x5d, 0x29, 0x62, 0xf9, 0x6e, 0x28, 0x82, 0x62, 0x01, 0x6a, 0x06, 0xd8, 0xe4, 0xd6, + 0xfb, 0xc3, 0xe9, 0xa9, 0x54, 0x2d, 0xfa, 0xc3, 0xe9, 0xc9, 0xf4, 0x00, 0xb6, 0xe8, 0x97, 0x2c, + 0x98, 0x48, 0xbc, 0x66, 0xe0, 0xa4, 0xed, 0x98, 0x5c, 0x27, 0x9d, 0x64, 0x1a, 0x58, 0x43, 0xae, + 0x1d, 0x73, 0x54, 0x0c, 0x92, 0xb5, 0x73, 0xa2, 0x8d, 0x13, 0x66, 0x69, 0x82, 0xb3, 0x7c, 0x7b, + 0x2d, 0x34, 0x3d, 0xad, 0xc7, 0x8a, 0x5d, 0x68, 0x7a, 0x52, 0xf7, 0x65, 0x89, 0x7e, 0x12, 0x4e, + 0xf3, 0x22, 0x35, 0xb2, 0xc9, 0xf4, 0x38, 0x13, 0xb4, 0x67, 0xef, 0xed, 0xcf, 0x9c, 0xde, 0xc8, + 0xc1, 0x70, 0x17, 0x36, 0x7a, 0x1d, 0x66, 0x22, 0x12, 0xb7, 0xbc, 0x74, 0x2d, 0xf0, 0x3b, 0x52, + 0x7c, 0xbb, 0x61, 0x44, 0xea, 0xa2, 0x39, 0xc9, 0xf4, 0xc4, 0x45, 0xeb, 0xe9, 0x4a, 0xed, 0x13, + 0xa2, 0x99, 0x33, 0xeb, 0x0f, 0x46, 0xc7, 0x07, 0xd1, 0xb3, 0xff, 0x5d, 0x09, 0x4e, 0xe7, 0x37, + 0x4e, 0xf4, 0x5b, 0x16, 0x9c, 0xba, 0x73, 0x37, 0xdd, 0x0c, 0x77, 0x48, 0x90, 0xd4, 0x3a, 0x54, + 0xbc, 0xb1, 0x2d, 0x63, 0xec, 0x92, 0x5b, 0xec, 0x16, 0x3d, 0x7b, 0x2d, 0xcb, 0xe5, 0x72, 0x90, + 0xc6, 0x9d, 0xda, 0xa3, 0xa2, 0x77, 0xa7, 0xae, 0xdd, 0xde, 0x34, 0xa1, 0x38, 0xdf, 0xa8, 0xf3, + 0xdf, 0xb0, 0xe0, 0x6c, 0x2f, 0x12, 0xe8, 0x34, 0x94, 0x77, 0x48, 0x87, 0x6b, 0x65, 0x98, 0xfe, + 0x44, 0xaf, 0xc1, 0xf0, 0xae, 0xe3, 0xb7, 0x89, 0xd0, 0x6e, 0x96, 0x8e, 0xd7, 0x11, 0xd5, 0x32, + 0xcc, 0xa9, 0xfe, 0x58, 0xe9, 0x05, 0xcb, 0xfe, 0xf7, 0x65, 0x18, 0x33, 0xf6, 0xb7, 0x87, 0xa0, + 0xb1, 0x85, 0x19, 0x8d, 0x6d, 0xb5, 0xb0, 0xad, 0xb9, 0xaf, 0xca, 0x76, 0x37, 0xa7, 0xb2, 0xad, + 0x15, 0xc7, 0xf2, 0x81, 0x3a, 0x1b, 0x4a, 0xa1, 0x1a, 0x46, 0x54, 0x23, 0xa7, 0x5b, 0xff, 0x50, + 0x11, 0x9f, 0x70, 0x4d, 0x92, 0xab, 0x4d, 0xdc, 0xdb, 0x9f, 0xa9, 0xaa, 0xbf, 0x58, 0x33, 0xb2, + 0xbf, 0x67, 0xc1, 0x59, 0xa3, 0x8d, 0x0b, 0x61, 0x50, 0xf7, 0xd8, 0xa7, 0xbd, 0x08, 0x43, 0x69, + 0x27, 0x92, 0x6a, 0xbf, 0x1a, 0xa9, 0xcd, 0x4e, 0x44, 0x30, 0x83, 0x50, 0x45, 0xbf, 0x45, 0x92, + 0xc4, 0x69, 0x92, 0xbc, 0xa2, 0xbf, 0xca, 0x8b, 0xb1, 0x84, 0xa3, 0x18, 0x90, 0xef, 0x24, 0xe9, + 0x66, 0xec, 0x04, 0x09, 0x23, 0xbf, 0xe9, 0xb5, 0x88, 0x18, 0xe0, 0xbf, 0x32, 0xd8, 0x8c, 0xa1, + 0x35, 0x6a, 0x8f, 0xdc, 0xdb, 0x9f, 0x41, 0x2b, 0x5d, 0x94, 0x70, 0x0f, 0xea, 0xf6, 0x2f, 0x5b, + 0xf0, 0x48, 0x6f, 0x5d, 0x0c, 0x3d, 0x05, 0x23, 0xfc, 0xc8, 0x27, 0x7a, 0xa7, 0x3f, 0x09, 0x2b, + 0xc5, 0x02, 0x8a, 0xe6, 0xa0, 0xaa, 0xf6, 0x09, 0xd1, 0xc7, 0x29, 0x81, 0x5a, 0xd5, 0x9b, 0x8b, + 0xc6, 0xa1, 0x83, 0x46, 0xff, 0x08, 0xcd, 0x4d, 0x0d, 0x1a, 0x3b, 0x24, 0x31, 0x88, 0xfd, 0xa7, + 0x16, 0x9c, 0x32, 0x5a, 0xf5, 0x10, 0x54, 0xf3, 0x20, 0xab, 0x9a, 0x2f, 0x17, 0x36, 0x9f, 0xfb, + 0xe8, 0xe6, 0x6f, 0x5a, 0x70, 0xde, 0xc0, 0x5a, 0x75, 0x52, 0x77, 0xfb, 0xf2, 0x5e, 0x14, 0x93, + 0x84, 0x1e, 0xa7, 0xd1, 0x13, 0x86, 0xdc, 0xaa, 0x8d, 0x09, 0x0a, 0xe5, 0xeb, 0xa4, 0xc3, 0x85, + 0xd8, 0x33, 0x50, 0xe1, 0x93, 0x33, 0x8c, 0xc5, 0x88, 0xab, 0xbe, 0xad, 0x89, 0x72, 0xac, 0x30, + 0x90, 0x0d, 0x23, 0x4c, 0x38, 0xd1, 0xc5, 0x4a, 0xb7, 0x21, 0xa0, 0x1f, 0xf1, 0x16, 0x2b, 0xc1, + 0x02, 0x62, 0xdf, 0x2b, 0xb1, 0xb3, 0x82, 0x5a, 0x85, 0xe4, 0x61, 0x1c, 0x34, 0xe3, 0x8c, 0xd8, + 0x5a, 0x2f, 0x4e, 0x86, 0x90, 0xfe, 0x87, 0xcd, 0x37, 0x72, 0x92, 0x0b, 0x17, 0xca, 0xf5, 0xc1, + 0x07, 0xce, 0xdf, 0x2b, 0xc1, 0x4c, 0xb6, 0x42, 0x97, 0xe0, 0xa3, 0xa7, 0x1b, 0x83, 0x51, 0xde, + 0x9e, 0x60, 0xe0, 0x63, 0x13, 0xaf, 0x8f, 0xec, 0x28, 0x9d, 0xa4, 0xec, 0x30, 0x45, 0x5b, 0xf9, + 0x00, 0xd1, 0xf6, 0x94, 0x1a, 0xf5, 0xa1, 0x9c, 0x2c, 0xc9, 0x8a, 0xf7, 0x8b, 0x30, 0x94, 0xa4, + 0x24, 0x9a, 0x1e, 0xce, 0x8a, 0x86, 0x8d, 0x94, 0x44, 0x98, 0x41, 0xec, 0x3f, 0x2f, 0xc1, 0xa3, + 0xd9, 0x31, 0xd4, 0xd2, 0xf8, 0xb3, 0x19, 0x69, 0xfc, 0x49, 0x53, 0x1a, 0xdf, 0xdf, 0x9f, 0xf9, + 0x78, 0x9f, 0x6a, 0x3f, 0x30, 0xc2, 0x1a, 0x2d, 0xe5, 0x46, 0x71, 0x2e, 0x3b, 0x8a, 0xf7, 0xf7, + 0x67, 0x9e, 0xe8, 0xd3, 0xc7, 0xdc, 0x30, 0x3f, 0x05, 0x23, 0x31, 0x71, 0x92, 0x30, 0x10, 0x03, + 0xad, 0x3e, 0x07, 0x66, 0xa5, 0x58, 0x40, 0xed, 0x3f, 0xad, 0xe4, 0x07, 0x7b, 0x89, 0xdb, 0xc3, + 0xc2, 0x18, 0x79, 0x30, 0xc4, 0x34, 0x6c, 0x2e, 0x1a, 0xae, 0x1f, 0x6f, 0x19, 0x51, 0x89, 0xac, + 0x48, 0xd7, 0x2a, 0xf4, 0xab, 0xd1, 0x22, 0xcc, 0x58, 0xa0, 0x3d, 0xa8, 0xb8, 0x52, 0xf1, 0x2d, + 0x15, 0x61, 0x22, 0x12, 0x6a, 0xaf, 0xe6, 0x38, 0x4e, 0x45, 0xa7, 0xd2, 0x96, 0x15, 0x37, 0x44, + 0xa0, 0xdc, 0xf4, 0x52, 0xf1, 0x59, 0x8f, 0x79, 0xb4, 0x59, 0xf2, 0x8c, 0x2e, 0x8e, 0x52, 0x79, + 0xbe, 0xe4, 0xa5, 0x98, 0xd2, 0x47, 0xbf, 0x60, 0xc1, 0x58, 0xe2, 0xb6, 0xd6, 0xe3, 0x70, 0xd7, + 0xab, 0x93, 0x58, 0x28, 0x36, 0xc7, 0x14, 0x4d, 0x1b, 0x0b, 0xab, 0x92, 0xa0, 0xe6, 0xcb, 0x8f, + 0x9a, 0x1a, 0x82, 0x4d, 0xbe, 0x54, 0xe1, 0x7f, 0x54, 0xf4, 0x7d, 0x91, 0xb8, 0x1e, 0xdd, 0x8a, + 0xe4, 0xf9, 0x86, 0xcd, 0x94, 0x63, 0x2b, 0x7a, 0x8b, 0x6d, 0x77, 0x87, 0xae, 0x37, 0xdd, 0xa0, + 0x8f, 0xdf, 0xdb, 0x9f, 0x79, 0x74, 0xa1, 0x37, 0x4f, 0xdc, 0xaf, 0x31, 0x6c, 0xc0, 0xa2, 0xb6, + 0xef, 0x63, 0xf2, 0x7a, 0x9b, 0x30, 0xeb, 0x45, 0x01, 0x03, 0xb6, 0xae, 0x09, 0xe6, 0x06, 0xcc, + 0x80, 0x60, 0x93, 0x2f, 0x7a, 0x1d, 0x46, 0x5a, 0x4e, 0x1a, 0x7b, 0x7b, 0xc2, 0x64, 0x71, 0x4c, + 0xd5, 0x7b, 0x95, 0xd1, 0xd2, 0xcc, 0xd9, 0x4e, 0xcd, 0x0b, 0xb1, 0x60, 0x84, 0x5a, 0x30, 0xdc, + 0x22, 0x71, 0x93, 0x4c, 0x57, 0x8a, 0x30, 0xcf, 0xae, 0x52, 0x52, 0x9a, 0x61, 0x95, 0x2a, 0x2a, + 0xac, 0x0c, 0x73, 0x2e, 0xe8, 0x35, 0xa8, 0x24, 0xc4, 0x27, 0x2e, 0x55, 0x35, 0xaa, 0x8c, 0xe3, + 0xa7, 0x06, 0x54, 0xbb, 0x9c, 0x2d, 0xe2, 0x6f, 0x88, 0xaa, 0x7c, 0x81, 0xc9, 0x7f, 0x58, 0x91, + 0xb4, 0xff, 0x9b, 0x05, 0x28, 0x2b, 0x61, 0x1e, 0x82, 0xb2, 0xf7, 0x7a, 0x56, 0xd9, 0x5b, 0x29, + 0x52, 0x05, 0xe8, 0xa3, 0xef, 0xbd, 0x5b, 0x81, 0x9c, 0x6c, 0xbe, 0x41, 0x92, 0x94, 0xd4, 0x3f, + 0x92, 0xa7, 0x1f, 0xc9, 0xd3, 0x8f, 0xe4, 0xa9, 0x92, 0xa7, 0x5b, 0x39, 0x79, 0xfa, 0x92, 0xb1, + 0xea, 0xf5, 0x65, 0xe3, 0x17, 0xd5, 0x6d, 0xa4, 0xd9, 0x02, 0x03, 0x81, 0x4a, 0x82, 0x6b, 0x1b, + 0x6b, 0x37, 0x7a, 0x0a, 0xd0, 0x2f, 0x66, 0x05, 0xe8, 0x71, 0x59, 0x3c, 0x74, 0x91, 0xf9, 0x77, + 0x4b, 0xf0, 0x58, 0x56, 0x94, 0xe0, 0xd0, 0xf7, 0xc3, 0x76, 0x4a, 0xb5, 0x64, 0xf4, 0x6b, 0x16, + 0x9c, 0x6e, 0x65, 0x4f, 0x93, 0x89, 0x30, 0xda, 0x7d, 0xae, 0x30, 0x39, 0x97, 0x3b, 0xae, 0xd6, + 0xa6, 0x85, 0xcc, 0x3b, 0x9d, 0x03, 0x24, 0xb8, 0xab, 0x2d, 0xe8, 0x35, 0xa8, 0xb6, 0x9c, 0xbd, + 0x9b, 0x51, 0xdd, 0x49, 0xe5, 0x01, 0xa5, 0xff, 0xb9, 0xb2, 0x9d, 0x7a, 0xfe, 0x2c, 0xbf, 0x8a, + 0x9d, 0x5d, 0x0e, 0xd2, 0xb5, 0x78, 0x23, 0x8d, 0xbd, 0xa0, 0xc9, 0x4d, 0x35, 0xab, 0x92, 0x0c, + 0xd6, 0x14, 0xed, 0xbf, 0x6f, 0xe5, 0x05, 0xad, 0x1a, 0x9d, 0xd8, 0x49, 0x49, 0xb3, 0x83, 0xbe, + 0x0c, 0xc3, 0xf4, 0x24, 0x21, 0x47, 0xe5, 0x76, 0x91, 0xd2, 0xdf, 0xf8, 0x12, 0x7a, 0x23, 0xa0, + 0xff, 0x12, 0xcc, 0x99, 0xda, 0xef, 0x0d, 0xe5, 0x37, 0x3c, 0x76, 0x31, 0x77, 0x09, 0xa0, 0x19, + 0x6e, 0x92, 0x56, 0xe4, 0xd3, 0x61, 0xb1, 0x98, 0x75, 0x57, 0x1d, 0x9e, 0x97, 0x14, 0x04, 0x1b, + 0x58, 0xe8, 0x6f, 0x5a, 0x00, 0x4d, 0xb9, 0xb0, 0xe4, 0x66, 0x76, 0xb3, 0xc8, 0xee, 0xe8, 0x65, + 0xab, 0xdb, 0xa2, 0x18, 0x62, 0x83, 0x39, 0xf2, 0xa1, 0x92, 0xca, 0xd6, 0x97, 0x0b, 0x59, 0x57, + 0x6a, 0x03, 0x57, 0x7d, 0x57, 0x1c, 0xd0, 0x2f, 0x5a, 0x00, 0x49, 0x27, 0x70, 0xd7, 0x43, 0xdf, + 0x73, 0x3b, 0x42, 0xbc, 0xdf, 0x2a, 0xf4, 0x24, 0xaf, 0xa8, 0xd7, 0x26, 0x69, 0xb7, 0xf5, 0x7f, + 0x6c, 0x70, 0x46, 0x5f, 0x81, 0x4a, 0x22, 0xe6, 0x95, 0x10, 0xe8, 0x9b, 0xc5, 0xda, 0x13, 0x38, + 0x6d, 0x21, 0x0b, 0xc4, 0x3f, 0xac, 0x78, 0xda, 0xef, 0x95, 0x32, 0x86, 0x49, 0x65, 0x82, 0x60, + 0x73, 0xc3, 0x95, 0xa7, 0x3f, 0x39, 0xd5, 0x0b, 0x9d, 0x1b, 0xea, 0x6c, 0xa9, 0xe7, 0x86, 0x2a, + 0x4a, 0xb0, 0xc1, 0x9c, 0xee, 0x82, 0x53, 0x4e, 0xde, 0xd0, 0x21, 0xa6, 0xeb, 0x6b, 0x45, 0x36, + 0xa9, 0xdb, 0x8c, 0xfc, 0x98, 0x68, 0xda, 0x54, 0x17, 0x08, 0x77, 0x37, 0xc9, 0x7e, 0x2f, 0x6b, + 0x0c, 0x35, 0x3e, 0xc0, 0x00, 0x86, 0xde, 0x6f, 0x59, 0x30, 0x16, 0x87, 0xbe, 0xef, 0x05, 0x4d, + 0x3a, 0x59, 0x84, 0x68, 0x7b, 0xf5, 0x44, 0xa4, 0x8b, 0x98, 0x15, 0x6c, 0x2f, 0xc5, 0x9a, 0x27, + 0x36, 0x1b, 0x60, 0x7f, 0xcd, 0x82, 0xe9, 0x7e, 0x93, 0x1a, 0x11, 0xf8, 0x38, 0x15, 0xc9, 0x74, + 0x25, 0xaa, 0x6b, 0xce, 0xb5, 0x60, 0x91, 0xf8, 0x44, 0x99, 0x9d, 0x2a, 0xb5, 0x27, 0x45, 0x37, + 0x3f, 0xbe, 0xde, 0x1f, 0x15, 0x3f, 0x88, 0x8e, 0xfd, 0x5b, 0x23, 0x79, 0x8b, 0xd7, 0x26, 0x89, + 0x5b, 0x5e, 0xe0, 0xf8, 0x1f, 0x29, 0xbe, 0x1f, 0x29, 0xbe, 0x1f, 0x29, 0xbe, 0xf2, 0x8f, 0x7d, + 0x6f, 0x18, 0x32, 0x32, 0x8a, 0xb7, 0xee, 0x47, 0x61, 0x34, 0x26, 0x51, 0x78, 0x13, 0xaf, 0x08, + 0xc1, 0xa3, 0xbd, 0xc4, 0x78, 0x31, 0x96, 0x70, 0x2a, 0xa0, 0x22, 0x27, 0xdd, 0x16, 0x76, 0x4b, + 0x25, 0xa0, 0xd6, 0x9d, 0x74, 0x1b, 0x33, 0x08, 0x7a, 0x09, 0x26, 0x53, 0x27, 0x6e, 0x92, 0x14, + 0x93, 0x5d, 0x36, 0x08, 0xc2, 0x8a, 0xf8, 0x88, 0xc0, 0x9d, 0xdc, 0xcc, 0x40, 0x71, 0x0e, 0x1b, + 0xbd, 0x0e, 0x43, 0xdb, 0xc4, 0x6f, 0x09, 0xcd, 0x7c, 0xa3, 0x38, 0xc1, 0xc6, 0xfa, 0x7a, 0x95, + 0xf8, 0x2d, 0xbe, 0x5e, 0xe9, 0x2f, 0xcc, 0x58, 0xd1, 0xaf, 0x53, 0xdd, 0x69, 0x27, 0x69, 0xd8, + 0xf2, 0xde, 0x90, 0xfa, 0xfa, 0xe7, 0x0a, 0x66, 0x7c, 0x5d, 0xd2, 0xe7, 0x4a, 0xa5, 0xfa, 0x8b, + 0x35, 0x67, 0xd6, 0x8e, 0xba, 0x17, 0x33, 0xfd, 0xbb, 0x33, 0x0d, 0x27, 0xd2, 0x8e, 0x45, 0x49, + 0x9f, 0xb7, 0x43, 0xfd, 0xc5, 0x9a, 0x33, 0xea, 0xc0, 0x48, 0xe4, 0xb7, 0x9b, 0x5e, 0x30, 0x3d, + 0xc6, 0xda, 0x70, 0xb3, 0xe0, 0x36, 0xac, 0x33, 0xe2, 0xfc, 0xd4, 0xc4, 0x7f, 0x63, 0xc1, 0x10, + 0x3d, 0x09, 0xc3, 0xee, 0xb6, 0x13, 0xa7, 0xd3, 0xe3, 0x6c, 0xd2, 0x28, 0xe5, 0x76, 0x81, 0x16, + 0x62, 0x0e, 0x43, 0x4f, 0x40, 0x39, 0x26, 0x0d, 0xe6, 0x9c, 0x60, 0x5c, 0x5b, 0x61, 0xd2, 0xc0, + 0xb4, 0xdc, 0xfe, 0x07, 0xa5, 0xcc, 0xa5, 0x57, 0xae, 0xdf, 0x7c, 0xb6, 0xbb, 0xed, 0x38, 0x91, + 0x0a, 0xb0, 0x31, 0xdb, 0x59, 0x31, 0x96, 0x70, 0xf4, 0x35, 0x0b, 0x46, 0xef, 0x24, 0x61, 0x10, + 0x90, 0x54, 0x08, 0xf2, 0x5b, 0x05, 0x0f, 0xc5, 0x35, 0x4e, 0x5d, 0xb7, 0x41, 0x14, 0x60, 0xc9, + 0x97, 0x36, 0x97, 0xec, 0xb9, 0x7e, 0xbb, 0xde, 0x75, 0xfd, 0x71, 0x99, 0x17, 0x63, 0x09, 0xa7, + 0xa8, 0x5e, 0xc0, 0x51, 0x87, 0xb2, 0xa8, 0xcb, 0x81, 0x40, 0x15, 0x70, 0xfb, 0x77, 0x86, 0xe1, + 0x5c, 0xcf, 0xc5, 0x81, 0x66, 0x01, 0xd8, 0x65, 0xdd, 0x15, 0xcf, 0x27, 0xd2, 0x75, 0x8f, 0xe9, + 0xa6, 0xb7, 0x54, 0x29, 0x36, 0x30, 0xd0, 0xcf, 0x02, 0x44, 0x4e, 0xec, 0xb4, 0x88, 0xd8, 0xee, + 0xca, 0xc7, 0xdf, 0x5d, 0x69, 0x3b, 0xd6, 0x25, 0x4d, 0xad, 0xf7, 0xa9, 0xa2, 0x04, 0x1b, 0x2c, + 0xd1, 0xa7, 0x61, 0x2c, 0x26, 0x3e, 0x71, 0x12, 0xe6, 0xdb, 0x92, 0x77, 0xd4, 0xc3, 0x1a, 0x84, + 0x4d, 0x3c, 0xf4, 0x94, 0xba, 0xae, 0xcc, 0xdd, 0x15, 0x65, 0xaf, 0x2c, 0xd1, 0x5b, 0x16, 0x4c, + 0x36, 0x3c, 0x9f, 0x68, 0xee, 0xc2, 0xad, 0x6e, 0xed, 0xf8, 0x9d, 0xbc, 0x62, 0xd2, 0xd5, 0x12, + 0x32, 0x53, 0x9c, 0xe0, 0x1c, 0x7b, 0xfa, 0x99, 0x77, 0x49, 0xcc, 0x44, 0xeb, 0x48, 0xf6, 0x33, + 0xdf, 0xe2, 0xc5, 0x58, 0xc2, 0xd1, 0x3c, 0x9c, 0x8a, 0x9c, 0x24, 0x59, 0x88, 0x49, 0x9d, 0x04, + 0xa9, 0xe7, 0xf8, 0xdc, 0xe9, 0xad, 0xa2, 0x9d, 0x5e, 0xd6, 0xb3, 0x60, 0x9c, 0xc7, 0x47, 0x9f, + 0x87, 0x47, 0xbd, 0x66, 0x10, 0xc6, 0x64, 0xd5, 0x4b, 0x12, 0x2f, 0x68, 0xea, 0x69, 0xc0, 0x24, + 0x65, 0xa5, 0x36, 0x23, 0x48, 0x3d, 0xba, 0xdc, 0x1b, 0x0d, 0xf7, 0xab, 0x8f, 0x9e, 0x81, 0x4a, + 0xb2, 0xe3, 0x45, 0x0b, 0x71, 0x3d, 0x61, 0x16, 0x8c, 0x8a, 0x3e, 0x8d, 0x6d, 0x88, 0x72, 0xac, + 0x30, 0xec, 0x5f, 0x2d, 0x65, 0x15, 0x4d, 0x73, 0xfd, 0xa0, 0x84, 0xae, 0x92, 0xf4, 0x96, 0x13, + 0xcb, 0x43, 0xc8, 0x31, 0xdd, 0xe6, 0x04, 0xdd, 0x5b, 0x4e, 0x6c, 0xae, 0x37, 0xc6, 0x00, 0x4b, + 0x4e, 0xe8, 0x0e, 0x0c, 0xa5, 0xbe, 0x53, 0x90, 0x9f, 0xad, 0xc1, 0x51, 0xeb, 0xfd, 0x2b, 0xf3, + 0x09, 0x66, 0x3c, 0xd0, 0xe3, 0x54, 0x7d, 0xdd, 0x92, 0x77, 0xeb, 0x42, 0xe3, 0xdc, 0x4a, 0x30, + 0x2b, 0xb5, 0xff, 0xd7, 0x48, 0x0f, 0x91, 0xa7, 0xf6, 0x18, 0x7a, 0xec, 0x0f, 0x9c, 0x16, 0x59, + 0x8f, 0x49, 0xc3, 0xdb, 0x13, 0x7b, 0xbc, 0x5a, 0x56, 0x37, 0x14, 0x04, 0x1b, 0x58, 0xb2, 0xce, + 0x46, 0xbb, 0x41, 0xeb, 0x94, 0xba, 0xeb, 0x70, 0x08, 0x36, 0xb0, 0xd0, 0xf3, 0x30, 0xe2, 0xb5, + 0x9c, 0xa6, 0x72, 0x01, 0x78, 0x9c, 0xae, 0xa7, 0x65, 0x56, 0x72, 0x7f, 0x7f, 0x66, 0x52, 0x35, + 0x88, 0x15, 0x61, 0x81, 0x8b, 0xfe, 0xa1, 0x05, 0xe3, 0x6e, 0xd8, 0x6a, 0x85, 0x01, 0xb3, 0x4c, + 0x49, 0xd7, 0xd9, 0x3b, 0x27, 0xb5, 0x03, 0xcf, 0x2e, 0x18, 0xcc, 0xb8, 0x0f, 0x98, 0x72, 0x08, + 0x36, 0x41, 0x38, 0xd3, 0x2a, 0x73, 0xd9, 0x0d, 0x1f, 0xb0, 0xec, 0xfe, 0x85, 0x05, 0x53, 0xbc, + 0xee, 0x7c, 0x10, 0x84, 0xa9, 0xf0, 0x68, 0xe6, 0xbe, 0xaf, 0xe1, 0x09, 0x77, 0xcb, 0xe0, 0xc8, + 0xfb, 0xa6, 0x0e, 0xa7, 0x5d, 0x70, 0xdc, 0xdd, 0x48, 0xb4, 0x04, 0x53, 0x8d, 0x30, 0x76, 0x89, + 0x39, 0x10, 0x42, 0x66, 0x28, 0x42, 0x57, 0xf2, 0x08, 0xb8, 0xbb, 0x0e, 0xba, 0x05, 0x8f, 0x18, + 0x85, 0xe6, 0x38, 0x70, 0xb1, 0x71, 0x41, 0x50, 0x7b, 0xe4, 0x4a, 0x4f, 0x2c, 0xdc, 0xa7, 0xf6, + 0xf9, 0xcf, 0xc2, 0x54, 0xd7, 0xf7, 0xeb, 0xe1, 0x80, 0x77, 0xd6, 0x74, 0xc0, 0xab, 0x1a, 0x7e, + 0x73, 0xe7, 0x17, 0xe1, 0x91, 0xde, 0x23, 0x75, 0x18, 0x2a, 0xf6, 0x3f, 0xcb, 0x39, 0x08, 0x18, + 0x8a, 0x8d, 0xf2, 0x3c, 0xb2, 0xfa, 0x79, 0x1e, 0x21, 0x07, 0xca, 0x24, 0xd8, 0x15, 0x82, 0xe3, + 0xca, 0xf1, 0x66, 0xc4, 0xe5, 0x60, 0x97, 0x7f, 0x68, 0x76, 0x46, 0xbb, 0x1c, 0xec, 0x62, 0x4a, + 0x1b, 0xbd, 0x6d, 0x65, 0x36, 0xe6, 0x32, 0x63, 0xf5, 0x85, 0x13, 0xd1, 0xe4, 0x06, 0xde, 0xab, + 0xed, 0xf7, 0x4a, 0x70, 0xf1, 0x20, 0x22, 0x03, 0x0c, 0xdf, 0x93, 0x30, 0x92, 0x30, 0x0b, 0xad, + 0x58, 0x89, 0x63, 0x74, 0x15, 0x72, 0x9b, 0xed, 0x17, 0xb1, 0x00, 0xa1, 0x5f, 0xb4, 0xa0, 0xdc, + 0x72, 0x22, 0xd1, 0xf3, 0xe6, 0xc9, 0xf6, 0x7c, 0x76, 0xd5, 0x89, 0xf8, 0x57, 0x50, 0xfa, 0xe8, + 0xaa, 0x13, 0x61, 0xda, 0x00, 0x34, 0x03, 0xc3, 0x4e, 0x1c, 0x3b, 0x1d, 0x26, 0xd7, 0xaa, 0xdc, + 0x92, 0x3f, 0x4f, 0x0b, 0x30, 0x2f, 0x3f, 0xff, 0x19, 0xa8, 0xc8, 0xea, 0x87, 0x9a, 0x83, 0xdf, + 0x1c, 0xcd, 0xf8, 0xaf, 0x31, 0x0b, 0x6f, 0x02, 0x23, 0xe2, 0x00, 0x6c, 0x15, 0xed, 0x32, 0xc9, + 0x1d, 0x90, 0x99, 0xd6, 0x2e, 0xc2, 0x38, 0x04, 0x2b, 0xf4, 0x0d, 0x8b, 0x05, 0x4b, 0x48, 0x9f, + 0x3e, 0xa1, 0x2b, 0x9f, 0x4c, 0xec, 0x86, 0x19, 0x82, 0x21, 0x0b, 0xb1, 0xc9, 0x9d, 0x0a, 0xea, + 0x88, 0xbb, 0xfd, 0xe6, 0x35, 0x66, 0x19, 0x4e, 0x21, 0xe1, 0x68, 0xaf, 0x87, 0x81, 0xb7, 0x00, + 0x87, 0xfb, 0x01, 0x4c, 0xba, 0xdf, 0xb1, 0x60, 0x8a, 0xeb, 0x45, 0x8b, 0x5e, 0xa3, 0x41, 0x62, + 0x12, 0xb8, 0x44, 0x6a, 0x96, 0xc7, 0xbc, 0x2b, 0x90, 0x56, 0x87, 0xe5, 0x3c, 0x79, 0x2d, 0xc1, + 0xbb, 0x40, 0xb8, 0xbb, 0x31, 0xa8, 0x0e, 0x43, 0x5e, 0xd0, 0x08, 0xc5, 0xbe, 0x55, 0x3b, 0x5e, + 0xa3, 0x96, 0x83, 0x46, 0xa8, 0xd7, 0x32, 0xfd, 0x87, 0x19, 0x75, 0xb4, 0x02, 0x67, 0x63, 0x71, + 0xf6, 0xbf, 0xea, 0x25, 0xf4, 0x84, 0xb6, 0xe2, 0xb5, 0xbc, 0x94, 0xed, 0x39, 0xe5, 0xda, 0xf4, + 0xbd, 0xfd, 0x99, 0xb3, 0xb8, 0x07, 0x1c, 0xf7, 0xac, 0x85, 0xde, 0x80, 0x51, 0x19, 0xdd, 0x51, + 0x29, 0x42, 0x4b, 0xef, 0x9e, 0xff, 0x6a, 0x32, 0x6d, 0x88, 0x40, 0x0e, 0xc9, 0xd0, 0xfe, 0xd7, + 0x00, 0xdd, 0x06, 0x60, 0xf4, 0x33, 0x50, 0x8d, 0x55, 0xc4, 0x89, 0x55, 0x84, 0x27, 0x80, 0xfc, + 0xbe, 0xc2, 0xf8, 0xac, 0xbc, 0x60, 0x75, 0x6c, 0x89, 0xe6, 0x48, 0x75, 0xd4, 0x44, 0xdb, 0x89, + 0x0b, 0x98, 0xdb, 0x82, 0xab, 0x76, 0x9a, 0xeb, 0x04, 0x2e, 0x66, 0x3c, 0x50, 0x0c, 0x23, 0xdb, + 0xc4, 0xf1, 0xd3, 0xed, 0x62, 0x0c, 0x90, 0x57, 0x19, 0xad, 0xbc, 0xb3, 0x23, 0x2f, 0xc5, 0x82, + 0x13, 0xda, 0x83, 0xd1, 0x6d, 0x3e, 0x01, 0x84, 0xda, 0xb8, 0x7a, 0xdc, 0xc1, 0xcd, 0xcc, 0x2a, + 0xfd, 0xb9, 0x45, 0x01, 0x96, 0xec, 0xd8, 0xed, 0x90, 0x71, 0xf7, 0xc1, 0x97, 0x6e, 0x71, 0x7e, + 0x9e, 0x83, 0x5f, 0x7c, 0x7c, 0x09, 0xc6, 0x63, 0xe2, 0x86, 0x81, 0xeb, 0xf9, 0xa4, 0x3e, 0x2f, + 0x8d, 0x8b, 0x87, 0xf1, 0x0e, 0x3c, 0x4d, 0x55, 0x5f, 0x6c, 0xd0, 0xc0, 0x19, 0x8a, 0xe8, 0xeb, + 0x16, 0x4c, 0x2a, 0x37, 0x75, 0xfa, 0x41, 0x88, 0x30, 0xcf, 0xad, 0x14, 0xe4, 0x14, 0xcf, 0x68, + 0xd6, 0x10, 0x3d, 0xfc, 0x66, 0xcb, 0x70, 0x8e, 0x2f, 0x7a, 0x05, 0x20, 0xdc, 0x62, 0x17, 0x01, + 0xb4, 0xab, 0x95, 0x43, 0x77, 0x75, 0x92, 0xbb, 0x09, 0x4b, 0x0a, 0xd8, 0xa0, 0x86, 0xae, 0x03, + 0xf0, 0x65, 0xb3, 0xd9, 0x89, 0x08, 0x3b, 0x91, 0x6a, 0xf7, 0x4e, 0xd8, 0x50, 0x90, 0xfb, 0xfb, + 0x33, 0xdd, 0xb6, 0x13, 0x76, 0x45, 0x63, 0x54, 0x47, 0x3f, 0x0d, 0xa3, 0x49, 0xbb, 0xd5, 0x72, + 0x94, 0x25, 0xaf, 0x40, 0xc7, 0x63, 0x4e, 0xd7, 0x10, 0x45, 0xbc, 0x00, 0x4b, 0x8e, 0xe8, 0x0e, + 0x15, 0xaa, 0x89, 0x30, 0xea, 0xb0, 0x55, 0xc4, 0x75, 0x82, 0x31, 0xd6, 0xa7, 0xcf, 0x88, 0x7a, + 0x67, 0x71, 0x0f, 0x9c, 0xfb, 0xfb, 0x33, 0x8f, 0x64, 0xcb, 0x57, 0x42, 0xe1, 0x0a, 0xdc, 0x93, + 0x26, 0xba, 0x26, 0x83, 0x3d, 0x69, 0xb7, 0x65, 0x0c, 0xd2, 0xd3, 0x3a, 0xd8, 0x93, 0x15, 0xf7, + 0x1f, 0x33, 0xb3, 0xb2, 0x1d, 0x64, 0x6f, 0xad, 0x45, 0x6f, 0x9e, 0x87, 0x71, 0xb2, 0x97, 0x92, + 0x38, 0x70, 0xfc, 0x9b, 0x78, 0x45, 0x1a, 0xa5, 0xd8, 0xa4, 0xbd, 0x6c, 0x94, 0xe3, 0x0c, 0x16, + 0xb2, 0xd5, 0x61, 0xb4, 0xa4, 0xfd, 0xd1, 0xf9, 0x61, 0x54, 0x1e, 0x3d, 0xed, 0xff, 0x57, 0xca, + 0x68, 0x50, 0x9b, 0x31, 0x21, 0x28, 0x84, 0xe1, 0x20, 0xac, 0x2b, 0x61, 0x7d, 0xad, 0x18, 0x61, + 0x7d, 0x23, 0xac, 0x1b, 0x21, 0x9c, 0xf4, 0x5f, 0x82, 0x39, 0x1f, 0x16, 0xe3, 0x26, 0x83, 0x01, + 0x19, 0x40, 0x9c, 0x0b, 0x8a, 0xe4, 0xac, 0x62, 0xdc, 0xd6, 0x4c, 0x46, 0x38, 0xcb, 0x17, 0xed, + 0xc0, 0xf0, 0x76, 0x98, 0xa4, 0xf2, 0xb4, 0x70, 0xcc, 0x83, 0xc9, 0xd5, 0x30, 0x49, 0xd9, 0xb6, + 0xaf, 0xba, 0x4d, 0x4b, 0x12, 0xcc, 0x79, 0xd8, 0x7f, 0x66, 0x65, 0x4c, 0x90, 0xb7, 0x99, 0x07, + 0xc7, 0x2e, 0x09, 0xe8, 0x3a, 0x34, 0x6f, 0x41, 0xff, 0x5a, 0xce, 0xc1, 0xfa, 0x13, 0xfd, 0x02, + 0xea, 0xef, 0x52, 0x0a, 0xb3, 0x8c, 0x84, 0x71, 0x61, 0xfa, 0x55, 0x2b, 0xeb, 0xea, 0xce, 0x37, + 0xc2, 0x02, 0x23, 0x2f, 0x0e, 0xf4, 0x9a, 0xb7, 0xdf, 0xb6, 0x60, 0xb4, 0xe6, 0xb8, 0x3b, 0x61, + 0xa3, 0x81, 0x9e, 0x81, 0x4a, 0xbd, 0x1d, 0x9b, 0x5e, 0xf7, 0xca, 0xe6, 0xb5, 0x28, 0xca, 0xb1, + 0xc2, 0xa0, 0x73, 0xb8, 0xe1, 0xb8, 0x32, 0xfe, 0xa2, 0xcc, 0xe7, 0xf0, 0x15, 0x56, 0x82, 0x05, + 0x04, 0x7d, 0x1a, 0xc6, 0x5a, 0xce, 0x9e, 0xac, 0x9c, 0xb7, 0x7f, 0xae, 0x6a, 0x10, 0x36, 0xf1, + 0xec, 0x7f, 0x63, 0xc1, 0x74, 0xcd, 0x49, 0x3c, 0x77, 0xbe, 0x9d, 0x6e, 0xd7, 0xbc, 0x74, 0xab, + 0xed, 0xee, 0x90, 0x94, 0x07, 0xdd, 0xd0, 0x56, 0xb6, 0x13, 0xba, 0x94, 0xd4, 0x31, 0x4c, 0xb5, + 0xf2, 0xa6, 0x28, 0xc7, 0x0a, 0x03, 0xbd, 0x01, 0x63, 0x91, 0x93, 0x24, 0x77, 0xc3, 0xb8, 0x8e, + 0x49, 0xa3, 0x98, 0x90, 0xb7, 0x0d, 0xe2, 0xc6, 0x24, 0xc5, 0xa4, 0x21, 0x6e, 0xb4, 0x34, 0x7d, + 0x6c, 0x32, 0xb3, 0x7f, 0xaf, 0x0a, 0xa3, 0xe2, 0x3a, 0x6e, 0xe0, 0x50, 0x22, 0x79, 0xc0, 0x2c, + 0xf5, 0x3d, 0x60, 0x26, 0x30, 0xe2, 0xb2, 0xc4, 0x0b, 0x42, 0x93, 0xb9, 0x5e, 0xc8, 0xfd, 0x2d, + 0xcf, 0xe5, 0xa0, 0x9b, 0xc5, 0xff, 0x63, 0xc1, 0x0a, 0x7d, 0xdb, 0x82, 0x53, 0x6e, 0x18, 0x04, + 0xc4, 0xd5, 0xdb, 0xec, 0x50, 0x11, 0xfe, 0xbe, 0x0b, 0x59, 0xa2, 0xda, 0xf8, 0x9b, 0x03, 0xe0, + 0x3c, 0x7b, 0xf4, 0x22, 0x4c, 0xf0, 0x31, 0xbb, 0x95, 0xb1, 0x7c, 0xe9, 0x88, 0x59, 0x13, 0x88, + 0xb3, 0xb8, 0x68, 0x96, 0x5b, 0x10, 0x45, 0x6c, 0xea, 0x88, 0xbe, 0x49, 0x30, 0xa2, 0x52, 0x0d, + 0x0c, 0x14, 0x03, 0x8a, 0x49, 0x23, 0x26, 0xc9, 0xb6, 0xb8, 0xae, 0x64, 0x5b, 0xfc, 0xe8, 0xd1, + 0x62, 0x1d, 0x70, 0x17, 0x25, 0xdc, 0x83, 0x3a, 0xda, 0x11, 0x67, 0x9c, 0x4a, 0x11, 0x52, 0x41, + 0x7c, 0xe6, 0xbe, 0x47, 0x9d, 0x19, 0x18, 0x4e, 0xb6, 0x9d, 0xb8, 0xce, 0x54, 0x8b, 0x32, 0x37, + 0x04, 0x6c, 0xd0, 0x02, 0xcc, 0xcb, 0xd1, 0x22, 0x9c, 0xce, 0xc5, 0xfb, 0x26, 0x4c, 0x79, 0xa8, + 0x68, 0xd7, 0xb7, 0x5c, 0xa4, 0x70, 0x82, 0xbb, 0x6a, 0x98, 0xe7, 0xdf, 0xb1, 0x03, 0xce, 0xbf, + 0x1d, 0x18, 0xf1, 0xb9, 0x89, 0x6f, 0x9c, 0x49, 0xfc, 0x97, 0x0b, 0x19, 0x80, 0x59, 0xd3, 0xb4, + 0xaa, 0x66, 0xbb, 0x30, 0x15, 0x0a, 0x86, 0xe8, 0x4d, 0x2a, 0x97, 0x0d, 0xab, 0xe0, 0x04, 0x6b, + 0xc0, 0xad, 0x62, 0x1a, 0xd0, 0x65, 0x04, 0xd5, 0x42, 0xda, 0x30, 0x31, 0x9a, 0xfc, 0xcf, 0xff, + 0x75, 0x18, 0x3b, 0xaa, 0x45, 0xf1, 0x25, 0x38, 0x7d, 0x2c, 0x5b, 0xe2, 0xff, 0xb5, 0x40, 0x7e, + 0xd7, 0x05, 0xc7, 0xdd, 0x26, 0x74, 0xca, 0xa0, 0x97, 0x60, 0x52, 0x9d, 0xe2, 0x16, 0xc2, 0x76, + 0xc0, 0x3d, 0x57, 0xca, 0xfa, 0x96, 0x08, 0x67, 0xa0, 0x38, 0x87, 0x8d, 0xe6, 0xa0, 0x4a, 0xc7, + 0x89, 0x57, 0xe5, 0xbb, 0x87, 0x3a, 0x29, 0xce, 0xaf, 0x2f, 0x8b, 0x5a, 0x1a, 0x07, 0x85, 0x30, + 0xe5, 0x3b, 0x49, 0xca, 0x5a, 0x40, 0x0f, 0x75, 0x47, 0x8c, 0x34, 0x62, 0xe9, 0x0e, 0x56, 0xf2, + 0x84, 0x70, 0x37, 0x6d, 0xfb, 0x7b, 0x43, 0x30, 0x91, 0x91, 0x8c, 0x87, 0xdc, 0x76, 0x9e, 0x81, + 0x8a, 0xdc, 0x09, 0xf2, 0xe1, 0x89, 0x6a, 0xbb, 0x50, 0x18, 0x74, 0x9b, 0xdc, 0x22, 0x4e, 0x4c, + 0x62, 0x16, 0x49, 0x9d, 0xdf, 0x26, 0x6b, 0x1a, 0x84, 0x4d, 0x3c, 0x26, 0x94, 0x53, 0x3f, 0x59, + 0xf0, 0x3d, 0x12, 0xa4, 0xbc, 0x99, 0xc5, 0x08, 0xe5, 0xcd, 0x95, 0x0d, 0x93, 0xa8, 0x16, 0xca, + 0x39, 0x00, 0xce, 0xb3, 0x47, 0x3f, 0x6f, 0xc1, 0x84, 0x73, 0x37, 0xd1, 0xd9, 0x81, 0x84, 0xaf, + 0xcb, 0x31, 0x37, 0xa9, 0x4c, 0xc2, 0xa1, 0xda, 0x14, 0x15, 0xef, 0x99, 0x22, 0x9c, 0x65, 0x8a, + 0x7e, 0xc5, 0x02, 0x44, 0xf6, 0x88, 0x2b, 0xbd, 0x71, 0x44, 0x5b, 0x46, 0x8a, 0x38, 0xec, 0x5c, + 0xee, 0xa2, 0xcb, 0xa5, 0x7a, 0x77, 0x39, 0xee, 0xd1, 0x06, 0xfb, 0xd7, 0xcb, 0x6a, 0x41, 0x69, + 0x07, 0x30, 0xc7, 0xf0, 0x97, 0xb6, 0x8e, 0xee, 0x2f, 0xad, 0xaf, 0x28, 0xbb, 0x7c, 0xa6, 0xd1, + 0xb6, 0xe1, 0x9e, 0x5a, 0x2a, 0xc4, 0x3d, 0x75, 0xbc, 0x8f, 0x6b, 0xea, 0xdf, 0xb0, 0x32, 0xd1, + 0xb6, 0x63, 0x97, 0x5e, 0x29, 0xd6, 0xc3, 0x6c, 0x96, 0xdf, 0x82, 0xe7, 0x44, 0x78, 0xf6, 0x6a, + 0x9c, 0x8a, 0x4c, 0x03, 0xed, 0x50, 0x22, 0xef, 0x3f, 0x97, 0x61, 0xcc, 0xd8, 0x2e, 0x7b, 0xea, + 0x3e, 0xd6, 0x87, 0x4c, 0xf7, 0x29, 0x1d, 0x42, 0xf7, 0xf9, 0x59, 0xa8, 0xba, 0x52, 0x94, 0x17, + 0x93, 0x6f, 0x2a, 0xbf, 0x41, 0x68, 0x69, 0xae, 0x8a, 0xb0, 0xe6, 0x89, 0x96, 0x32, 0xce, 0xb0, + 0x62, 0x1b, 0x18, 0x62, 0xdb, 0x40, 0x2f, 0x6f, 0x55, 0xb1, 0x1d, 0x74, 0xd7, 0x41, 0xcf, 0xd1, + 0xe3, 0x93, 0x27, 0xfa, 0xc5, 0xcd, 0x5c, 0x22, 0x97, 0xd3, 0xfc, 0xfa, 0xb2, 0x2c, 0xc6, 0x26, + 0x8e, 0xfd, 0x3d, 0x4b, 0x7d, 0xdc, 0x87, 0x10, 0x66, 0x75, 0x27, 0x1b, 0x66, 0x75, 0xb9, 0x90, + 0x61, 0xee, 0x13, 0x5f, 0x75, 0x03, 0x46, 0x17, 0xc2, 0x56, 0xcb, 0x09, 0xea, 0xe8, 0x47, 0x60, + 0xd4, 0xe5, 0x3f, 0x85, 0x3d, 0x82, 0x5d, 0x42, 0x09, 0x28, 0x96, 0x30, 0xf4, 0x38, 0x0c, 0x39, + 0x71, 0x53, 0xda, 0x20, 0xd8, 0xbd, 0xfd, 0x7c, 0xdc, 0x4c, 0x30, 0x2b, 0xb5, 0xdf, 0x2a, 0x03, + 0x2c, 0x84, 0xad, 0xc8, 0x89, 0x49, 0x7d, 0x33, 0x64, 0xf9, 0x2e, 0x4e, 0xf4, 0xf2, 0x46, 0x9f, + 0x88, 0x3e, 0xcc, 0x17, 0x38, 0x86, 0x11, 0xbf, 0xfc, 0xb0, 0x8d, 0xf8, 0xdf, 0xb4, 0x00, 0xd1, + 0x2f, 0x12, 0x06, 0x24, 0x48, 0xf5, 0x9d, 0xe4, 0x1c, 0x54, 0x5d, 0x59, 0x2a, 0x54, 0x13, 0xbd, + 0xfe, 0x24, 0x00, 0x6b, 0x9c, 0x01, 0xce, 0x98, 0x4f, 0x4a, 0xe1, 0x58, 0xce, 0xba, 0xba, 0x31, + 0x91, 0x2a, 0x64, 0xa5, 0xfd, 0xfb, 0x25, 0x78, 0x84, 0x6f, 0x6a, 0xab, 0x4e, 0xe0, 0x34, 0x49, + 0x8b, 0xb6, 0x6a, 0xd0, 0x5b, 0x66, 0x97, 0x1e, 0x6e, 0x3c, 0xe9, 0xba, 0x76, 0xdc, 0x85, 0xc1, + 0x27, 0x34, 0x9f, 0xc2, 0xcb, 0x81, 0x97, 0x62, 0x46, 0x1c, 0x25, 0x50, 0x91, 0xd9, 0x0b, 0x85, + 0xa0, 0x2b, 0x88, 0x91, 0x5a, 0xf3, 0x62, 0x53, 0x22, 0x58, 0x31, 0xa2, 0xaa, 0x9f, 0x1f, 0xba, + 0x3b, 0x98, 0x44, 0x21, 0x13, 0x6a, 0x86, 0xe7, 0xd0, 0x8a, 0x28, 0xc7, 0x0a, 0xc3, 0xfe, 0x7d, + 0x0b, 0xf2, 0xe2, 0xde, 0x48, 0x15, 0x60, 0x3d, 0x30, 0x55, 0xc0, 0x21, 0x62, 0xf5, 0x7f, 0x0a, + 0xc6, 0x9c, 0x94, 0xee, 0xd0, 0xfc, 0xe0, 0x5a, 0x3e, 0x9a, 0x6d, 0x7a, 0x35, 0xac, 0x7b, 0x0d, + 0x8f, 0x1d, 0x58, 0x4d, 0x72, 0x54, 0x5b, 0x9e, 0xea, 0x72, 0x47, 0x46, 0x2f, 0xc0, 0xb8, 0x2b, + 0xa6, 0x47, 0x84, 0x49, 0x43, 0x74, 0xc6, 0x70, 0x67, 0xd1, 0x30, 0x9c, 0xc1, 0x1c, 0x60, 0x82, + 0x2e, 0xc3, 0x99, 0x98, 0x1e, 0x95, 0xdb, 0x64, 0xbe, 0x91, 0x92, 0x78, 0x83, 0xb8, 0x61, 0x50, + 0xe7, 0x09, 0x2d, 0xca, 0xb5, 0x47, 0xef, 0xed, 0xcf, 0x9c, 0xc1, 0xdd, 0x60, 0xdc, 0xab, 0x0e, + 0x8a, 0x60, 0xc2, 0x37, 0xb5, 0x28, 0xa1, 0x42, 0x1f, 0x49, 0x01, 0x53, 0x1b, 0x70, 0xa6, 0x18, + 0x67, 0x19, 0x64, 0x54, 0xb1, 0xe1, 0x13, 0x55, 0xc5, 0x7e, 0x4e, 0xab, 0x62, 0xfc, 0xa6, 0xf4, + 0xd5, 0x82, 0x7d, 0xce, 0x4f, 0x5a, 0x17, 0x7b, 0x19, 0x2a, 0xd2, 0x87, 0x64, 0x20, 0xdf, 0x0b, + 0x93, 0x4e, 0x1f, 0xb1, 0x75, 0xbf, 0x04, 0x3d, 0x74, 0x75, 0xba, 0x98, 0xf4, 0x9e, 0x99, 0x59, + 0x4c, 0x87, 0xdb, 0x37, 0xd1, 0x1e, 0xf7, 0x9f, 0xe1, 0xbb, 0xc3, 0xe7, 0x8b, 0x3e, 0x6b, 0x68, + 0x97, 0x1a, 0xe5, 0xcc, 0xa1, 0xdc, 0x6a, 0x2e, 0x01, 0x68, 0x55, 0x47, 0xb8, 0x8e, 0xaa, 0x0b, + 0x3a, 0xad, 0x11, 0x61, 0x03, 0x8b, 0x1e, 0x3d, 0xbd, 0x20, 0x49, 0x1d, 0xdf, 0xbf, 0xea, 0x05, + 0xa9, 0xb0, 0xa1, 0xa9, 0x6d, 0x70, 0x59, 0x83, 0xb0, 0x89, 0x77, 0xfe, 0x33, 0xc6, 0x77, 0x39, + 0xcc, 0xf7, 0xdc, 0x86, 0xc7, 0x96, 0xbc, 0x54, 0x39, 0x3c, 0xab, 0x79, 0x44, 0x35, 0x19, 0xe5, + 0xc0, 0x6f, 0xf5, 0x75, 0xe0, 0x37, 0x1c, 0x8e, 0x4b, 0x59, 0xff, 0xe8, 0xbc, 0xc3, 0xb1, 0xfd, + 0x02, 0x9c, 0x5d, 0xf2, 0xd2, 0x2b, 0x9e, 0x4f, 0x0e, 0xc9, 0xc4, 0xfe, 0x1f, 0x43, 0x30, 0x6e, + 0x06, 0x98, 0x1c, 0x26, 0x06, 0xe1, 0x5b, 0x54, 0x59, 0x11, 0xbd, 0xf3, 0xd4, 0x6d, 0xc9, 0xed, + 0x63, 0x47, 0xbb, 0xf4, 0x1e, 0x31, 0x43, 0x5f, 0xd1, 0x3c, 0xb1, 0xd9, 0x00, 0x74, 0x17, 0x86, + 0x1b, 0xcc, 0x21, 0xb6, 0x5c, 0xc4, 0x1d, 0x70, 0xaf, 0x11, 0xd5, 0xcb, 0x8c, 0xbb, 0xd4, 0x72, + 0x7e, 0x74, 0x1b, 0x8c, 0xb3, 0x51, 0x16, 0x6a, 0x1b, 0x54, 0xf1, 0x15, 0x0a, 0xa3, 0x9f, 0x3c, + 0x1f, 0x3e, 0x82, 0x3c, 0x37, 0xa5, 0xeb, 0xc8, 0x89, 0x4a, 0x57, 0xe6, 0xc1, 0x9c, 0x6e, 0x33, + 0x4d, 0x4c, 0xf8, 0xaf, 0x8e, 0xb2, 0x9e, 0x1a, 0x1e, 0xcc, 0x19, 0x30, 0xce, 0xe3, 0xdb, 0xdf, + 0x2c, 0xc1, 0xe4, 0x52, 0xd0, 0x5e, 0x5f, 0x5a, 0x6f, 0x6f, 0xf9, 0x9e, 0x7b, 0x9d, 0x74, 0xa8, + 0x10, 0xdb, 0x21, 0x9d, 0xe5, 0x45, 0x31, 0xd7, 0xd4, 0xe8, 0x5e, 0xa7, 0x85, 0x98, 0xc3, 0xe8, + 0xb2, 0x6d, 0x78, 0x41, 0x93, 0xc4, 0x51, 0xec, 0x09, 0x1b, 0x9a, 0xb1, 0x6c, 0xaf, 0x68, 0x10, + 0x36, 0xf1, 0x28, 0xed, 0xf0, 0x6e, 0x40, 0xe2, 0xbc, 0x5e, 0xb7, 0x46, 0x0b, 0x31, 0x87, 0x51, + 0xa4, 0x34, 0x6e, 0x27, 0xa9, 0xf8, 0x6c, 0x0a, 0x69, 0x93, 0x16, 0x62, 0x0e, 0xa3, 0x6b, 0x22, + 0x69, 0x6f, 0xb1, 0xcb, 0xe8, 0x9c, 0xc7, 0xe9, 0x06, 0x2f, 0xc6, 0x12, 0x4e, 0x51, 0x77, 0x48, + 0x67, 0x91, 0x9e, 0xb0, 0x72, 0x3e, 0xe1, 0xd7, 0x79, 0x31, 0x96, 0x70, 0x96, 0x0b, 0x23, 0x3b, + 0x1c, 0x3f, 0x70, 0xb9, 0x30, 0xb2, 0xcd, 0xef, 0x73, 0x56, 0xfb, 0x0d, 0x0b, 0xc6, 0x4d, 0x17, + 0x12, 0xd4, 0xcc, 0xa9, 0x7c, 0x6b, 0x5d, 0x79, 0x8d, 0x7e, 0xa2, 0x57, 0xce, 0xf5, 0xa6, 0x97, + 0x86, 0x51, 0xf2, 0x2c, 0x09, 0x9a, 0x5e, 0x40, 0xd8, 0x45, 0x23, 0x77, 0x3d, 0xc9, 0xf8, 0xa7, + 0x2c, 0x84, 0x75, 0x72, 0x04, 0x9d, 0xd1, 0xbe, 0x0d, 0x53, 0x5d, 0x81, 0x00, 0x03, 0x6c, 0xc2, + 0x07, 0x86, 0x61, 0xd9, 0x18, 0xc6, 0x28, 0xe1, 0xb5, 0x88, 0xfb, 0x88, 0x2c, 0xc0, 0x14, 0x57, + 0x14, 0x28, 0xa7, 0x0d, 0x77, 0x9b, 0xb4, 0x54, 0x70, 0x07, 0x33, 0xd8, 0xde, 0xca, 0x03, 0x71, + 0x37, 0xbe, 0xfd, 0xa6, 0x05, 0x13, 0x99, 0xd8, 0x8c, 0x82, 0xd4, 0x05, 0xb6, 0xd2, 0x42, 0xe6, + 0xd1, 0xc4, 0x9c, 0x3a, 0xcb, 0x6c, 0xdb, 0xd1, 0x2b, 0x4d, 0x83, 0xb0, 0x89, 0x67, 0xbf, 0x5d, + 0x82, 0x8a, 0xbc, 0x64, 0x1e, 0xa0, 0x29, 0xdf, 0xb0, 0x60, 0x42, 0x19, 0xc9, 0x99, 0x61, 0x86, + 0x4f, 0xc6, 0x1b, 0xc7, 0xbf, 0xe6, 0x56, 0x2e, 0x77, 0x41, 0x23, 0xd4, 0x0a, 0x2a, 0x36, 0x99, + 0xe1, 0x2c, 0x6f, 0x74, 0x0b, 0x20, 0xe9, 0x24, 0x29, 0x69, 0x19, 0x26, 0x22, 0xdb, 0x58, 0x71, + 0xb3, 0x6e, 0x18, 0x13, 0xba, 0xbe, 0x6e, 0x84, 0x75, 0xb2, 0xa1, 0x30, 0xb5, 0xb2, 0xa1, 0xcb, + 0xb0, 0x41, 0xc9, 0xfe, 0x27, 0x25, 0x38, 0x9d, 0x6f, 0x12, 0x7a, 0x15, 0xc6, 0x25, 0x77, 0x23, + 0x7f, 0xbc, 0xbc, 0x59, 0x1f, 0xc7, 0x06, 0xec, 0xfe, 0xfe, 0xcc, 0x4c, 0x77, 0xfe, 0xfe, 0x59, + 0x13, 0x05, 0x67, 0x88, 0xf1, 0x9b, 0x0a, 0x71, 0xa5, 0x56, 0xeb, 0xcc, 0x47, 0x91, 0xb8, 0x6e, + 0x30, 0x6e, 0x2a, 0x4c, 0x28, 0xce, 0x61, 0xa3, 0x75, 0x38, 0x6b, 0x94, 0xdc, 0x20, 0x5e, 0x73, + 0x7b, 0x2b, 0x8c, 0xe5, 0x41, 0xe3, 0x71, 0xed, 0xac, 0xd2, 0x8d, 0x83, 0x7b, 0xd6, 0xa4, 0xfb, + 0xa2, 0xeb, 0x44, 0x8e, 0xeb, 0xa5, 0x1d, 0x61, 0xf3, 0x52, 0xb2, 0x69, 0x41, 0x94, 0x63, 0x85, + 0x61, 0xaf, 0xc2, 0xd0, 0x80, 0x33, 0x68, 0x20, 0xdd, 0xf7, 0x65, 0xa8, 0x50, 0x72, 0x52, 0x11, + 0x2a, 0x82, 0x64, 0x08, 0x15, 0x99, 0x02, 0x16, 0xd9, 0x50, 0xf6, 0x1c, 0x79, 0x19, 0xa4, 0xba, + 0xb5, 0x9c, 0x24, 0x6d, 0x76, 0x66, 0xa4, 0x40, 0xf4, 0x24, 0x94, 0xc9, 0x5e, 0x94, 0xbf, 0xf5, + 0xb9, 0xbc, 0x17, 0x79, 0x31, 0x49, 0x28, 0x12, 0xd9, 0x8b, 0xd0, 0x79, 0x28, 0x79, 0x75, 0xb1, + 0x49, 0x81, 0xc0, 0x29, 0x2d, 0x2f, 0xe2, 0x92, 0x57, 0xb7, 0xf7, 0xa0, 0xaa, 0x72, 0xce, 0xa2, + 0x1d, 0x29, 0xbb, 0xad, 0x22, 0xbc, 0x42, 0x24, 0xdd, 0x3e, 0x52, 0xbb, 0x0d, 0xa0, 0x23, 0x61, + 0x8a, 0x92, 0x2f, 0x17, 0x61, 0xc8, 0x0d, 0x45, 0x00, 0x5d, 0x45, 0x93, 0x61, 0x42, 0x9b, 0x41, + 0xec, 0xdb, 0x30, 0x79, 0x3d, 0x08, 0xef, 0xb2, 0x2c, 0x7d, 0x57, 0x3c, 0xe2, 0xd7, 0x29, 0xe1, + 0x06, 0xfd, 0x91, 0x57, 0x11, 0x18, 0x14, 0x73, 0x98, 0x8a, 0xd7, 0x2f, 0xf5, 0x8b, 0xd7, 0xb7, + 0xbf, 0x6a, 0xc1, 0x69, 0x15, 0xa2, 0x21, 0xa5, 0xf1, 0x0b, 0x30, 0xbe, 0xd5, 0xf6, 0xfc, 0xba, + 0xf8, 0x9f, 0x3f, 0xb5, 0xd7, 0x0c, 0x18, 0xce, 0x60, 0xd2, 0xe3, 0xc7, 0x96, 0x17, 0x38, 0x71, + 0x67, 0x5d, 0x8b, 0x7f, 0x25, 0x11, 0x6a, 0x0a, 0x82, 0x0d, 0x2c, 0xfb, 0xcf, 0x2c, 0x98, 0xc8, + 0x04, 0xac, 0x23, 0x1f, 0x2a, 0xc4, 0x67, 0xb6, 0x24, 0xf9, 0x51, 0x0b, 0x4b, 0xa3, 0x71, 0x59, + 0xd0, 0xc5, 0x8a, 0xc3, 0xc3, 0xbb, 0x15, 0xb1, 0xff, 0xa0, 0x0c, 0xd3, 0xdc, 0x4e, 0x56, 0x57, + 0x3e, 0x06, 0xab, 0x52, 0x05, 0xf9, 0x5b, 0x96, 0xba, 0xec, 0xe6, 0x7d, 0xde, 0x3a, 0x6e, 0x16, + 0xb5, 0xde, 0x8c, 0x06, 0xba, 0xfd, 0xfe, 0xb5, 0xdc, 0xed, 0x77, 0xa9, 0x88, 0x20, 0x85, 0xbe, + 0x2d, 0xfa, 0xc1, 0xba, 0x0e, 0x7f, 0xb3, 0x04, 0xa7, 0x72, 0x29, 0xea, 0xd0, 0x5b, 0xd9, 0x24, + 0x34, 0x56, 0x11, 0x86, 0x96, 0x07, 0x26, 0x4a, 0x3b, 0x30, 0x15, 0xcd, 0xc3, 0x9b, 0xd5, 0xbf, + 0x5b, 0x82, 0xc9, 0x6c, 0x02, 0xbd, 0x0f, 0xe1, 0x70, 0x7c, 0x12, 0xaa, 0x2c, 0x2d, 0x15, 0xcb, + 0xd1, 0xcf, 0x8d, 0x36, 0x3c, 0x7b, 0x92, 0x2c, 0xc4, 0x1a, 0x9e, 0x19, 0xbb, 0xf2, 0x89, 0x8e, + 0xdd, 0x3f, 0xb2, 0xe0, 0x1c, 0xef, 0x4a, 0x7e, 0x46, 0xfd, 0xed, 0x5e, 0x43, 0x58, 0x68, 0x9e, + 0x98, 0xae, 0x1c, 0x24, 0x07, 0x0d, 0x22, 0x4b, 0x00, 0x2e, 0x5a, 0x9b, 0xfd, 0xde, 0x1f, 0xc2, + 0xc6, 0x1e, 0xea, 0x8b, 0xdb, 0xff, 0xb1, 0x0c, 0x3a, 0xe7, 0x39, 0xf2, 0x44, 0x50, 0x42, 0x21, + 0xb9, 0x58, 0x36, 0x3a, 0x81, 0xab, 0xb3, 0xab, 0x57, 0x72, 0x31, 0x09, 0xbf, 0x64, 0xc1, 0x98, + 0x17, 0x78, 0xa9, 0xe7, 0x30, 0x1d, 0xb1, 0x98, 0x24, 0xd0, 0x8a, 0xdd, 0x32, 0xa7, 0x1c, 0xc6, + 0xa6, 0x39, 0x4f, 0x31, 0xc3, 0x26, 0x67, 0xf4, 0x25, 0xe1, 0x6a, 0x56, 0x2e, 0x2c, 0x9c, 0xa6, + 0x92, 0xf3, 0x2f, 0x8b, 0x60, 0x38, 0x26, 0x69, 0x2c, 0x03, 0x99, 0xae, 0x1f, 0xd7, 0x7f, 0x38, + 0x8d, 0x3b, 0x2a, 0x09, 0x90, 0x7e, 0x7d, 0x86, 0x16, 0x63, 0xce, 0xc8, 0x4e, 0x00, 0x75, 0x8f, + 0xc5, 0x21, 0xdd, 0x78, 0xe6, 0xa0, 0xea, 0xb4, 0xd3, 0xb0, 0x45, 0x87, 0x49, 0x58, 0x1c, 0xb5, + 0xa3, 0x92, 0x04, 0x60, 0x8d, 0x63, 0xbf, 0x35, 0x0c, 0xb9, 0x28, 0x01, 0xb4, 0x67, 0xe6, 0xeb, + 0xb7, 0x8a, 0xcd, 0xd7, 0xaf, 0x1a, 0xd3, 0x2b, 0x67, 0x3f, 0x6a, 0xc2, 0x70, 0xb4, 0xed, 0x24, + 0x52, 0x05, 0x7c, 0x59, 0x0e, 0xd3, 0x3a, 0x2d, 0xbc, 0xbf, 0x3f, 0xf3, 0x93, 0x83, 0x99, 0x14, + 0xe8, 0x5c, 0x9d, 0xe3, 0xd1, 0xb8, 0x9a, 0x35, 0xa3, 0x81, 0x39, 0xfd, 0xc3, 0xa4, 0xc1, 0xfe, + 0x9a, 0xc8, 0x5b, 0x86, 0x49, 0xd2, 0xf6, 0x53, 0x31, 0x1b, 0x5e, 0x2e, 0x70, 0x95, 0x71, 0xc2, + 0x3a, 0xbe, 0x8d, 0xff, 0xc7, 0x06, 0x53, 0xf4, 0x2a, 0x54, 0x93, 0xd4, 0x89, 0xd3, 0x23, 0x46, + 0xa4, 0xa8, 0x41, 0xdf, 0x90, 0x44, 0xb0, 0xa6, 0x87, 0x5e, 0x01, 0x68, 0x78, 0x81, 0x97, 0x6c, + 0x1f, 0xd1, 0x43, 0x94, 0x35, 0xfc, 0x8a, 0xa2, 0x80, 0x0d, 0x6a, 0x54, 0xc3, 0x66, 0x73, 0x9b, + 0x7b, 0x4c, 0x54, 0xd8, 0x11, 0x4a, 0x89, 0x42, 0xac, 0x20, 0xd8, 0xc0, 0xb2, 0xbf, 0x02, 0x67, + 0xf2, 0x0f, 0xfc, 0x08, 0x2b, 0x63, 0x33, 0x0e, 0xdb, 0x51, 0xfe, 0x08, 0xc1, 0x1e, 0x80, 0xc1, + 0x1c, 0x46, 0x8f, 0x10, 0x3b, 0x5e, 0x50, 0xcf, 0x1f, 0x21, 0xae, 0x7b, 0x41, 0x1d, 0x33, 0xc8, + 0x00, 0x0f, 0x19, 0xfc, 0x4b, 0x0b, 0x2e, 0x1e, 0xf4, 0x0e, 0x11, 0x7a, 0x1c, 0x86, 0xee, 0x3a, + 0xb1, 0x4c, 0xba, 0xc5, 0x64, 0xc7, 0x6d, 0x27, 0x0e, 0x30, 0x2b, 0x45, 0x1d, 0x18, 0xe1, 0x11, + 0x80, 0x42, 0x15, 0x7d, 0xb9, 0xd8, 0x57, 0x91, 0xae, 0x13, 0x43, 0x17, 0xe6, 0xd1, 0x87, 0x58, + 0x30, 0xb4, 0xdf, 0xb7, 0x00, 0xad, 0xed, 0x92, 0x38, 0xf6, 0xea, 0x46, 0xcc, 0x22, 0x7a, 0x1e, + 0xc6, 0xef, 0x6c, 0xac, 0xdd, 0x58, 0x0f, 0xbd, 0x80, 0x45, 0x30, 0x1b, 0x51, 0x1f, 0xd7, 0x8c, + 0x72, 0x9c, 0xc1, 0x42, 0x0b, 0x30, 0x75, 0xe7, 0x75, 0x7a, 0xec, 0x31, 0x13, 0x53, 0x96, 0xb4, + 0xa1, 0xeb, 0xda, 0xcb, 0x39, 0x20, 0xee, 0xc6, 0x47, 0x6b, 0x70, 0xae, 0xc5, 0x75, 0x69, 0x76, + 0xda, 0x4b, 0xb8, 0x62, 0x1d, 0xcb, 0xb4, 0x06, 0x8f, 0xdd, 0xdb, 0x9f, 0x39, 0xb7, 0xda, 0x0b, + 0x01, 0xf7, 0xae, 0x67, 0xbf, 0x53, 0x82, 0x31, 0xe3, 0x2d, 0xaf, 0x01, 0xce, 0xb5, 0xb9, 0xe7, + 0xc7, 0x4a, 0x03, 0x3e, 0x3f, 0xf6, 0x34, 0x54, 0xa2, 0xd0, 0xf7, 0x5c, 0x4f, 0xe5, 0x60, 0x60, + 0x9a, 0xd1, 0xba, 0x28, 0xc3, 0x0a, 0x8a, 0xee, 0x42, 0x55, 0xbd, 0x6f, 0x23, 0x42, 0xe7, 0x8a, + 0x3a, 0xd9, 0xab, 0xc5, 0xab, 0xdf, 0xad, 0xd1, 0xbc, 0x90, 0x0d, 0x23, 0x6c, 0xe6, 0x4b, 0x5f, + 0x22, 0x16, 0xd3, 0xc0, 0x96, 0x44, 0x82, 0x05, 0xc4, 0xfe, 0xf3, 0x11, 0x38, 0xdb, 0x2b, 0xbd, + 0x15, 0xfa, 0x32, 0x8c, 0xf0, 0x36, 0x0a, 0x29, 0xff, 0xb9, 0xe2, 0x53, 0x68, 0x2d, 0x31, 0x82, + 0xa2, 0x59, 0xec, 0x37, 0x16, 0x3c, 0x05, 0x77, 0xdf, 0xd9, 0x12, 0x6a, 0xc4, 0xc9, 0x70, 0x5f, + 0x71, 0x34, 0xf7, 0x15, 0x87, 0x73, 0xf7, 0x9d, 0x2d, 0xb4, 0x07, 0xc3, 0x4d, 0x2f, 0x25, 0x8e, + 0x50, 0x99, 0x6f, 0x9f, 0x08, 0x73, 0xe2, 0x70, 0xbf, 0x74, 0xf6, 0x13, 0x73, 0x86, 0xe8, 0x3b, + 0x16, 0x9c, 0xda, 0xca, 0x86, 0x88, 0x88, 0x5d, 0xc5, 0x39, 0x81, 0x14, 0x66, 0x59, 0x46, 0xb5, + 0x33, 0xf7, 0xf6, 0x67, 0x4e, 0xe5, 0x0a, 0x71, 0xbe, 0x39, 0xe8, 0xe7, 0x2c, 0x18, 0x6d, 0x78, + 0xbe, 0x91, 0x9f, 0xe7, 0x04, 0x3e, 0xce, 0x15, 0xc6, 0x40, 0xef, 0xbc, 0xfc, 0x7f, 0x82, 0x25, + 0xe7, 0x7e, 0x57, 0x6c, 0x23, 0xc7, 0xbc, 0x62, 0x1b, 0x3d, 0xd1, 0x33, 0xd2, 0xdf, 0x29, 0xc1, + 0x93, 0x03, 0x7c, 0x08, 0x33, 0xae, 0xc0, 0x3a, 0x20, 0xae, 0xe0, 0x22, 0x0c, 0xc5, 0x24, 0x0a, + 0xf3, 0x9b, 0x1a, 0xf3, 0xcb, 0x61, 0x10, 0xf4, 0x04, 0x94, 0x9d, 0xc8, 0x13, 0x7b, 0x9a, 0xba, + 0x66, 0x9f, 0x5f, 0x5f, 0xc6, 0xb4, 0x9c, 0x7e, 0xce, 0xea, 0x96, 0x8c, 0x4e, 0x2a, 0x26, 0xf3, + 0x6a, 0xbf, 0x60, 0x27, 0x7e, 0x6a, 0x51, 0x50, 0xac, 0xf9, 0xda, 0x6b, 0x70, 0xbe, 0xff, 0x34, + 0x40, 0xcf, 0xc1, 0xd8, 0x56, 0xec, 0x04, 0xee, 0x36, 0x4b, 0x47, 0x2c, 0xc7, 0x84, 0x79, 0x93, + 0xeb, 0x62, 0x6c, 0xe2, 0xd8, 0x7f, 0x50, 0xea, 0x4d, 0x91, 0xaf, 0xf4, 0xc3, 0x8c, 0xb0, 0x18, + 0xbf, 0x52, 0x9f, 0xf1, 0x7b, 0x1d, 0x2a, 0x29, 0x73, 0x66, 0x27, 0x0d, 0x21, 0x2e, 0x0a, 0x8b, + 0xc7, 0xe2, 0xd3, 0x48, 0x10, 0xc7, 0x8a, 0x0d, 0x95, 0xeb, 0xbe, 0xce, 0xdf, 0x23, 0xe4, 0x7a, + 0xce, 0xec, 0xb5, 0x08, 0xa7, 0x8d, 0x74, 0x84, 0xdc, 0xcd, 0x97, 0x5f, 0x6d, 0xaa, 0x00, 0x97, + 0xf5, 0x1c, 0x1c, 0x77, 0xd5, 0xb0, 0x7f, 0xa3, 0x04, 0x8f, 0xf5, 0x15, 0x5f, 0xfa, 0xfe, 0xd5, + 0x7a, 0xc0, 0xfd, 0xeb, 0xb1, 0x27, 0xa8, 0x39, 0xc0, 0x43, 0x0f, 0x67, 0x80, 0x9f, 0x81, 0x8a, + 0x17, 0x24, 0xc4, 0x6d, 0xc7, 0x7c, 0xd0, 0x0c, 0xa7, 0xb7, 0x65, 0x51, 0x8e, 0x15, 0x86, 0xfd, + 0x87, 0xfd, 0xa7, 0x1a, 0xdd, 0xca, 0x7e, 0x68, 0x47, 0xe9, 0x45, 0x98, 0x70, 0xa2, 0x88, 0xe3, + 0xb1, 0xbb, 0xae, 0x5c, 0xc8, 0xda, 0xbc, 0x09, 0xc4, 0x59, 0x5c, 0x63, 0x0e, 0x8f, 0xf4, 0x9b, + 0xc3, 0xf6, 0x9f, 0x58, 0x50, 0xc5, 0xa4, 0xc1, 0xd3, 0x58, 0xa2, 0x3b, 0x62, 0x88, 0xac, 0x22, + 0xf2, 0x2b, 0xb0, 0xa7, 0x70, 0x3d, 0x96, 0x77, 0xa0, 0xd7, 0x60, 0x77, 0xa7, 0xd6, 0x2c, 0x1d, + 0x2a, 0xb5, 0xa6, 0x4a, 0xae, 0x58, 0xee, 0x9f, 0x5c, 0xd1, 0x7e, 0x67, 0x94, 0x76, 0x2f, 0x0a, + 0x17, 0x62, 0x52, 0x4f, 0xe8, 0xf7, 0x6d, 0xc7, 0x7e, 0xfe, 0x85, 0xb0, 0x9b, 0x78, 0x05, 0xd3, + 0xf2, 0xcc, 0x49, 0xbf, 0x74, 0xa8, 0x80, 0x9d, 0xf2, 0x81, 0x01, 0x3b, 0x2f, 0xc2, 0x44, 0x92, + 0x6c, 0xaf, 0xc7, 0xde, 0xae, 0x93, 0xd2, 0xf3, 0x83, 0x70, 0x95, 0xd0, 0xfe, 0xf7, 0x1b, 0x57, + 0x35, 0x10, 0x67, 0x71, 0xd1, 0x12, 0x4c, 0xe9, 0xb0, 0x19, 0x12, 0xa7, 0xcc, 0x33, 0x82, 0xcf, + 0x04, 0xe5, 0xfe, 0xae, 0x03, 0x6d, 0x04, 0x02, 0xee, 0xae, 0x43, 0x25, 0x56, 0xa6, 0x90, 0x36, + 0x64, 0x24, 0x2b, 0xb1, 0x32, 0x74, 0x68, 0x5b, 0xba, 0x6a, 0xa0, 0x55, 0x38, 0xc3, 0x27, 0x06, + 0x7b, 0x92, 0x52, 0xf5, 0x88, 0x7b, 0xb2, 0x7c, 0x5c, 0x10, 0x3a, 0xb3, 0xd4, 0x8d, 0x82, 0x7b, + 0xd5, 0xa3, 0x87, 0x03, 0x55, 0xbc, 0xbc, 0x28, 0x0e, 0xa9, 0xea, 0x70, 0xa0, 0xc8, 0x2c, 0xd7, + 0xb1, 0x89, 0x87, 0x3e, 0x0f, 0x8f, 0xea, 0xbf, 0xdc, 0xd1, 0x8c, 0x5b, 0x6e, 0x16, 0x45, 0x44, + 0xa2, 0x4a, 0xe5, 0xb7, 0xd4, 0x13, 0xad, 0x8e, 0xfb, 0xd5, 0x47, 0x5b, 0x70, 0x5e, 0x81, 0x2e, + 0xd3, 0x93, 0x58, 0x14, 0x7b, 0x09, 0xa9, 0x39, 0x09, 0xb9, 0x19, 0xfb, 0x2c, 0x86, 0xb1, 0xaa, + 0xdf, 0x82, 0x5d, 0xf2, 0xd2, 0xab, 0xbd, 0x30, 0xf1, 0x0a, 0x7e, 0x00, 0x15, 0x34, 0x07, 0x55, + 0x12, 0x38, 0x5b, 0x3e, 0x59, 0x5b, 0x58, 0x66, 0x91, 0x8d, 0x86, 0xa1, 0xe8, 0xb2, 0x04, 0x60, + 0x8d, 0xa3, 0x6e, 0xe7, 0xc6, 0xfb, 0x66, 0xd3, 0x5e, 0x87, 0xb3, 0x4d, 0x37, 0xa2, 0x7a, 0x80, + 0xe7, 0x92, 0x79, 0xd7, 0xa5, 0xa7, 0x79, 0xfa, 0x61, 0x78, 0x6a, 0x51, 0x75, 0xf5, 0xbc, 0xb4, + 0xb0, 0xde, 0x85, 0x83, 0x7b, 0xd6, 0xa4, 0x6b, 0x2c, 0x8a, 0xc3, 0xbd, 0xce, 0xf4, 0x99, 0xec, + 0x1a, 0x5b, 0xa7, 0x85, 0x98, 0xc3, 0xd0, 0x35, 0x40, 0xcc, 0x8f, 0xe1, 0x6a, 0x9a, 0x46, 0x4a, + 0xf1, 0x98, 0x3e, 0xcb, 0xba, 0x74, 0x5e, 0xd4, 0x40, 0x57, 0xba, 0x30, 0x70, 0x8f, 0x5a, 0xf6, + 0x1f, 0x5b, 0x30, 0xa1, 0xd6, 0xeb, 0x43, 0xf0, 0xe4, 0xf1, 0xb3, 0x9e, 0x3c, 0x4b, 0xc7, 0x97, + 0x78, 0xac, 0xe5, 0x7d, 0xae, 0x83, 0x7f, 0x61, 0x0c, 0x40, 0x4b, 0x45, 0xb5, 0x21, 0x59, 0x7d, + 0x37, 0xa4, 0x0f, 0xad, 0x44, 0xea, 0x15, 0xe1, 0x34, 0xfc, 0xc1, 0x46, 0x38, 0x6d, 0xc0, 0x39, + 0xa9, 0x2e, 0x70, 0xbb, 0xcb, 0xd5, 0x30, 0x51, 0x02, 0xae, 0x52, 0x7b, 0x42, 0x10, 0x3a, 0xb7, + 0xdc, 0x0b, 0x09, 0xf7, 0xae, 0x9b, 0xd1, 0x52, 0x46, 0x0f, 0xd2, 0x52, 0xf4, 0x9a, 0x5e, 0x69, + 0xc8, 0xc4, 0x80, 0xb9, 0x35, 0xbd, 0x72, 0x65, 0x03, 0x6b, 0x9c, 0xde, 0x82, 0xbd, 0x5a, 0x90, + 0x60, 0x87, 0x43, 0x0b, 0x76, 0x29, 0x62, 0xc6, 0xfa, 0x8a, 0x18, 0x69, 0xea, 0x19, 0xef, 0x6b, + 0xea, 0x79, 0x09, 0x26, 0xbd, 0x60, 0x9b, 0xc4, 0x5e, 0x4a, 0xea, 0x6c, 0x2d, 0x88, 0x67, 0x97, + 0xd5, 0xb6, 0xbe, 0x9c, 0x81, 0xe2, 0x1c, 0x76, 0x56, 0x2e, 0x4e, 0x0e, 0x20, 0x17, 0xfb, 0xec, + 0x46, 0xa7, 0x8a, 0xd9, 0x8d, 0x4e, 0x1f, 0x7f, 0x37, 0x9a, 0x3a, 0xd1, 0xdd, 0x08, 0x15, 0xb2, + 0x1b, 0x0d, 0x24, 0xe8, 0x8d, 0x03, 0xdd, 0xd9, 0x03, 0x0e, 0x74, 0xfd, 0xb6, 0xa2, 0x73, 0x47, + 0xde, 0x8a, 0x7a, 0xef, 0x32, 0x8f, 0x1c, 0x69, 0x97, 0xf9, 0x7a, 0x09, 0xce, 0x69, 0x39, 0x4c, + 0x67, 0xbf, 0xd7, 0xa0, 0x92, 0x88, 0xe5, 0x96, 0xe5, 0xe6, 0x07, 0xc3, 0xb1, 0x4c, 0xfb, 0xa8, + 0x29, 0x08, 0x36, 0xb0, 0x98, 0x7f, 0x16, 0x89, 0x59, 0x96, 0x96, 0xbc, 0x90, 0x5e, 0x10, 0xe5, + 0x58, 0x61, 0xd0, 0xf9, 0x45, 0x7f, 0x0b, 0x9f, 0xd7, 0x7c, 0xe4, 0xf6, 0x82, 0x06, 0x61, 0x13, + 0x0f, 0x3d, 0xcd, 0x99, 0x30, 0x01, 0x41, 0x05, 0xf5, 0xb8, 0x78, 0x35, 0x41, 0xca, 0x04, 0x05, + 0x95, 0xcd, 0x61, 0x8e, 0x78, 0xc3, 0xdd, 0xcd, 0x61, 0x37, 0x6c, 0x0a, 0xc3, 0xfe, 0x3f, 0x16, + 0x3c, 0xd6, 0x73, 0x28, 0x1e, 0xc2, 0xe6, 0xbb, 0x97, 0xdd, 0x7c, 0x37, 0x8a, 0x3a, 0x6e, 0x18, + 0xbd, 0xe8, 0xb3, 0x11, 0xff, 0x27, 0x0b, 0x26, 0x35, 0xfe, 0x43, 0xe8, 0xaa, 0x97, 0xed, 0x6a, + 0x71, 0x27, 0xab, 0x6a, 0x57, 0xdf, 0xfe, 0x98, 0xf5, 0x8d, 0x5f, 0x54, 0xcc, 0xbb, 0xf2, 0xc5, + 0xed, 0x03, 0x0c, 0xf4, 0x1d, 0x18, 0x61, 0x89, 0x4d, 0x93, 0x62, 0x2e, 0x4c, 0xb2, 0xfc, 0x99, + 0x87, 0xad, 0xbe, 0x30, 0x61, 0x7f, 0x13, 0x2c, 0x18, 0xb2, 0x1c, 0x42, 0x5e, 0x42, 0xa5, 0x79, + 0x5d, 0xb8, 0xb4, 0xe9, 0x1c, 0x42, 0xa2, 0x1c, 0x2b, 0x0c, 0xbb, 0x05, 0xd3, 0x59, 0xe2, 0x8b, + 0xa4, 0xc1, 0xee, 0xa5, 0x07, 0xea, 0xe6, 0x1c, 0x54, 0x1d, 0x56, 0x6b, 0xa5, 0xed, 0xe4, 0x9f, + 0xdd, 0x9e, 0x97, 0x00, 0xac, 0x71, 0xec, 0xdf, 0xb6, 0xe0, 0x4c, 0x8f, 0xce, 0x14, 0xe8, 0xca, + 0x97, 0x6a, 0x29, 0xd0, 0xe7, 0x29, 0xf4, 0x3a, 0x69, 0x38, 0xf2, 0xe6, 0xd3, 0x90, 0xb9, 0x8b, + 0xbc, 0x18, 0x4b, 0xb8, 0xfd, 0x3f, 0x2d, 0x38, 0x95, 0x6d, 0x6b, 0x42, 0xa5, 0x26, 0xef, 0xcc, + 0xa2, 0x97, 0xb8, 0xe1, 0x2e, 0x89, 0x3b, 0xb4, 0xe7, 0xbc, 0xd5, 0x4a, 0x6a, 0xce, 0x77, 0x61, + 0xe0, 0x1e, 0xb5, 0x58, 0x8e, 0x93, 0xba, 0x1a, 0x6d, 0x39, 0x53, 0x6e, 0x15, 0x39, 0x53, 0xf4, + 0xc7, 0x34, 0x6f, 0x87, 0x14, 0x4b, 0x6c, 0xf2, 0xb7, 0xdf, 0x1f, 0x02, 0xe5, 0xeb, 0xcb, 0xee, + 0xd8, 0x0a, 0xba, 0xa1, 0xcc, 0xbc, 0xcd, 0x5e, 0x3e, 0xc4, 0xdb, 0xec, 0x43, 0x0f, 0xba, 0xff, + 0xe2, 0xd6, 0x0b, 0xd3, 0x48, 0xa8, 0x7a, 0xb8, 0xa9, 0x41, 0xd8, 0xc4, 0xa3, 0x2d, 0xf1, 0xbd, + 0x5d, 0xc2, 0x2b, 0x8d, 0x64, 0x5b, 0xb2, 0x22, 0x01, 0x58, 0xe3, 0xd0, 0x96, 0xd4, 0xbd, 0x46, + 0x43, 0x1c, 0xc5, 0x55, 0x4b, 0xe8, 0xe8, 0x60, 0x06, 0xa1, 0x18, 0xdb, 0x61, 0xb8, 0x23, 0xb4, + 0x53, 0x85, 0x71, 0x35, 0x0c, 0x77, 0x30, 0x83, 0x50, 0x7d, 0x2a, 0x08, 0xe3, 0x96, 0xe3, 0x7b, + 0x6f, 0x90, 0xba, 0xe2, 0x22, 0xb4, 0x52, 0xa5, 0x4f, 0xdd, 0xe8, 0x46, 0xc1, 0xbd, 0xea, 0xd1, + 0x19, 0x18, 0xc5, 0xa4, 0xee, 0xb9, 0xa9, 0x49, 0x0d, 0xb2, 0x33, 0x70, 0xbd, 0x0b, 0x03, 0xf7, + 0xa8, 0x85, 0xe6, 0xe1, 0x94, 0xf4, 0xd5, 0x96, 0x31, 0x6b, 0x63, 0xd9, 0xf0, 0x19, 0x9c, 0x05, + 0xe3, 0x3c, 0x3e, 0x95, 0x36, 0x2d, 0x11, 0x93, 0xca, 0x94, 0x58, 0x43, 0xda, 0xc8, 0x58, 0x55, + 0xac, 0x30, 0xec, 0xaf, 0x95, 0xe9, 0xee, 0xd8, 0x27, 0x01, 0xed, 0x43, 0xbb, 0x11, 0xcf, 0xce, + 0xc8, 0xa1, 0x01, 0x66, 0xe4, 0xf3, 0x30, 0x7e, 0x27, 0x09, 0x03, 0x75, 0xdb, 0x3c, 0xdc, 0xf7, + 0xb6, 0xd9, 0xc0, 0xea, 0x7d, 0xdb, 0x3c, 0x52, 0xd4, 0x6d, 0xf3, 0xe8, 0x11, 0x6f, 0x9b, 0xdf, + 0x1b, 0x06, 0x95, 0xc2, 0xf1, 0x06, 0x49, 0xef, 0x86, 0xf1, 0x8e, 0x17, 0x34, 0x99, 0x8f, 0xfb, + 0x77, 0x2c, 0x18, 0xe7, 0xeb, 0x65, 0xc5, 0x74, 0x85, 0x6d, 0x14, 0x94, 0x6a, 0x30, 0xc3, 0x6c, + 0x76, 0xd3, 0x60, 0x94, 0xcb, 0xb3, 0x6f, 0x82, 0x70, 0xa6, 0x45, 0xe8, 0x67, 0x00, 0xa4, 0xdd, + 0xb2, 0x21, 0x45, 0xe6, 0x72, 0x31, 0xed, 0xc3, 0xa4, 0xa1, 0x75, 0xd3, 0x4d, 0xc5, 0x04, 0x1b, + 0x0c, 0xd1, 0xd7, 0xb5, 0x9b, 0x30, 0xf7, 0xd4, 0xfa, 0xd2, 0x89, 0x8c, 0xcd, 0x20, 0x4e, 0xc2, + 0x18, 0x46, 0xbd, 0xa0, 0x49, 0xe7, 0x89, 0xb8, 0xa0, 0xff, 0x44, 0xaf, 0xf8, 0x90, 0x95, 0xd0, + 0xa9, 0xd7, 0x1c, 0xdf, 0x09, 0x5c, 0x12, 0x2f, 0x73, 0x74, 0xf3, 0xe1, 0x17, 0x56, 0x80, 0x25, + 0xa1, 0xae, 0x5c, 0x9a, 0xc3, 0x83, 0xe4, 0xd2, 0x3c, 0xff, 0x59, 0x98, 0xea, 0xfa, 0x98, 0x87, + 0xf2, 0x09, 0x3e, 0xba, 0x3b, 0xb1, 0xfd, 0xaf, 0x46, 0xf4, 0xa6, 0x75, 0x23, 0xac, 0xf3, 0x8c, + 0x8e, 0xb1, 0xfe, 0xa2, 0x42, 0xf7, 0x2c, 0x70, 0x8a, 0x18, 0x8f, 0xc7, 0xa8, 0x42, 0x6c, 0xb2, + 0xa4, 0x73, 0x34, 0x72, 0x62, 0x12, 0x9c, 0xf4, 0x1c, 0x5d, 0x57, 0x4c, 0xb0, 0xc1, 0x10, 0x6d, + 0x67, 0x5c, 0x09, 0xaf, 0x1c, 0xdf, 0x95, 0x90, 0xc5, 0x98, 0xf6, 0x4a, 0x59, 0xf7, 0x6d, 0x0b, + 0x26, 0x83, 0xcc, 0xcc, 0x15, 0xf7, 0x38, 0x9b, 0x27, 0xb1, 0x2a, 0x78, 0x06, 0xe0, 0x6c, 0x19, + 0xce, 0xf1, 0xef, 0xb5, 0xa5, 0x0d, 0x1f, 0x72, 0x4b, 0xd3, 0xa9, 0x61, 0x47, 0xfa, 0xa5, 0x86, + 0x45, 0x81, 0x4a, 0x66, 0x3d, 0x5a, 0x78, 0x32, 0x6b, 0xe8, 0x91, 0xc8, 0xfa, 0x36, 0x54, 0xdd, + 0x98, 0x38, 0xe9, 0x11, 0xf3, 0x1a, 0xb3, 0x4b, 0xec, 0x05, 0x49, 0x00, 0x6b, 0x5a, 0xf6, 0x7f, + 0x28, 0xc3, 0x69, 0x39, 0x22, 0xd2, 0xcd, 0x8a, 0xee, 0x8f, 0x9c, 0xaf, 0x56, 0x6e, 0xd5, 0xfe, + 0x78, 0x55, 0x02, 0xb0, 0xc6, 0xa1, 0xfa, 0x58, 0x3b, 0x21, 0x6b, 0x11, 0x09, 0x56, 0xbc, 0xad, + 0x44, 0xdc, 0x3f, 0xaa, 0x85, 0x72, 0x53, 0x83, 0xb0, 0x89, 0x47, 0x95, 0x71, 0xae, 0x17, 0x27, + 0x79, 0xaf, 0x45, 0xa1, 0x6f, 0x63, 0x09, 0x47, 0xbf, 0xda, 0x33, 0x23, 0x7e, 0x31, 0xfe, 0xba, + 0x5d, 0xde, 0x65, 0x87, 0x4c, 0x85, 0xff, 0x96, 0x05, 0xa7, 0x76, 0x32, 0xf1, 0x41, 0x52, 0x24, + 0x1f, 0x33, 0x92, 0x35, 0x1b, 0x74, 0xa4, 0xa7, 0x70, 0xb6, 0x3c, 0xc1, 0x79, 0xee, 0xf6, 0xff, + 0xb6, 0xc0, 0x14, 0x4f, 0x83, 0x69, 0x56, 0xc6, 0x13, 0x36, 0xa5, 0x03, 0x9e, 0xb0, 0x91, 0x4a, + 0x58, 0x79, 0x30, 0xa5, 0x7f, 0xe8, 0x10, 0x4a, 0xff, 0x70, 0x5f, 0xad, 0xed, 0x09, 0x28, 0xb7, + 0xbd, 0xba, 0xd0, 0xdb, 0xf5, 0x6d, 0xe3, 0xf2, 0x22, 0xa6, 0xe5, 0xf6, 0xef, 0x0e, 0xeb, 0x73, + 0xba, 0x70, 0x33, 0xfd, 0xa1, 0xe8, 0x76, 0x43, 0x05, 0x26, 0xf3, 0x9e, 0xdf, 0xe8, 0x0a, 0x4c, + 0xfe, 0xf1, 0xc3, 0x7b, 0x11, 0xf3, 0x01, 0xea, 0x17, 0x97, 0x3c, 0x7a, 0x80, 0x0b, 0xf1, 0x1d, + 0xa8, 0xd0, 0xa3, 0x0d, 0x33, 0xb8, 0x55, 0x32, 0x8d, 0xaa, 0x5c, 0x15, 0xe5, 0xf7, 0xf7, 0x67, + 0x7e, 0xec, 0xf0, 0xcd, 0x92, 0xb5, 0xb1, 0xa2, 0x8f, 0x12, 0xa8, 0xd2, 0xdf, 0xcc, 0xdb, 0x59, + 0x1c, 0x9a, 0x6e, 0x2a, 0x59, 0x24, 0x01, 0x85, 0xb8, 0x52, 0x6b, 0x3e, 0x28, 0x80, 0x2a, 0x7b, + 0x8d, 0x83, 0x31, 0xe5, 0x67, 0xab, 0x75, 0xe5, 0x73, 0x2c, 0x01, 0xf7, 0xf7, 0x67, 0x5e, 0x3c, + 0x3c, 0x53, 0x55, 0x1d, 0x6b, 0x16, 0xf6, 0xdb, 0x43, 0x7a, 0xee, 0x8a, 0x78, 0xf4, 0x1f, 0x8a, + 0xb9, 0xfb, 0x42, 0x6e, 0xee, 0x5e, 0xec, 0x9a, 0xbb, 0x93, 0xfa, 0xd5, 0x88, 0xcc, 0x6c, 0x7c, + 0xd8, 0x1b, 0xec, 0xc1, 0xe7, 0x78, 0xa6, 0x59, 0xbc, 0xde, 0xf6, 0x62, 0x92, 0xac, 0xc7, 0xed, + 0xc0, 0x0b, 0x9a, 0xe2, 0x59, 0x3a, 0x43, 0xb3, 0xc8, 0x80, 0x71, 0x1e, 0x9f, 0x3d, 0x69, 0xd7, + 0x09, 0xdc, 0xdb, 0xce, 0x2e, 0x9f, 0x55, 0x46, 0x88, 0xee, 0x86, 0x28, 0xc7, 0x0a, 0xc3, 0x7e, + 0x87, 0xdd, 0xdd, 0x1a, 0x61, 0x16, 0x74, 0x4e, 0xf8, 0xec, 0xf9, 0x13, 0x1e, 0xdf, 0xab, 0xe6, + 0x04, 0x7f, 0xf3, 0x84, 0xc3, 0xd0, 0x5d, 0x18, 0xdd, 0xe2, 0xe9, 0xc4, 0x8b, 0x49, 0xed, 0x25, + 0x72, 0x93, 0xb3, 0x14, 0x9b, 0x32, 0x51, 0xf9, 0x7d, 0xfd, 0x13, 0x4b, 0x6e, 0xf6, 0xbb, 0x43, + 0x70, 0x2a, 0xf7, 0x40, 0x46, 0x26, 0x07, 0x49, 0xe9, 0xc0, 0x1c, 0x24, 0x5f, 0x00, 0xa8, 0x93, + 0xc8, 0x0f, 0x3b, 0x4c, 0xcd, 0x19, 0x3a, 0xb4, 0x9a, 0xa3, 0x34, 0xe3, 0x45, 0x45, 0x05, 0x1b, + 0x14, 0x45, 0x50, 0x33, 0x4f, 0x69, 0x92, 0x0b, 0x6a, 0x36, 0xb2, 0xeb, 0x8d, 0x3c, 0xdc, 0xec, + 0x7a, 0x1e, 0x9c, 0xe2, 0x4d, 0x54, 0xc1, 0x0c, 0x47, 0x88, 0x59, 0x60, 0x6e, 0xb0, 0x8b, 0x59, + 0x32, 0x38, 0x4f, 0xf7, 0x83, 0x7c, 0xff, 0x06, 0x7d, 0x12, 0xaa, 0xf2, 0x3b, 0x27, 0xd3, 0x55, + 0x1d, 0x10, 0x26, 0xa7, 0x01, 0x7b, 0x97, 0x46, 0xfc, 0xb4, 0xbf, 0x55, 0xa2, 0x5a, 0x29, 0xff, + 0xa7, 0x42, 0x74, 0x9f, 0x82, 0x11, 0xa7, 0x9d, 0x6e, 0x87, 0x5d, 0x09, 0xdc, 0xe7, 0x59, 0x29, + 0x16, 0x50, 0xb4, 0x02, 0x43, 0x75, 0x1d, 0x77, 0x79, 0x98, 0x51, 0xd4, 0x06, 0x3e, 0x27, 0x25, + 0x98, 0x51, 0x41, 0x8f, 0xc3, 0x50, 0xea, 0x34, 0x33, 0x4f, 0x2b, 0x6e, 0x3a, 0xcd, 0x04, 0xb3, + 0x52, 0x73, 0xd3, 0x1c, 0x3a, 0x60, 0xd3, 0x7c, 0x11, 0x26, 0x12, 0xaf, 0x19, 0x38, 0x69, 0x3b, + 0x26, 0xc6, 0x65, 0x92, 0xf6, 0x0f, 0x30, 0x81, 0x38, 0x8b, 0x6b, 0xff, 0xdb, 0x2a, 0x9c, 0xed, + 0xf5, 0x04, 0x76, 0xd1, 0x2e, 0xef, 0xbd, 0x78, 0x3c, 0x3c, 0x97, 0xf7, 0x3e, 0xdc, 0x7d, 0xc3, + 0xe5, 0xdd, 0x37, 0x5c, 0xde, 0xbf, 0x6e, 0x41, 0x55, 0x79, 0x7a, 0x0b, 0x47, 0xd6, 0x57, 0x4f, + 0xe0, 0x99, 0x71, 0xc9, 0x42, 0xf8, 0x02, 0xcb, 0xbf, 0x58, 0x33, 0x3f, 0x39, 0x1f, 0xf8, 0x07, + 0x36, 0xe8, 0x50, 0x3e, 0xf0, 0x2a, 0x40, 0x60, 0xb8, 0x88, 0x00, 0x81, 0x3e, 0x9f, 0xaa, 0x67, + 0x80, 0xc0, 0xb7, 0x2d, 0x18, 0x73, 0xde, 0x68, 0xc7, 0x64, 0x91, 0xec, 0xae, 0x45, 0x89, 0x10, + 0xb0, 0xaf, 0x15, 0xdf, 0x80, 0x79, 0xcd, 0x44, 0x24, 0xa1, 0xd5, 0x05, 0xd8, 0x6c, 0x42, 0x26, + 0x20, 0x60, 0xb4, 0x88, 0x80, 0x80, 0x5e, 0xcd, 0x39, 0x30, 0x20, 0xe0, 0x45, 0x98, 0x70, 0xfd, + 0x30, 0x20, 0xeb, 0x71, 0x98, 0x86, 0x6e, 0xe8, 0x0b, 0x65, 0x5a, 0x89, 0x84, 0x05, 0x13, 0x88, + 0xb3, 0xb8, 0xfd, 0xa2, 0x09, 0xaa, 0xc7, 0x8c, 0x26, 0x80, 0x13, 0x8d, 0x26, 0xf8, 0x8b, 0x12, + 0xcc, 0x1c, 0xf0, 0xe5, 0xd0, 0x0b, 0x30, 0x1e, 0xc6, 0x4d, 0x27, 0xf0, 0xde, 0xe0, 0x11, 0x9b, + 0xc3, 0xd9, 0xfc, 0x17, 0x6b, 0x06, 0x0c, 0x67, 0x30, 0xa5, 0xbf, 0xf1, 0x48, 0x1f, 0x7f, 0xe3, + 0x4f, 0xc3, 0x58, 0x4a, 0x9c, 0x96, 0x70, 0xae, 0x10, 0xa7, 0x1c, 0x7d, 0x6b, 0xa4, 0x41, 0xd8, + 0xc4, 0xa3, 0x73, 0x65, 0xd2, 0x71, 0x5d, 0x92, 0x24, 0xd2, 0xa1, 0x58, 0x58, 0x60, 0x0a, 0xf3, + 0x56, 0x66, 0x86, 0xad, 0xf9, 0x0c, 0x0b, 0x9c, 0x63, 0x49, 0x1b, 0xef, 0xf8, 0x3e, 0x8f, 0x1d, + 0x20, 0xf2, 0x45, 0x64, 0x9d, 0xa9, 0x41, 0x83, 0xb0, 0x89, 0x67, 0xff, 0x66, 0x09, 0x9e, 0x78, + 0xa0, 0x0c, 0x19, 0xd8, 0xd7, 0xbb, 0x9d, 0x90, 0x38, 0x7f, 0xeb, 0x72, 0x33, 0x21, 0x31, 0x66, + 0x10, 0x3e, 0x4a, 0x51, 0x64, 0x3c, 0xc5, 0x52, 0x74, 0x68, 0x01, 0x1f, 0xa5, 0x0c, 0x0b, 0x9c, + 0x63, 0x99, 0x1f, 0xa5, 0xa1, 0x01, 0x47, 0xe9, 0x1f, 0x97, 0xe0, 0xc9, 0x01, 0x24, 0x6d, 0x81, + 0x21, 0x18, 0xd9, 0x10, 0x96, 0xf2, 0x07, 0x13, 0xc2, 0x72, 0xd4, 0xe1, 0x7a, 0xa7, 0x04, 0xe7, + 0xfb, 0x0b, 0x3c, 0xf4, 0x13, 0xf4, 0xa4, 0x24, 0x3d, 0x2a, 0xcc, 0xf0, 0x97, 0x33, 0xfc, 0x94, + 0x94, 0x01, 0xe1, 0x3c, 0x2e, 0x9a, 0x05, 0x88, 0x9c, 0x74, 0x3b, 0xb9, 0xbc, 0xe7, 0x25, 0xa9, + 0x88, 0xce, 0x9c, 0xe4, 0xf6, 0x6e, 0x59, 0x8a, 0x0d, 0x0c, 0xca, 0x8e, 0xfd, 0x5b, 0x0c, 0x6f, + 0x84, 0x29, 0xaf, 0xc4, 0x95, 0xb5, 0x33, 0x32, 0x01, 0xa0, 0x01, 0xc2, 0x79, 0x5c, 0xca, 0x8e, + 0xdd, 0xa8, 0xf0, 0x86, 0x8a, 0xe7, 0xde, 0x29, 0xbb, 0x15, 0x55, 0x8a, 0x0d, 0x8c, 0x7c, 0x60, + 0xcf, 0xf0, 0x00, 0x81, 0x3d, 0xff, 0xbc, 0x04, 0x8f, 0xf5, 0xdd, 0x30, 0x07, 0x5b, 0x80, 0x1f, + 0xbe, 0x88, 0x9e, 0xa3, 0xcd, 0x9d, 0x43, 0xc6, 0xa9, 0xfc, 0x49, 0x9f, 0x99, 0x26, 0xe2, 0x54, + 0xf2, 0x5b, 0x85, 0x75, 0xd8, 0xad, 0xe2, 0x43, 0x34, 0x9e, 0x5d, 0xa1, 0x29, 0x43, 0x87, 0x08, + 0x4d, 0xc9, 0x7d, 0x8c, 0xe1, 0x01, 0x17, 0xf2, 0x77, 0xfb, 0x0f, 0x2f, 0x55, 0xb0, 0x07, 0xb2, + 0x41, 0x2d, 0xc2, 0x69, 0x2f, 0x60, 0x19, 0x5f, 0x37, 0xda, 0x5b, 0x22, 0x76, 0xb7, 0x94, 0x7d, + 0x96, 0x68, 0x39, 0x07, 0xc7, 0x5d, 0x35, 0x3e, 0x84, 0xa1, 0x42, 0x47, 0x1c, 0xd2, 0x2f, 0x40, + 0x55, 0xd1, 0xe6, 0xee, 0x8f, 0xea, 0x83, 0x76, 0xb9, 0x3f, 0xaa, 0xaf, 0x69, 0x60, 0xd1, 0x91, + 0xd8, 0x21, 0x9d, 0xfc, 0xcc, 0xbc, 0x4e, 0x3a, 0xec, 0x2a, 0xd4, 0xfe, 0x14, 0x8c, 0xab, 0x93, + 0xe2, 0xa0, 0xc9, 0x4a, 0xed, 0xb7, 0x47, 0x60, 0x22, 0x93, 0xa3, 0x21, 0x63, 0x98, 0xb1, 0x0e, + 0x34, 0xcc, 0x30, 0x77, 0xd6, 0x76, 0x20, 0x73, 0xfe, 0x1a, 0xee, 0xac, 0xed, 0x80, 0x60, 0x0e, + 0xa3, 0xe7, 0xf3, 0x7a, 0xdc, 0xc1, 0xed, 0x40, 0xb8, 0x9d, 0xa9, 0xf3, 0xf9, 0x22, 0x2b, 0xc5, + 0x02, 0x8a, 0xbe, 0x6a, 0xc1, 0x78, 0xc2, 0xac, 0x7e, 0xdc, 0xac, 0x25, 0x3e, 0xe8, 0xb5, 0x22, + 0x5e, 0x9f, 0x15, 0xf9, 0x48, 0xd8, 0x8d, 0xb5, 0x59, 0x82, 0x33, 0x1c, 0xd1, 0xcf, 0x5b, 0xe6, + 0xbb, 0xbb, 0x23, 0x45, 0xb8, 0x4b, 0xe6, 0x53, 0x60, 0x70, 0x7b, 0xc8, 0x83, 0x9f, 0xdf, 0xd5, + 0xcf, 0x71, 0x8f, 0x3e, 0xbc, 0xe7, 0xb8, 0x3f, 0x09, 0xd5, 0x96, 0x13, 0x78, 0x0d, 0x92, 0xa4, + 0xdc, 0x0c, 0x24, 0x33, 0xf3, 0xc8, 0x42, 0xac, 0xe1, 0x74, 0xb3, 0x4b, 0x58, 0xc7, 0x52, 0xc3, + 0x6e, 0xc3, 0x36, 0xbb, 0x0d, 0x5d, 0x8c, 0x4d, 0x1c, 0xd3, 0xc8, 0x04, 0x1f, 0xa8, 0x91, 0x69, + 0xec, 0x00, 0x23, 0xd3, 0x3f, 0xb5, 0xe0, 0x5c, 0xcf, 0xaf, 0xf6, 0xe1, 0x75, 0x44, 0xb2, 0xdf, + 0x2f, 0xc3, 0x99, 0x1e, 0xc9, 0x56, 0x50, 0xe7, 0xc4, 0xde, 0x91, 0x16, 0xd9, 0x5c, 0x26, 0xfa, + 0x4e, 0xe2, 0xc3, 0x99, 0x78, 0xb5, 0x99, 0xb5, 0xfc, 0x70, 0xcd, 0xac, 0xc6, 0xb4, 0x1c, 0xfa, + 0x40, 0xa7, 0xe5, 0xf0, 0x01, 0xd3, 0xf2, 0xfd, 0x32, 0x18, 0xcf, 0xc2, 0xa3, 0xaf, 0x98, 0x09, + 0x90, 0xac, 0xa2, 0x92, 0xf5, 0x70, 0xe2, 0x2a, 0x81, 0x12, 0x6f, 0x4e, 0xaf, 0x7c, 0x4a, 0x79, + 0x09, 0x50, 0x1a, 0x40, 0x02, 0xf8, 0x32, 0xd3, 0x54, 0xb9, 0xf8, 0x4c, 0x53, 0xd5, 0x7c, 0x96, + 0x29, 0xf4, 0x3b, 0x16, 0x4c, 0xb7, 0xfa, 0xe4, 0x36, 0x2c, 0x26, 0x37, 0x40, 0xbf, 0xcc, 0x89, + 0xb5, 0xc7, 0xef, 0xed, 0xcf, 0xf4, 0x4d, 0x29, 0x89, 0xfb, 0xb6, 0xca, 0xfe, 0x7b, 0x16, 0x5f, + 0xc5, 0xb9, 0xaf, 0xa0, 0xb7, 0x59, 0xeb, 0x01, 0xdb, 0xec, 0x33, 0xec, 0xa5, 0xb2, 0xc6, 0x55, + 0xe2, 0xf8, 0x62, 0x3b, 0x36, 0x1f, 0x1d, 0x63, 0xe5, 0x58, 0x61, 0xb0, 0x17, 0x09, 0x7c, 0x3f, + 0xbc, 0x7b, 0xb9, 0x15, 0xa5, 0x1d, 0xb1, 0x31, 0xeb, 0x17, 0x09, 0x14, 0x04, 0x1b, 0x58, 0xf6, + 0xaf, 0x97, 0xf8, 0x0c, 0x14, 0x37, 0x91, 0x2f, 0xe4, 0x32, 0x63, 0x0f, 0x7e, 0x89, 0xf7, 0x65, + 0x00, 0x57, 0xbd, 0x5f, 0x54, 0xcc, 0x23, 0xf3, 0xfa, 0x3d, 0x24, 0xf3, 0xe5, 0x73, 0x59, 0x86, + 0x0d, 0x7e, 0x19, 0xc1, 0x54, 0x3e, 0x50, 0x30, 0x65, 0xd6, 0xe8, 0xd0, 0x01, 0x6b, 0xf4, 0x2f, + 0x2c, 0xc8, 0xa8, 0x17, 0x28, 0x82, 0x61, 0xda, 0xdc, 0x4e, 0x31, 0x4f, 0x33, 0x99, 0xa4, 0xa9, + 0x9c, 0x11, 0xd3, 0x9e, 0xfd, 0xc4, 0x9c, 0x11, 0xf2, 0xc5, 0x85, 0x65, 0xa9, 0x88, 0xe7, 0xc3, + 0x4c, 0x86, 0x57, 0xc3, 0x70, 0x87, 0xdf, 0x73, 0xe8, 0xcb, 0x4f, 0xfb, 0x05, 0x98, 0xea, 0x6a, + 0x14, 0x4b, 0x82, 0x1b, 0xca, 0xf7, 0xa8, 0x8c, 0xe9, 0xca, 0xa2, 0x86, 0x30, 0x87, 0xd9, 0xef, + 0x58, 0x70, 0x3a, 0x4f, 0x1e, 0xfd, 0x8a, 0x05, 0x53, 0x49, 0x9e, 0xde, 0x49, 0x8d, 0x9d, 0x72, + 0xe6, 0xe9, 0x02, 0xe1, 0xee, 0x46, 0xd8, 0xff, 0x5f, 0x4c, 0xfe, 0xdb, 0x5e, 0x50, 0x0f, 0xef, + 0xaa, 0x5d, 0xde, 0xea, 0xbb, 0xcb, 0xd3, 0xf5, 0xe8, 0x6e, 0x93, 0x7a, 0xdb, 0xef, 0x0a, 0x57, + 0xda, 0x10, 0xe5, 0x58, 0x61, 0x64, 0x5e, 0x78, 0x2e, 0x1f, 0xf8, 0xc2, 0xf3, 0xf3, 0x30, 0x6e, + 0xbe, 0xb9, 0x26, 0xe6, 0x25, 0xd3, 0x6e, 0xcd, 0xe7, 0xd9, 0x70, 0x06, 0x2b, 0xf7, 0xb4, 0xee, + 0xf0, 0x81, 0x4f, 0xeb, 0x3e, 0x0d, 0x15, 0xf1, 0x4c, 0xac, 0x74, 0x79, 0xe3, 0xb1, 0x50, 0xa2, + 0x0c, 0x2b, 0x28, 0x95, 0x26, 0x2d, 0x27, 0x68, 0x3b, 0x3e, 0x1d, 0x21, 0x11, 0xc0, 0xa9, 0x96, + 0xe1, 0xaa, 0x82, 0x60, 0x03, 0x8b, 0xf6, 0x38, 0xf5, 0x5a, 0xe4, 0x95, 0x30, 0x90, 0xce, 0x22, + 0xaa, 0xc7, 0x9b, 0xa2, 0x1c, 0x2b, 0x0c, 0xfb, 0xbf, 0x5b, 0x90, 0x7f, 0xe3, 0x32, 0x63, 0x32, + 0xb0, 0x0e, 0x0c, 0x1a, 0xcd, 0x86, 0x9c, 0x95, 0x06, 0x0a, 0x39, 0x33, 0xa3, 0xc1, 0xca, 0x0f, + 0x8c, 0x06, 0xfb, 0x11, 0xfd, 0x94, 0x02, 0x0f, 0x1b, 0x1b, 0xeb, 0xf5, 0x8c, 0x02, 0xb2, 0x61, + 0xc4, 0x75, 0x54, 0x5a, 0x81, 0x71, 0xae, 0x88, 0x2f, 0xcc, 0x33, 0x24, 0x01, 0xa9, 0x6d, 0xbd, + 0xfb, 0xfd, 0x0b, 0x1f, 0xfb, 0xee, 0xf7, 0x2f, 0x7c, 0xec, 0x8f, 0xbe, 0x7f, 0xe1, 0x63, 0x5f, + 0xbd, 0x77, 0xc1, 0x7a, 0xf7, 0xde, 0x05, 0xeb, 0xbb, 0xf7, 0x2e, 0x58, 0x7f, 0x74, 0xef, 0x82, + 0xf5, 0xfe, 0xbd, 0x0b, 0xd6, 0xb7, 0xff, 0xeb, 0x85, 0x8f, 0xbd, 0xd2, 0xd3, 0xb9, 0x87, 0xfe, + 0x78, 0xd6, 0xad, 0xcf, 0xed, 0x5e, 0x62, 0xfe, 0x25, 0x74, 0x35, 0xcc, 0x19, 0x53, 0x60, 0x4e, + 0xae, 0x86, 0xbf, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x4d, 0x6e, 0xad, 0x99, 0x28, 0xbe, 0x00, 0x00, } func (m *AWSAuthConfig) Marshal() (dAtA []byte, err error) { @@ -5884,139 +5817,6 @@ func (m *ApplicationSetSyncPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } -func (m *ApplicationSetTemplate) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ApplicationSetTemplate) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ApplicationSetTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ApplicationSetTemplateMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ApplicationSetTemplateMeta) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ApplicationSetTemplateMeta) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ApplicationSetTemplateMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Finalizers) > 0 { - for iNdEx := len(m.Finalizers) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Finalizers[iNdEx]) - copy(dAtA[i:], m.Finalizers[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Finalizers[iNdEx]))) - i-- - dAtA[i] = 0x2a - } - } - if len(m.Annotations) > 0 { - keysForAnnotations := make([]string, 0, len(m.Annotations)) - for k := range m.Annotations { - keysForAnnotations = append(keysForAnnotations, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) - for iNdEx := len(keysForAnnotations) - 1; iNdEx >= 0; iNdEx-- { - v := m.Annotations[string(keysForAnnotations[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForAnnotations[iNdEx]) - copy(dAtA[i:], keysForAnnotations[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotations[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x22 - } - } - if len(m.Labels) > 0 { - keysForLabels := make([]string, 0, len(m.Labels)) - for k := range m.Labels { - keysForLabels = append(keysForLabels, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) - for iNdEx := len(keysForLabels) - 1; iNdEx >= 0; iNdEx-- { - v := m.Labels[string(keysForLabels[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForLabels[iNdEx]) - copy(dAtA[i:], keysForLabels[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForLabels[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x1a - } - } - i -= len(m.Namespace) - copy(dAtA[i:], m.Namespace) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - func (m *ApplicationSetTerminalGenerator) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7446,16 +7246,18 @@ func (m *ClusterGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x1a } } - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if m.Template != nil { + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } - i-- - dAtA[i] = 0x12 { size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -7859,16 +7661,18 @@ func (m *DuckTypeGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x32 } } - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if m.Template != nil { + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a } - i-- - dAtA[i] = 0x2a { size, err := m.LabelSelector.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -8090,16 +7894,18 @@ func (m *GitGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(len(m.PathParamPrefix))) i-- dAtA[i] = 0x3a - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if m.Template != nil { + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 } - i-- - dAtA[i] = 0x32 if m.RequeueAfterSeconds != nil { i = encodeVarintGenerated(dAtA, i, uint64(*m.RequeueAfterSeconds)) i-- @@ -8738,16 +8544,18 @@ func (m *ListGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if m.Template != nil { + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } - i-- - dAtA[i] = 0x12 if len(m.Elements) > 0 { for iNdEx := len(m.Elements) - 1; iNdEx >= 0; iNdEx-- { { @@ -8856,16 +8664,18 @@ func (m *MatrixGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if m.Template != nil { + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } - i-- - dAtA[i] = 0x12 if len(m.Generators) > 0 { for iNdEx := len(m.Generators) - 1; iNdEx >= 0; iNdEx-- { { @@ -8903,16 +8713,18 @@ func (m *MergeGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if m.Template != nil { + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a } - i-- - dAtA[i] = 0x1a if len(m.MergeKeys) > 0 { for iNdEx := len(m.MergeKeys) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.MergeKeys[iNdEx]) @@ -9427,16 +9239,18 @@ func (m *PullRequestGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if m.Template != nil { + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a } - i-- - dAtA[i] = 0x3a if m.RequeueAfterSeconds != nil { i = encodeVarintGenerated(dAtA, i, uint64(*m.RequeueAfterSeconds)) i-- @@ -11294,16 +11108,18 @@ func (m *SCMProviderGenerator) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if m.Template != nil { + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x52 } - i-- - dAtA[i] = 0x52 if m.RequeueAfterSeconds != nil { i = encodeVarintGenerated(dAtA, i, uint64(*m.RequeueAfterSeconds)) i-- @@ -13031,54 +12847,6 @@ func (m *ApplicationSetSyncPolicy) Size() (n int) { return n } -func (m *ApplicationSetTemplate) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ApplicationSetTemplateMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ApplicationSetTemplateMeta) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Namespace) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Labels) > 0 { - for k, v := range m.Labels { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if len(m.Annotations) > 0 { - for k, v := range m.Annotations { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if len(m.Finalizers) > 0 { - for _, s := range m.Finalizers { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - func (m *ApplicationSetTerminalGenerator) Size() (n int) { if m == nil { return 0 @@ -13607,8 +13375,10 @@ func (m *ClusterGenerator) Size() (n int) { _ = l l = m.Selector.Size() n += 1 + l + sovGenerated(uint64(l)) - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) + if m.Template != nil { + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + } if len(m.Values) > 0 { for k, v := range m.Values { _ = k @@ -13764,8 +13534,10 @@ func (m *DuckTypeGenerator) Size() (n int) { } l = m.LabelSelector.Size() n += 1 + l + sovGenerated(uint64(l)) - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) + if m.Template != nil { + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + } if len(m.Values) > 0 { for k, v := range m.Values { _ = k @@ -13867,8 +13639,10 @@ func (m *GitGenerator) Size() (n int) { if m.RequeueAfterSeconds != nil { n += 1 + sovGenerated(uint64(*m.RequeueAfterSeconds)) } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) + if m.Template != nil { + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + } l = len(m.PathParamPrefix) n += 1 + l + sovGenerated(uint64(l)) return n @@ -14106,8 +13880,10 @@ func (m *ListGenerator) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) + if m.Template != nil { + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -14148,8 +13924,10 @@ func (m *MatrixGenerator) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) + if m.Template != nil { + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -14171,8 +13949,10 @@ func (m *MergeGenerator) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) + if m.Template != nil { + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -14395,8 +14175,10 @@ func (m *PullRequestGenerator) Size() (n int) { if m.RequeueAfterSeconds != nil { n += 1 + sovGenerated(uint64(*m.RequeueAfterSeconds)) } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) + if m.Template != nil { + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -15098,8 +14880,10 @@ func (m *SCMProviderGenerator) Size() (n int) { if m.RequeueAfterSeconds != nil { n += 1 + sovGenerated(uint64(*m.RequeueAfterSeconds)) } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) + if m.Template != nil { + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -15858,7 +15642,7 @@ func (this *ApplicationSetSpec) String() string { s := strings.Join([]string{`&ApplicationSetSpec{`, `GoTemplate:` + fmt.Sprintf("%v", this.GoTemplate) + `,`, `Generators:` + repeatedStringForGenerators + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "JSON", "v11.JSON", 1), `&`, ``, 1) + `,`, `SyncPolicy:` + strings.Replace(this.SyncPolicy.String(), "ApplicationSetSyncPolicy", "ApplicationSetSyncPolicy", 1) + `,`, `Strategy:` + strings.Replace(this.Strategy.String(), "ApplicationSetStrategy", "ApplicationSetStrategy", 1) + `,`, `}`, @@ -15907,51 +15691,6 @@ func (this *ApplicationSetSyncPolicy) String() string { }, "") return s } -func (this *ApplicationSetTemplate) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ApplicationSetTemplate{`, - `ApplicationSetTemplateMeta:` + strings.Replace(strings.Replace(this.ApplicationSetTemplateMeta.String(), "ApplicationSetTemplateMeta", "ApplicationSetTemplateMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ApplicationSpec", "ApplicationSpec", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ApplicationSetTemplateMeta) String() string { - if this == nil { - return "nil" - } - keysForLabels := make([]string, 0, len(this.Labels)) - for k := range this.Labels { - keysForLabels = append(keysForLabels, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) - mapStringForLabels := "map[string]string{" - for _, k := range keysForLabels { - mapStringForLabels += fmt.Sprintf("%v: %v,", k, this.Labels[k]) - } - mapStringForLabels += "}" - keysForAnnotations := make([]string, 0, len(this.Annotations)) - for k := range this.Annotations { - keysForAnnotations = append(keysForAnnotations, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) - mapStringForAnnotations := "map[string]string{" - for _, k := range keysForAnnotations { - mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k]) - } - mapStringForAnnotations += "}" - s := strings.Join([]string{`&ApplicationSetTemplateMeta{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, - `Labels:` + mapStringForLabels + `,`, - `Annotations:` + mapStringForAnnotations + `,`, - `Finalizers:` + fmt.Sprintf("%v", this.Finalizers) + `,`, - `}`, - }, "") - return s -} func (this *ApplicationSetTerminalGenerator) String() string { if this == nil { return "nil" @@ -16355,7 +16094,7 @@ func (this *ClusterGenerator) String() string { mapStringForValues += "}" s := strings.Join([]string{`&ClusterGenerator{`, `Selector:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1), `&`, ``, 1) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(fmt.Sprintf("%v", this.Template), "JSON", "v11.JSON", 1) + `,`, `Values:` + mapStringForValues + `,`, `}`, }, "") @@ -16475,7 +16214,7 @@ func (this *DuckTypeGenerator) String() string { `Name:` + fmt.Sprintf("%v", this.Name) + `,`, `RequeueAfterSeconds:` + valueToStringGenerated(this.RequeueAfterSeconds) + `,`, `LabelSelector:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LabelSelector), "LabelSelector", "v1.LabelSelector", 1), `&`, ``, 1) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(fmt.Sprintf("%v", this.Template), "JSON", "v11.JSON", 1) + `,`, `Values:` + mapStringForValues + `,`, `}`, }, "") @@ -16557,7 +16296,7 @@ func (this *GitGenerator) String() string { `Files:` + repeatedStringForFiles + `,`, `Revision:` + fmt.Sprintf("%v", this.Revision) + `,`, `RequeueAfterSeconds:` + valueToStringGenerated(this.RequeueAfterSeconds) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(fmt.Sprintf("%v", this.Template), "JSON", "v11.JSON", 1) + `,`, `PathParamPrefix:` + fmt.Sprintf("%v", this.PathParamPrefix) + `,`, `}`, }, "") @@ -16762,7 +16501,7 @@ func (this *ListGenerator) String() string { repeatedStringForElements += "}" s := strings.Join([]string{`&ListGenerator{`, `Elements:` + repeatedStringForElements + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(fmt.Sprintf("%v", this.Template), "JSON", "v11.JSON", 1) + `,`, `}`, }, "") return s @@ -16809,7 +16548,7 @@ func (this *MatrixGenerator) String() string { repeatedStringForGenerators += "}" s := strings.Join([]string{`&MatrixGenerator{`, `Generators:` + repeatedStringForGenerators + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(fmt.Sprintf("%v", this.Template), "JSON", "v11.JSON", 1) + `,`, `}`, }, "") return s @@ -16826,7 +16565,7 @@ func (this *MergeGenerator) String() string { s := strings.Join([]string{`&MergeGenerator{`, `Generators:` + repeatedStringForGenerators + `,`, `MergeKeys:` + fmt.Sprintf("%v", this.MergeKeys) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(fmt.Sprintf("%v", this.Template), "JSON", "v11.JSON", 1) + `,`, `}`, }, "") return s @@ -16982,7 +16721,7 @@ func (this *PullRequestGenerator) String() string { `BitbucketServer:` + strings.Replace(this.BitbucketServer.String(), "PullRequestGeneratorBitbucketServer", "PullRequestGeneratorBitbucketServer", 1) + `,`, `Filters:` + repeatedStringForFilters + `,`, `RequeueAfterSeconds:` + valueToStringGenerated(this.RequeueAfterSeconds) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(fmt.Sprintf("%v", this.Template), "JSON", "v11.JSON", 1) + `,`, `}`, }, "") return s @@ -17484,7 +17223,7 @@ func (this *SCMProviderGenerator) String() string { `Filters:` + repeatedStringForFilters + `,`, `CloneProtocol:` + fmt.Sprintf("%v", this.CloneProtocol) + `,`, `RequeueAfterSeconds:` + valueToStringGenerated(this.RequeueAfterSeconds) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "ApplicationSetTemplate", "ApplicationSetTemplate", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(fmt.Sprintf("%v", this.Template), "JSON", "v11.JSON", 1) + `,`, `}`, }, "") return s @@ -21504,686 +21243,64 @@ func (m *ApplicationSetStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ApplicationStatus = append(m.ApplicationStatus, ApplicationSetApplicationStatus{}) - if err := m.ApplicationStatus[len(m.ApplicationStatus)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ApplicationSetStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ApplicationSetStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ApplicationSetStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RollingSync", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RollingSync == nil { - m.RollingSync = &ApplicationSetRolloutStrategy{} - } - if err := m.RollingSync.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ApplicationSetSyncPolicy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ApplicationSetSyncPolicy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ApplicationSetSyncPolicy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PreserveResourcesOnDeletion", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.PreserveResourcesOnDeletion = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ApplicationSetTemplate) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ApplicationSetTemplate: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ApplicationSetTemplate: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ApplicationSetTemplateMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ApplicationSetTemplateMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ApplicationSetTemplateMeta) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ApplicationSetTemplateMeta: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ApplicationSetTemplateMeta: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Labels == nil { - m.Labels = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Labels[mapkey] = mapvalue - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Annotations == nil { - m.Annotations = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } + m.ApplicationStatus = append(m.ApplicationStatus, ApplicationSetApplicationStatus{}) + if err := m.ApplicationStatus[len(m.ApplicationStatus)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.Annotations[mapkey] = mapvalue iNdEx = postIndex - case 5: + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ApplicationSetStrategy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ApplicationSetStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ApplicationSetStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Finalizers", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -22211,7 +21328,43 @@ func (m *ApplicationSetTemplateMeta) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Finalizers = append(m.Finalizers, string(dAtA[iNdEx:postIndex])) + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RollingSync", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RollingSync == nil { + m.RollingSync = &ApplicationSetRolloutStrategy{} + } + if err := m.RollingSync.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -22234,6 +21387,76 @@ func (m *ApplicationSetTemplateMeta) Unmarshal(dAtA []byte) error { } return nil } +func (m *ApplicationSetSyncPolicy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ApplicationSetSyncPolicy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ApplicationSetSyncPolicy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PreserveResourcesOnDeletion", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PreserveResourcesOnDeletion = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ApplicationSetTerminalGenerator) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -26875,6 +26098,9 @@ func (m *ClusterGenerator) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } + if m.Template == nil { + m.Template = &v11.JSON{} + } if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -28249,6 +27475,9 @@ func (m *DuckTypeGenerator) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } + if m.Template == nil { + m.Template = &v11.JSON{} + } if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -29214,6 +28443,9 @@ func (m *GitGenerator) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } + if m.Template == nil { + m.Template = &v11.JSON{} + } if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -31248,6 +30480,9 @@ func (m *ListGenerator) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } + if m.Template == nil { + m.Template = &v11.JSON{} + } if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -31669,6 +30904,9 @@ func (m *MatrixGenerator) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } + if m.Template == nil { + m.Template = &v11.JSON{} + } if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -31818,6 +31056,9 @@ func (m *MergeGenerator) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } + if m.Template == nil { + m.Template = &v11.JSON{} + } if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -33467,6 +32708,9 @@ func (m *PullRequestGenerator) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } + if m.Template == nil { + m.Template = &v11.JSON{} + } if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -40316,6 +39560,9 @@ func (m *SCMProviderGenerator) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } + if m.Template == nil { + m.Template = &v11.JSON{} + } if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/pkg/apis/application/v1alpha1/generated.proto b/pkg/apis/application/v1alpha1/generated.proto index 729f684b2d101..7e2d5edc94d90 100644 --- a/pkg/apis/application/v1alpha1/generated.proto +++ b/pkg/apis/application/v1alpha1/generated.proto @@ -279,7 +279,7 @@ message ApplicationSetSpec { repeated ApplicationSetGenerator generators = 2; - optional ApplicationSetTemplate template = 3; + optional k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON template = 3; optional ApplicationSetSyncPolicy syncPolicy = 4; @@ -309,27 +309,6 @@ message ApplicationSetSyncPolicy { optional bool preserveResourcesOnDeletion = 1; } -// ApplicationSetTemplate represents argocd ApplicationSpec -message ApplicationSetTemplate { - optional ApplicationSetTemplateMeta metadata = 1; - - optional ApplicationSpec spec = 2; -} - -// ApplicationSetTemplateMeta represents the Argo CD application fields that may -// be used for Applications generated from the ApplicationSet (based on metav1.ObjectMeta) -message ApplicationSetTemplateMeta { - optional string name = 1; - - optional string namespace = 2; - - map labels = 3; - - map annotations = 4; - - repeated string finalizers = 5; -} - // ApplicationSetTerminalGenerator represents a generator nested within a nested generator (for example, a list within // a merge within a matrix). A generator at this level may not be a combination-type generator (MatrixGenerator or // MergeGenerator). ApplicationSet enforces this nesting depth limit because CRDs do not support recursive types. @@ -700,7 +679,7 @@ message ClusterGenerator { // for matching the selector. optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1; - optional ApplicationSetTemplate template = 2; + optional k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON template = 2; // Values contains key/value pairs which are passed directly as parameters to the template map values = 3; @@ -796,7 +775,7 @@ message DuckTypeGenerator { optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 4; - optional ApplicationSetTemplate template = 5; + optional k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON template = 5; // Values contains key/value pairs which are passed directly as parameters to the template map values = 6; @@ -851,7 +830,7 @@ message GitGenerator { optional int64 requeueAfterSeconds = 5; - optional ApplicationSetTemplate template = 6; + optional k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON template = 6; optional string pathParamPrefix = 7; } @@ -1001,7 +980,7 @@ message KustomizeOptions { message ListGenerator { repeated k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON elements = 1; - optional ApplicationSetTemplate template = 2; + optional k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON template = 2; } message ManagedNamespaceMetadata { @@ -1015,7 +994,7 @@ message ManagedNamespaceMetadata { message MatrixGenerator { repeated ApplicationSetNestedGenerator generators = 1; - optional ApplicationSetTemplate template = 2; + optional k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON template = 2; } // MergeGenerator merges the output of two or more generators. Where the values for all specified merge keys are equal @@ -1033,7 +1012,7 @@ message MergeGenerator { repeated string mergeKeys = 2; - optional ApplicationSetTemplate template = 3; + optional k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON template = 3; } // NestedMatrixGenerator is a MatrixGenerator nested under another combination-type generator (MatrixGenerator or @@ -1175,7 +1154,7 @@ message PullRequestGenerator { // Standard parameters. optional int64 requeueAfterSeconds = 6; - optional ApplicationSetTemplate template = 7; + optional k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON template = 7; } // PullRequestGenerator defines connection info specific to BitbucketServer. @@ -1715,7 +1694,7 @@ message SCMProviderGenerator { // Standard parameters. optional int64 requeueAfterSeconds = 9; - optional ApplicationSetTemplate template = 10; + optional k8s.io.apiextensions_apiserver.pkg.apis.apiextensions.v1.JSON template = 10; } // SCMProviderGeneratorAzureDevOps defines connection info specific to Azure DevOps. diff --git a/pkg/apis/application/v1alpha1/openapi_generated.go b/pkg/apis/application/v1alpha1/openapi_generated.go index e9c422a9fdfee..b68d5d4c2b585 100644 --- a/pkg/apis/application/v1alpha1/openapi_generated.go +++ b/pkg/apis/application/v1alpha1/openapi_generated.go @@ -36,8 +36,6 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetStatus": schema_pkg_apis_application_v1alpha1_ApplicationSetStatus(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetStrategy": schema_pkg_apis_application_v1alpha1_ApplicationSetStrategy(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetSyncPolicy": schema_pkg_apis_application_v1alpha1_ApplicationSetSyncPolicy(ref), - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate": schema_pkg_apis_application_v1alpha1_ApplicationSetTemplate(ref), - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplateMeta": schema_pkg_apis_application_v1alpha1_ApplicationSetTemplateMeta(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTerminalGenerator": schema_pkg_apis_application_v1alpha1_ApplicationSetTerminalGenerator(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource": schema_pkg_apis_application_v1alpha1_ApplicationSource(ref), "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSourceDirectory": schema_pkg_apis_application_v1alpha1_ApplicationSourceDirectory(ref), @@ -1111,7 +1109,7 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSetSpec(ref common.Referenc "template": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"), + Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), }, }, "syncPolicy": { @@ -1129,7 +1127,7 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSetSpec(ref common.Referenc }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetStrategy", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetSyncPolicy", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"}, + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetStrategy", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetSyncPolicy", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"}, } } @@ -1221,103 +1219,6 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSetSyncPolicy(ref common.Re } } -func schema_pkg_apis_application_v1alpha1_ApplicationSetTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ApplicationSetTemplate represents argocd ApplicationSpec", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metadata": { - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplateMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSpec"), - }, - }, - }, - Required: []string{"metadata", "spec"}, - }, - }, - Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplateMeta", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSpec"}, - } -} - -func schema_pkg_apis_application_v1alpha1_ApplicationSetTemplateMeta(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ApplicationSetTemplateMeta represents the Argo CD application fields that may be used for Applications generated from the ApplicationSet (based on metav1.ObjectMeta)", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "labels": { - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "annotations": { - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "finalizers": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - func schema_pkg_apis_application_v1alpha1_ApplicationSetTerminalGenerator(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -2489,8 +2390,7 @@ func schema_pkg_apis_application_v1alpha1_ClusterGenerator(ref common.ReferenceC }, "template": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"), + Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), }, }, "values": { @@ -2513,7 +2413,7 @@ func schema_pkg_apis_application_v1alpha1_ClusterGenerator(ref common.ReferenceC }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, } } @@ -2844,8 +2744,7 @@ func schema_pkg_apis_application_v1alpha1_DuckTypeGenerator(ref common.Reference }, "template": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"), + Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), }, }, "values": { @@ -2869,7 +2768,7 @@ func schema_pkg_apis_application_v1alpha1_DuckTypeGenerator(ref common.Reference }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, } } @@ -3068,8 +2967,7 @@ func schema_pkg_apis_application_v1alpha1_GitGenerator(ref common.ReferenceCallb }, "template": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"), + Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), }, }, "pathParamPrefix": { @@ -3083,7 +2981,7 @@ func schema_pkg_apis_application_v1alpha1_GitGenerator(ref common.ReferenceCallb }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.GitDirectoryGeneratorItem", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.GitFileGeneratorItem"}, + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.GitDirectoryGeneratorItem", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.GitFileGeneratorItem", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"}, } } @@ -3597,8 +3495,7 @@ func schema_pkg_apis_application_v1alpha1_ListGenerator(ref common.ReferenceCall }, "template": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"), + Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), }, }, }, @@ -3606,7 +3503,7 @@ func schema_pkg_apis_application_v1alpha1_ListGenerator(ref common.ReferenceCall }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"}, + "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"}, } } @@ -3674,8 +3571,7 @@ func schema_pkg_apis_application_v1alpha1_MatrixGenerator(ref common.ReferenceCa }, "template": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"), + Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), }, }, }, @@ -3683,7 +3579,7 @@ func schema_pkg_apis_application_v1alpha1_MatrixGenerator(ref common.ReferenceCa }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetNestedGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"}, + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetNestedGenerator", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"}, } } @@ -3723,8 +3619,7 @@ func schema_pkg_apis_application_v1alpha1_MergeGenerator(ref common.ReferenceCal }, "template": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"), + Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), }, }, }, @@ -3732,7 +3627,7 @@ func schema_pkg_apis_application_v1alpha1_MergeGenerator(ref common.ReferenceCal }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetNestedGenerator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"}, + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetNestedGenerator", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"}, } } @@ -4199,15 +4094,14 @@ func schema_pkg_apis_application_v1alpha1_PullRequestGenerator(ref common.Refere }, "template": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"), + Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), }, }, }, }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorBitbucketServer", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorFilter", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGitLab", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGitea", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGithub"}, + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorBitbucketServer", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorFilter", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGitLab", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGitea", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.PullRequestGeneratorGithub", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"}, } } @@ -5947,15 +5841,14 @@ func schema_pkg_apis_application_v1alpha1_SCMProviderGenerator(ref common.Refere }, "template": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate"), + Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), }, }, }, }, }, Dependencies: []string{ - "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSetTemplate", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorAzureDevOps", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorBitbucket", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorBitbucketServer", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorFilter", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitea", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGithub", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitlab"}, + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorAzureDevOps", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorBitbucket", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorBitbucketServer", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorFilter", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitea", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGithub", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitlab", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"}, } } diff --git a/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go index 15cc07f3c19f3..2316e7885850d 100644 --- a/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/application/v1alpha1/zz_generated.deepcopy.go @@ -712,59 +712,6 @@ func (in *ApplicationSetSyncPolicy) DeepCopy() *ApplicationSetSyncPolicy { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetTemplate) DeepCopyInto(out *ApplicationSetTemplate) { - *out = *in - in.ApplicationSetTemplateMeta.DeepCopyInto(&out.ApplicationSetTemplateMeta) - in.Spec.DeepCopyInto(&out.Spec) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTemplate. -func (in *ApplicationSetTemplate) DeepCopy() *ApplicationSetTemplate { - if in == nil { - return nil - } - out := new(ApplicationSetTemplate) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ApplicationSetTemplateMeta) DeepCopyInto(out *ApplicationSetTemplateMeta) { - *out = *in - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Finalizers != nil { - in, out := &in.Finalizers, &out.Finalizers - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSetTemplateMeta. -func (in *ApplicationSetTemplateMeta) DeepCopy() *ApplicationSetTemplateMeta { - if in == nil { - return nil - } - out := new(ApplicationSetTemplateMeta) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ApplicationSetTerminalGenerator) DeepCopyInto(out *ApplicationSetTerminalGenerator) { *out = *in @@ -1423,7 +1370,11 @@ func (in *ClusterConfig) DeepCopy() *ClusterConfig { func (in *ClusterGenerator) DeepCopyInto(out *ClusterGenerator) { *out = *in in.Selector.DeepCopyInto(&out.Selector) - in.Template.DeepCopyInto(&out.Template) + if in.Template != nil { + in, out := &in.Template, &out.Template + *out = new(apiextensionsv1.JSON) + (*in).DeepCopyInto(*out) + } if in.Values != nil { in, out := &in.Values, &out.Values *out = make(map[string]string, len(*in)) @@ -1609,7 +1560,11 @@ func (in *DuckTypeGenerator) DeepCopyInto(out *DuckTypeGenerator) { **out = **in } in.LabelSelector.DeepCopyInto(&out.LabelSelector) - in.Template.DeepCopyInto(&out.Template) + if in.Template != nil { + in, out := &in.Template, &out.Template + *out = new(apiextensionsv1.JSON) + (*in).DeepCopyInto(*out) + } if in.Values != nil { in, out := &in.Values, &out.Values *out = make(map[string]string, len(*in)) @@ -1750,7 +1705,11 @@ func (in *GitGenerator) DeepCopyInto(out *GitGenerator) { *out = new(int64) **out = **in } - in.Template.DeepCopyInto(&out.Template) + if in.Template != nil { + in, out := &in.Template, &out.Template + *out = new(apiextensionsv1.JSON) + (*in).DeepCopyInto(*out) + } return } @@ -2056,7 +2015,11 @@ func (in *ListGenerator) DeepCopyInto(out *ListGenerator) { (*in)[i].DeepCopyInto(&(*out)[i]) } } - in.Template.DeepCopyInto(&out.Template) + if in.Template != nil { + in, out := &in.Template, &out.Template + *out = new(apiextensionsv1.JSON) + (*in).DeepCopyInto(*out) + } return } @@ -2110,7 +2073,11 @@ func (in *MatrixGenerator) DeepCopyInto(out *MatrixGenerator) { (*in)[i].DeepCopyInto(&(*out)[i]) } } - in.Template.DeepCopyInto(&out.Template) + if in.Template != nil { + in, out := &in.Template, &out.Template + *out = new(apiextensionsv1.JSON) + (*in).DeepCopyInto(*out) + } return } @@ -2139,7 +2106,11 @@ func (in *MergeGenerator) DeepCopyInto(out *MergeGenerator) { *out = make([]string, len(*in)) copy(*out, *in) } - in.Template.DeepCopyInto(&out.Template) + if in.Template != nil { + in, out := &in.Template, &out.Template + *out = new(apiextensionsv1.JSON) + (*in).DeepCopyInto(*out) + } return } @@ -2420,7 +2391,11 @@ func (in *PullRequestGenerator) DeepCopyInto(out *PullRequestGenerator) { *out = new(int64) **out = **in } - in.Template.DeepCopyInto(&out.Template) + if in.Template != nil { + in, out := &in.Template, &out.Template + *out = new(apiextensionsv1.JSON) + (*in).DeepCopyInto(*out) + } return } @@ -3209,7 +3184,11 @@ func (in *SCMProviderGenerator) DeepCopyInto(out *SCMProviderGenerator) { *out = new(int64) **out = **in } - in.Template.DeepCopyInto(&out.Template) + if in.Template != nil { + in, out := &in.Template, &out.Template + *out = new(apiextensionsv1.JSON) + (*in).DeepCopyInto(*out) + } return } diff --git a/server/applicationset/applicationset.go b/server/applicationset/applicationset.go index 44ae512d5f1c7..0084200e1eda8 100644 --- a/server/applicationset/applicationset.go +++ b/server/applicationset/applicationset.go @@ -88,7 +88,14 @@ func (s *Server) Get(ctx context.Context, q *applicationset.ApplicationSetGetQue if err != nil { return nil, fmt.Errorf("error getting ApplicationSet: %w", err) } - if err = s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionGet, a.RBACName()); err != nil { + + rbacName, err := argoutil.AppSetRBACName(a) + + if err != nil { + return nil, err + } + + if err = s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionGet, rbacName); err != nil { return nil, err } @@ -110,7 +117,14 @@ func (s *Server) List(ctx context.Context, q *applicationset.ApplicationSetListQ newItems := make([]v1alpha1.ApplicationSet, 0) for _, a := range appsetList.Items { - if s.enf.Enforce(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionGet, a.RBACName()) { + + rbacName, err := argoutil.AppSetRBACName(&a) + + if err != nil { + return nil, err + } + + if s.enf.Enforce(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionGet, rbacName) { newItems = append(newItems, a) } } @@ -181,7 +195,14 @@ func (s *Server) Create(ctx context.Context, q *applicationset.ApplicationSetCre if !q.Upsert { return nil, status.Errorf(codes.InvalidArgument, "existing ApplicationSet spec is different, use upsert flag to force update") } - if err = s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionUpdate, appset.RBACName()); err != nil { + + rbacName, err := argoutil.AppSetRBACName(appset) + + if err != nil { + return nil, err + } + + if err = s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionUpdate, rbacName); err != nil { return nil, err } updated, err := s.updateAppSet(existing, appset, ctx, true) @@ -206,14 +227,39 @@ func mergeStringMaps(items ...map[string]string) map[string]string { func (s *Server) updateAppSet(appset *v1alpha1.ApplicationSet, newAppset *v1alpha1.ApplicationSet, ctx context.Context, merge bool) (*v1alpha1.ApplicationSet, error) { - if appset != nil && appset.Spec.Template.Spec.Project != newAppset.Spec.Template.Spec.Project { + projectName, err := argo.GetAppSetProject(*appset) + + if err != nil { + return nil, err + } + + newProjectName, err := argo.GetAppSetProject(*newAppset) + + if err != nil { + return nil, err + } + + if appset != nil && projectName != newProjectName { + + newRbacName, err := argoutil.AppSetRBACName(newAppset) + + if err != nil { + return nil, err + } // When changing projects, caller must have applicationset create and update privileges in new project // NOTE: the update check was already verified in the caller to this function - if err := s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionCreate, newAppset.RBACName()); err != nil { + if err := s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionCreate, newRbacName); err != nil { + return nil, err + } + + rbacName, err := argoutil.AppSetRBACName(appset) + + if err != nil { return nil, err } + // They also need 'update' privileges in the old project - if err := s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionUpdate, appset.RBACName()); err != nil { + if err := s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionUpdate, rbacName); err != nil { return nil, err } } @@ -253,12 +299,24 @@ func (s *Server) Delete(ctx context.Context, q *applicationset.ApplicationSetDel return nil, fmt.Errorf("error getting ApplicationSets: %w", err) } - if err := s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionDelete, appset.RBACName()); err != nil { + rbacName, err := argoutil.AppSetRBACName(appset) + + if err != nil { + return nil, err + } + + if err := s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionDelete, rbacName); err != nil { + return nil, err + } + + projectName, err := argo.GetAppSetProject(*appset) + + if err != nil { return nil, err } - s.projectLock.RLock(appset.Spec.Template.Spec.Project) - defer s.projectLock.RUnlock(appset.Spec.Template.Spec.Project) + s.projectLock.RLock(projectName) + defer s.projectLock.RUnlock(projectName) err = s.appclientset.ArgoprojV1alpha1().ApplicationSets(s.ns).Delete(ctx, q.Name, metav1.DeleteOptions{}) if err != nil { @@ -271,10 +329,14 @@ func (s *Server) Delete(ctx context.Context, q *applicationset.ApplicationSetDel func (s *Server) validateAppSet(ctx context.Context, appset *v1alpha1.ApplicationSet) (string, error) { if appset == nil { - return "", fmt.Errorf("ApplicationSet cannot be validated for nil value") + return "", fmt.Errorf("applicationSet cannot be validated for nil value") } - projectName := appset.Spec.Template.Spec.Project + projectName, err := argo.GetAppSetProject(*appset) + + if err != nil { + return "", err + } if strings.Contains(projectName, "{{") { return "", fmt.Errorf("the Argo CD API does not currently support creating ApplicationSets with templated `project` fields") @@ -289,7 +351,9 @@ func (s *Server) validateAppSet(ctx context.Context, appset *v1alpha1.Applicatio func (s *Server) checkCreatePermissions(ctx context.Context, appset *v1alpha1.ApplicationSet, projectName string) error { - if err := s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionCreate, appset.RBACName()); err != nil { + if rbacName, err := argoutil.AppSetRBACName(appset); err != nil { + return err + } else if err := s.enf.EnforceErr(ctx.Value("claims"), rbacpolicy.ResourceApplicationSets, rbacpolicy.ActionCreate, rbacName); err != nil { return err } diff --git a/test/e2e/cluster_generator_test.go b/test/e2e/applicationset_cluster_generator_test.go similarity index 89% rename from test/e2e/cluster_generator_test.go rename to test/e2e/applicationset_cluster_generator_test.go index c09fc9ed2fa34..5de0760aa7cd9 100644 --- a/test/e2e/cluster_generator_test.go +++ b/test/e2e/applicationset_cluster_generator_test.go @@ -6,6 +6,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + testutils "github.com/argoproj/argo-cd/v2/test" + "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" argov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" . "github.com/argoproj/argo-cd/v2/test/e2e/fixture/applicationsets" @@ -49,8 +51,8 @@ func TestSimpleClusterGenerator(t *testing.T) { Name: "simple-cluster-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -64,7 +66,7 @@ func TestSimpleClusterGenerator(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Clusters: &v1alpha1.ClusterGenerator{ @@ -86,7 +88,7 @@ func TestSimpleClusterGenerator(t *testing.T) { expectedAppNewNamespace.Spec.Destination.Namespace = "guestbook2" }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewNamespace})). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -97,8 +99,8 @@ func TestSimpleClusterGenerator(t *testing.T) { expectedAppNewMetadata.ObjectMeta.Labels = map[string]string{"label-key": "label-value"} }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewMetadata})). // Delete the ApplicationSet, and verify it deletes the Applications @@ -173,8 +175,8 @@ func TestClusterGeneratorWithLocalCluster(t *testing.T) { Name: "in-cluster-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -184,7 +186,7 @@ func TestClusterGeneratorWithLocalCluster(t *testing.T) { }, Destination: test.appsetDestination, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Clusters: &v1alpha1.ClusterGenerator{}, @@ -200,7 +202,7 @@ func TestClusterGeneratorWithLocalCluster(t *testing.T) { expectedAppNewNamespace.Spec.Destination.Namespace = "guestbook2" }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewNamespace})). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -211,8 +213,8 @@ func TestClusterGeneratorWithLocalCluster(t *testing.T) { expectedAppNewMetadata.ObjectMeta.Labels = map[string]string{"label-key": "label-value"} }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewMetadata})). // Delete the ApplicationSet, and verify it deletes the Applications @@ -264,8 +266,8 @@ func TestSimpleClusterGeneratorAddingCluster(t *testing.T) { Name: "simple-cluster-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -279,7 +281,7 @@ func TestSimpleClusterGeneratorAddingCluster(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Clusters: &v1alpha1.ClusterGenerator{ @@ -347,8 +349,8 @@ func TestSimpleClusterGeneratorDeletingCluster(t *testing.T) { Name: "simple-cluster-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -362,7 +364,7 @@ func TestSimpleClusterGeneratorDeletingCluster(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Clusters: &v1alpha1.ClusterGenerator{ diff --git a/test/e2e/clusterdecisiongenerator_e2e_test.go b/test/e2e/applicationset_clusterdecisiongenerator_e2e_test.go similarity index 93% rename from test/e2e/clusterdecisiongenerator_e2e_test.go rename to test/e2e/applicationset_clusterdecisiongenerator_e2e_test.go index 44993dd409fde..ebe9eabecc3bb 100644 --- a/test/e2e/clusterdecisiongenerator_e2e_test.go +++ b/test/e2e/applicationset_clusterdecisiongenerator_e2e_test.go @@ -7,6 +7,7 @@ import ( "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" argov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" + testutils "github.com/argoproj/argo-cd/v2/test" . "github.com/argoproj/argo-cd/v2/test/e2e/fixture/applicationsets" "github.com/argoproj/argo-cd/v2/test/e2e/fixture/applicationsets/utils" ) @@ -61,8 +62,8 @@ func TestSimpleClusterDecisionResourceGenerator(t *testing.T) { Name: "simple-cluster-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -76,7 +77,7 @@ func TestSimpleClusterDecisionResourceGenerator(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { ClusterDecisionResource: &v1alpha1.DuckTypeGenerator{ @@ -95,7 +96,7 @@ func TestSimpleClusterDecisionResourceGenerator(t *testing.T) { expectedAppNewNamespace.Spec.Destination.Namespace = "guestbook2" }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewNamespace})). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -106,8 +107,8 @@ func TestSimpleClusterDecisionResourceGenerator(t *testing.T) { expectedAppNewMetadata.ObjectMeta.Labels = map[string]string{"label-key": "label-value"} }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewMetadata})). // Delete the ApplicationSet, and verify it deletes the Applications @@ -172,8 +173,8 @@ func TestSimpleClusterDecisionResourceGeneratorAddingCluster(t *testing.T) { Name: "simple-cluster-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -187,7 +188,7 @@ func TestSimpleClusterDecisionResourceGeneratorAddingCluster(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { ClusterDecisionResource: &v1alpha1.DuckTypeGenerator{ @@ -268,8 +269,8 @@ func TestSimpleClusterDecisionResourceGeneratorDeletingClusterSecret(t *testing. Name: "simple-cluster-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -283,7 +284,7 @@ func TestSimpleClusterDecisionResourceGeneratorDeletingClusterSecret(t *testing. Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { ClusterDecisionResource: &v1alpha1.DuckTypeGenerator{ @@ -372,8 +373,8 @@ func TestSimpleClusterDecisionResourceGeneratorDeletingClusterFromResource(t *te Name: "simple-cluster-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -387,7 +388,7 @@ func TestSimpleClusterDecisionResourceGeneratorDeletingClusterFromResource(t *te Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { ClusterDecisionResource: &v1alpha1.DuckTypeGenerator{ diff --git a/test/e2e/matrix_e2e_test.go b/test/e2e/applicationset_matrix_e2e_test.go similarity index 88% rename from test/e2e/matrix_e2e_test.go rename to test/e2e/applicationset_matrix_e2e_test.go index f6b923f24b7a4..fa17b3c2e6148 100644 --- a/test/e2e/matrix_e2e_test.go +++ b/test/e2e/applicationset_matrix_e2e_test.go @@ -9,6 +9,7 @@ import ( "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" argov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" + testutils "github.com/argoproj/argo-cd/v2/test" . "github.com/argoproj/argo-cd/v2/test/e2e/fixture/applicationsets" "github.com/argoproj/argo-cd/v2/test/e2e/fixture/applicationsets/utils" ) @@ -60,8 +61,8 @@ func TestListMatrixGenerator(t *testing.T) { Name: "matrix-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{values.name}}-{{path.basename}}"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{values.name}}-{{path.basename}}"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -74,7 +75,7 @@ func TestListMatrixGenerator(t *testing.T) { Namespace: "{{path.basename}}", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Matrix: &v1alpha1.MatrixGenerator{ @@ -114,7 +115,7 @@ func TestListMatrixGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist(expectedAppsNewNamespace)). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -128,8 +129,8 @@ func TestListMatrixGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist(expectedAppsNewMetadata)). // Delete the ApplicationSet, and verify it deletes the Applications @@ -186,8 +187,8 @@ func TestClusterMatrixGenerator(t *testing.T) { Name: "matrix-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{name}}-{{path.basename}}"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{name}}-{{path.basename}}"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -200,7 +201,7 @@ func TestClusterMatrixGenerator(t *testing.T) { Namespace: "{{path.basename}}", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Matrix: &v1alpha1.MatrixGenerator{ @@ -241,7 +242,7 @@ func TestClusterMatrixGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist(expectedAppsNewNamespace)). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -255,8 +256,8 @@ func TestClusterMatrixGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist(expectedAppsNewMetadata)). // Delete the ApplicationSet, and verify it deletes the Applications diff --git a/test/e2e/merge_e2e_test.go b/test/e2e/applicationset_merge_e2e_test.go similarity index 88% rename from test/e2e/merge_e2e_test.go rename to test/e2e/applicationset_merge_e2e_test.go index 6a3de30f19f84..0b3163406cb6c 100644 --- a/test/e2e/merge_e2e_test.go +++ b/test/e2e/applicationset_merge_e2e_test.go @@ -10,6 +10,7 @@ import ( "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" argov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" + testutils "github.com/argoproj/argo-cd/v2/test" . "github.com/argoproj/argo-cd/v2/test/e2e/fixture/applicationsets" "github.com/argoproj/argo-cd/v2/test/e2e/fixture/applicationsets/utils" ) @@ -56,8 +57,8 @@ func TestListMergeGenerator(t *testing.T) { Name: "merge-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{path.basename}}-{{name-suffix}}"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{path.basename}}-{{name-suffix}}"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -70,7 +71,7 @@ func TestListMergeGenerator(t *testing.T) { Namespace: "{{path.basename}}", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Merge: &v1alpha1.MergeGenerator{ @@ -111,7 +112,7 @@ func TestListMergeGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist(expectedAppsNewNamespace)). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -125,8 +126,8 @@ func TestListMergeGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist(expectedAppsNewMetadata)). // Delete the ApplicationSet, and verify it deletes the Applications @@ -183,8 +184,8 @@ func TestClusterMergeGenerator(t *testing.T) { Name: "merge-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{name}}-{{path.basename}}-{{values.name-suffix}}"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{name}}-{{path.basename}}-{{values.name-suffix}}"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -197,7 +198,7 @@ func TestClusterMergeGenerator(t *testing.T) { Namespace: "{{path.basename}}", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Merge: &v1alpha1.MergeGenerator{ @@ -256,7 +257,7 @@ func TestClusterMergeGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist(expectedAppsNewNamespace)). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -270,8 +271,8 @@ func TestClusterMergeGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist(expectedAppsNewMetadata)). // Delete the ApplicationSet, and verify it deletes the Applications diff --git a/test/e2e/applicationset_test.go b/test/e2e/applicationset_test.go index 913eb73079de1..8741137c36407 100644 --- a/test/e2e/applicationset_test.go +++ b/test/e2e/applicationset_test.go @@ -14,6 +14,7 @@ import ( "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" argov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1" + testutils "github.com/argoproj/argo-cd/v2/test" "github.com/argoproj/argo-cd/v2/test/e2e/fixture" . "github.com/argoproj/argo-cd/v2/test/e2e/fixture/applicationsets" "github.com/argoproj/argo-cd/v2/test/e2e/fixture/applicationsets/utils" @@ -43,6 +44,126 @@ var ( } ) +func TestTemplateKey(t *testing.T) { + + expectedApp := argov1alpha1.Application{ + TypeMeta: metav1.TypeMeta{ + Kind: "Application", + APIVersion: "argoproj.io/v1alpha1", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "my-cluster-guestbook", + Namespace: utils.ArgoCDNamespace, + Finalizers: []string{"resources-finalizer.argocd.argoproj.io"}, + }, + Spec: argov1alpha1.ApplicationSpec{ + Project: "default", + Source: &argov1alpha1.ApplicationSource{ + RepoURL: "https://github.com/argoproj/argocd-example-apps.git", + TargetRevision: "HEAD", + Path: "guestbook", + }, + Destination: argov1alpha1.ApplicationDestination{ + Server: "https://kubernetes.default.svc", + Namespace: "guestbook", + }, + SyncPolicy: &argov1alpha1.SyncPolicy{ + SyncOptions: []string{ + "CreateNamespace=true", + }, + }, + }, + } + var expectedAppNewNamespace *argov1alpha1.Application + var expectedAppNewMetadata *argov1alpha1.Application + var expectedAppNoCreateNamespace *argov1alpha1.Application + + Given(t). + // Create a ListGenerator-based ApplicationSet + When().Create(v1alpha1.ApplicationSet{ObjectMeta: metav1.ObjectMeta{ + Name: "template-key", + }, + Spec: v1alpha1.ApplicationSetSpec{ + GoTemplate: true, + Template: apiextensionsv1.JSON{ + Raw: []byte(`{ + "metadata": { + "name": "{{.cluster}}-guestbook" + }, + "spec": { + "project": "default", + "source":{ + "repoURL": "https://github.com/argoproj/argocd-example-apps.git", + "targetRevision": "HEAD", + "path": "guestbook" + }, + "destination": { + "server": "{{.url}}", + "namespace": "guestbook" + }, + "syncPolicy": { + "{{ ternary \"syncOptions\" \"noSyncOptions\" .createNamespace}}": [ + "CreateNamespace=true" + ] + } + } + }`), + }, + Generators: []v1alpha1.ApplicationSetGenerator{ + { + List: &v1alpha1.ListGenerator{ + Elements: []apiextensionsv1.JSON{{ + Raw: []byte(`{"cluster": "my-cluster","url": "https://kubernetes.default.svc", "createNamespace": true}`), + }}, + }, + }, + }, + }, + }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{expectedApp})). + + // Update the ApplicationSet template namespace, and verify it updates the Applications + When(). + And(func() { + expectedAppNewNamespace = expectedApp.DeepCopy() + expectedAppNewNamespace.Spec.Destination.Namespace = "guestbook2" + }). + Update(func(appset *v1alpha1.ApplicationSet) { + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") + }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewNamespace})). + + // Update the metadata fields in the appset template, and make sure it propagates to the apps + When(). + And(func() { + expectedAppNewMetadata = expectedAppNewNamespace.DeepCopy() + expectedAppNewMetadata.ObjectMeta.Annotations = map[string]string{"annotation-key": "annotation-value"} + expectedAppNewMetadata.ObjectMeta.Labels = map[string]string{"label-key": "label-value"} + }). + Update(func(appset *v1alpha1.ApplicationSet) { + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) + }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewMetadata})). + + // Remove auto sync + When(). + And(func() { + expectedAppNoCreateNamespace = expectedAppNewMetadata.DeepCopy() + expectedAppNoCreateNamespace.Spec.SyncPolicy = &argov1alpha1.SyncPolicy{} + }). + Update(func(appset *v1alpha1.ApplicationSet) { + appset.Spec.Generators[0].List.Elements[0] = apiextensionsv1.JSON{ + Raw: []byte(`{"cluster": "my-cluster","url": "https://kubernetes.default.svc", "createNamespace": false}`), + } + }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNoCreateNamespace})). + + // verify the ApplicationSet status conditions were set correctly + Expect(ApplicationSetHasConditions("template-key", ExpectedConditions)). + + // Delete the ApplicationSet, and verify it deletes the Applications + When(). + Delete().Then().Expect(ApplicationsDoNotExist([]argov1alpha1.Application{*expectedAppNewMetadata})) + +} + func TestSimpleListGenerator(t *testing.T) { expectedApp := argov1alpha1.Application{ @@ -77,8 +198,8 @@ func TestSimpleListGenerator(t *testing.T) { Name: "simple-list-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{cluster}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{cluster}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -91,7 +212,7 @@ func TestSimpleListGenerator(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { List: &v1alpha1.ListGenerator{ @@ -111,7 +232,7 @@ func TestSimpleListGenerator(t *testing.T) { expectedAppNewNamespace.Spec.Destination.Namespace = "guestbook2" }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewNamespace})). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -122,8 +243,8 @@ func TestSimpleListGenerator(t *testing.T) { expectedAppNewMetadata.ObjectMeta.Labels = map[string]string{"label-key": "label-value"} }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewMetadata})). // verify the ApplicationSet status conditions were set correctly @@ -170,8 +291,8 @@ func TestSimpleListGeneratorGoTemplate(t *testing.T) { }, Spec: v1alpha1.ApplicationSetSpec{ GoTemplate: true, - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{.cluster}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{.cluster}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -184,7 +305,7 @@ func TestSimpleListGeneratorGoTemplate(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { List: &v1alpha1.ListGenerator{ @@ -204,7 +325,7 @@ func TestSimpleListGeneratorGoTemplate(t *testing.T) { expectedAppNewNamespace.Spec.Destination.Namespace = "guestbook2" }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewNamespace})). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -215,8 +336,8 @@ func TestSimpleListGeneratorGoTemplate(t *testing.T) { expectedAppNewMetadata.ObjectMeta.Labels = map[string]string{"label-key": "label-value"} }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{*expectedAppNewMetadata})). // verify the ApplicationSet status conditions were set correctly @@ -271,8 +392,8 @@ func TestSimpleGitDirectoryGenerator(t *testing.T) { Name: "simple-git-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{path.basename}}"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{path.basename}}"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -285,7 +406,7 @@ func TestSimpleGitDirectoryGenerator(t *testing.T) { Namespace: "{{path.basename}}", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Git: &v1alpha1.GitGenerator{ @@ -311,7 +432,7 @@ func TestSimpleGitDirectoryGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist(expectedAppsNewNamespace)). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -325,8 +446,8 @@ func TestSimpleGitDirectoryGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist(expectedAppsNewMetadata)). // verify the ApplicationSet status conditions were set correctly @@ -381,8 +502,8 @@ func TestSimpleGitDirectoryGeneratorGoTemplate(t *testing.T) { }, Spec: v1alpha1.ApplicationSetSpec{ GoTemplate: true, - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{.path.basename}}"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{.path.basename}}"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -395,7 +516,7 @@ func TestSimpleGitDirectoryGeneratorGoTemplate(t *testing.T) { Namespace: "{{.path.basename}}", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Git: &v1alpha1.GitGenerator{ @@ -421,7 +542,7 @@ func TestSimpleGitDirectoryGeneratorGoTemplate(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist(expectedAppsNewNamespace)). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -435,8 +556,8 @@ func TestSimpleGitDirectoryGeneratorGoTemplate(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist(expectedAppsNewMetadata)). // verify the ApplicationSet status conditions were set correctly @@ -490,8 +611,8 @@ func TestSimpleGitFilesGenerator(t *testing.T) { Name: "simple-git-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{cluster.name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{cluster.name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -504,7 +625,7 @@ func TestSimpleGitFilesGenerator(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Git: &v1alpha1.GitGenerator{ @@ -530,7 +651,7 @@ func TestSimpleGitFilesGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist(expectedAppsNewNamespace)). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -544,8 +665,8 @@ func TestSimpleGitFilesGenerator(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist(expectedAppsNewMetadata)). // verify the ApplicationSet status conditions were set correctly @@ -600,8 +721,8 @@ func TestSimpleGitFilesGeneratorGoTemplate(t *testing.T) { }, Spec: v1alpha1.ApplicationSetSpec{ GoTemplate: true, - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{.cluster.name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{.cluster.name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -614,7 +735,7 @@ func TestSimpleGitFilesGeneratorGoTemplate(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Git: &v1alpha1.GitGenerator{ @@ -640,7 +761,7 @@ func TestSimpleGitFilesGeneratorGoTemplate(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Spec.Destination.Namespace = "guestbook2" + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/spec/destination/namespace", "guestbook2") }).Then().Expect(ApplicationsExist(expectedAppsNewNamespace)). // Update the metadata fields in the appset template, and make sure it propagates to the apps @@ -654,8 +775,8 @@ func TestSimpleGitFilesGeneratorGoTemplate(t *testing.T) { } }). Update(func(appset *v1alpha1.ApplicationSet) { - appset.Spec.Template.Annotations = map[string]string{"annotation-key": "annotation-value"} - appset.Spec.Template.Labels = map[string]string{"label-key": "label-value"} + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/annotations", map[string]string{"annotation-key": "annotation-value"}) + appset.Spec.Template = testutils.UpdateDataAsJson(appset.Spec.Template, "/metadata/labels", map[string]string{"label-key": "label-value"}) }).Then().Expect(ApplicationsExist(expectedAppsNewMetadata)). // verify the ApplicationSet status conditions were set correctly @@ -676,8 +797,8 @@ func TestSimpleGitFilesPreserveResourcesOnDeletion(t *testing.T) { Name: "simple-git-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{cluster.name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{cluster.name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -695,7 +816,7 @@ func TestSimpleGitFilesPreserveResourcesOnDeletion(t *testing.T) { Automated: &argov1alpha1.SyncPolicyAutomated{}, }, }, - }, + }), SyncPolicy: &v1alpha1.ApplicationSetSyncPolicy{ PreserveResourcesOnDeletion: true, }, @@ -737,8 +858,8 @@ func TestSimpleGitFilesPreserveResourcesOnDeletionGoTemplate(t *testing.T) { }, Spec: v1alpha1.ApplicationSetSpec{ GoTemplate: true, - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{.cluster.name}}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{.cluster.name}}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -756,7 +877,7 @@ func TestSimpleGitFilesPreserveResourcesOnDeletionGoTemplate(t *testing.T) { Automated: &argov1alpha1.SyncPolicyAutomated{}, }, }, - }, + }), SyncPolicy: &v1alpha1.ApplicationSetSyncPolicy{ PreserveResourcesOnDeletion: true, }, @@ -1015,8 +1136,8 @@ func TestSimpleSCMProviderGenerator(t *testing.T) { Name: "simple-scm-provider-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{ repository }}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{ repository }}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -1029,7 +1150,7 @@ func TestSimpleSCMProviderGenerator(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { SCMProvider: &v1alpha1.SCMProviderGenerator{ @@ -1089,8 +1210,8 @@ func TestSimpleSCMProviderGeneratorGoTemplate(t *testing.T) { }, Spec: v1alpha1.ApplicationSetSpec{ GoTemplate: true, - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{ .repository }}-guestbook"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{ .repository }}-guestbook"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -1103,7 +1224,7 @@ func TestSimpleSCMProviderGeneratorGoTemplate(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { SCMProvider: &v1alpha1.SCMProviderGenerator{ @@ -1154,8 +1275,8 @@ func TestCustomApplicationFinalizers(t *testing.T) { Name: "simple-list-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{ + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{ Name: "{{cluster}}-guestbook", Finalizers: []string{"resources-finalizer.argocd.argoproj.io/background"}, }, @@ -1171,7 +1292,7 @@ func TestCustomApplicationFinalizers(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { List: &v1alpha1.ListGenerator{ @@ -1221,8 +1342,8 @@ func TestCustomApplicationFinalizersGoTemplate(t *testing.T) { }, Spec: v1alpha1.ApplicationSetSpec{ GoTemplate: true, - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{ + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{ Name: "{{.cluster}}-guestbook", Finalizers: []string{"resources-finalizer.argocd.argoproj.io/background"}, }, @@ -1238,7 +1359,7 @@ func TestCustomApplicationFinalizersGoTemplate(t *testing.T) { Namespace: "guestbook", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { List: &v1alpha1.ListGenerator{ @@ -1323,8 +1444,8 @@ func TestSimplePullRequestGenerator(t *testing.T) { Name: "simple-pull-request-generator", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "guestbook-{{ number }}"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "guestbook-{{ number }}"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -1340,7 +1461,7 @@ func TestSimplePullRequestGenerator(t *testing.T) { Namespace: "guestbook-{{ branch }}", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { PullRequest: &v1alpha1.PullRequestGenerator{ @@ -1400,8 +1521,8 @@ func TestSimplePullRequestGeneratorGoTemplate(t *testing.T) { }, Spec: v1alpha1.ApplicationSetSpec{ GoTemplate: true, - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{ + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{ Name: "guestbook-{{ .number }}", Labels: map[string]string{"app": "{{index .labels 0}}"}}, Spec: argov1alpha1.ApplicationSpec{ @@ -1419,7 +1540,7 @@ func TestSimplePullRequestGeneratorGoTemplate(t *testing.T) { Namespace: "guestbook-{{ .branch }}", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { PullRequest: &v1alpha1.PullRequestGenerator{ @@ -1479,8 +1600,8 @@ func TestGitGeneratorPrivateRepo(t *testing.T) { Name: "simple-git-generator-private", }, Spec: v1alpha1.ApplicationSetSpec{ - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{path.basename}}"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{path.basename}}"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -1493,7 +1614,7 @@ func TestGitGeneratorPrivateRepo(t *testing.T) { Namespace: "{{path.basename}}", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Git: &v1alpha1.GitGenerator{ @@ -1555,8 +1676,8 @@ func TestGitGeneratorPrivateRepoGoTemplate(t *testing.T) { }, Spec: v1alpha1.ApplicationSetSpec{ GoTemplate: true, - Template: v1alpha1.ApplicationSetTemplate{ - ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{.path.basename}}"}, + Template: testutils.ToApiExtenstionsJSON(v1alpha1.Application{ + ObjectMeta: metav1.ObjectMeta{Name: "{{.path.basename}}"}, Spec: argov1alpha1.ApplicationSpec{ Project: "default", Source: &argov1alpha1.ApplicationSource{ @@ -1569,7 +1690,7 @@ func TestGitGeneratorPrivateRepoGoTemplate(t *testing.T) { Namespace: "{{.path.basename}}", }, }, - }, + }), Generators: []v1alpha1.ApplicationSetGenerator{ { Git: &v1alpha1.GitGenerator{ diff --git a/test/e2e/fixture/applicationsets/expectation.go b/test/e2e/fixture/applicationsets/expectation.go index e8be81b906d7e..385e095cf10dd 100644 --- a/test/e2e/fixture/applicationsets/expectation.go +++ b/test/e2e/fixture/applicationsets/expectation.go @@ -206,6 +206,12 @@ func filterFields(input argov1alpha1.Application) argov1alpha1.Application { }, } + if spec.SyncPolicy != nil && spec.SyncPolicy.SyncOptions != nil { + output.Spec.SyncPolicy = &argov1alpha1.SyncPolicy{ + SyncOptions: spec.SyncPolicy.SyncOptions, + } + } + return output } diff --git a/test/testutil.go b/test/testutil.go index bccf0cef23a3f..20a1b205fb318 100644 --- a/test/testutil.go +++ b/test/testutil.go @@ -11,8 +11,11 @@ import ( "time" "github.com/ghodss/yaml" + "github.com/go-openapi/jsonpointer" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/client-go/tools/cache" + + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" ) // StartInformer is a helper to start an informer, wait for its cache to sync and return a cancel func @@ -107,3 +110,78 @@ func GetTestDir(t *testing.T) string { } return cwd } + +// Convert an object into apiextensionsv1.JSON Panic if not possible +func ToApiExtenstionsJSON(object interface{}) apiextensionsv1.JSON { + return apiextensionsv1.JSON{ + Raw: []byte(ToJSON(object)), + } +} + +// Convert an object into string representation Json. Panic if not possible +func ToJSON(object interface{}) string { + output, err := json.Marshal(object) + + if err != nil { + panic(err) + } + + return string(output) +} + +// Update object in apiextensionsv1.JSON string using json pointer +func UpdateDataAsJson(jsonString apiextensionsv1.JSON, jsonPointer string, value interface{}) apiextensionsv1.JSON { + return apiextensionsv1.JSON{ + Raw: []byte(UpdateDataAsJsonString(string(jsonString.Raw), jsonPointer, value)), + } +} + +// Update object in json string using json pointer +func UpdateDataAsJsonString(jsonString string, jsonPointer string, value interface{}) string { + var object map[string]interface{} + + err := json.Unmarshal([]byte(jsonString), &object) + + if err != nil { + panic(err) + } + + data := UpdateData(object, jsonPointer, value) + return ToJSON(data) +} + +// Update object field using json pointer +func UpdateData(object interface{}, jsonPointer string, value interface{}) interface{} { + + pointer, err := jsonpointer.New(jsonPointer) + + if err != nil { + panic(err) + } + + output, err := pointer.Set(object, value) + + if err != nil { + panic(err) + } + + return output +} + +// Get object field using json pointer +func GetData(object interface{}, jsonPointer string) interface{} { + + pointer, err := jsonpointer.New(jsonPointer) + + if err != nil { + panic(err) + } + + output, _, err := pointer.Get(object) + + if err != nil { + panic(err) + } + + return output +} diff --git a/util/argo/argo.go b/util/argo/argo.go index 8d0cba1582fd6..558eabec98eef 100644 --- a/util/argo/argo.go +++ b/util/argo/argo.go @@ -62,6 +62,18 @@ func FilterByProjects(apps []argoappv1.Application, projects []string) []argoapp } +// AppSetRBACName returns the applicationSet RBAC full name in format project/name +func AppSetRBACName(appSet *argoappv1.ApplicationSet) (string, error) { + + projectName, err := GetAppSetProject(*appSet) + + if err != nil { + return "", err + } + + return fmt.Sprintf("%s/%s", projectName, appSet.ObjectMeta.Name), nil +} + // FilterAppSetsByProjects returns applications which belongs to the specified project func FilterAppSetsByProjects(appsets []argoappv1.ApplicationSet, projects []string) []argoappv1.ApplicationSet { if len(projects) == 0 { @@ -74,13 +86,37 @@ func FilterAppSetsByProjects(appsets []argoappv1.ApplicationSet, projects []stri items := make([]argoappv1.ApplicationSet, 0) for i := 0; i < len(appsets); i++ { a := appsets[i] - if _, ok := projectsMap[a.Spec.Template.Spec.GetProject()]; ok { + + project, err := GetAppSetProject(a) + + if err != nil { + log.Error(err.Error()) + continue + } + + if _, ok := projectsMap[project]; ok { items = append(items, a) } } return items } +// GetAppSetProject returns the AppSet Project if available +func GetAppSetProject(a argoappv1.ApplicationSet) (string, error) { + var template map[string]interface{} + err := json.Unmarshal(a.Spec.Template.Raw, &template) + + if err != nil { + return "", err + } + + if project, ok := template["project"].(string); ok { + return project, nil + } + + return "", fmt.Errorf("no project found in ApplicationSet '%s/%s'", a.Namespace, a.Name) +} + // FilterByRepo returns an application func FilterByRepo(apps []argoappv1.Application, repo string) []argoappv1.Application { if repo == "" {