Compare commits

...

1 Commits

Author SHA1 Message Date
Michael Crenshaw
cc1f9f53f1 feat(hydrator): add sourceHydrator types
Co-authored-by: Alexandre Gaudreault <alexandre_gaudreault@intuit.com>
Co-authored-by: Omer Azmon <omer_azmon@intuit.com>
Co-authored-by: daengdaengLee <gunho1020@gmail.com>
Co-authored-by: Juwon Hwang (Kevin) <juwon8891@gmail.com>
Co-authored-by: thisishwan2 <feel000617@gmail.com>
Co-authored-by: mirageoasis <kimhw0820@naver.com>
Co-authored-by: Robin Lieb <robin.j.lieb@gmail.com>
Co-authored-by: miiiinju1 <gms07073@ynu.ac.kr>
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>

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

Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>

deepcopy gen

Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
2024-12-14 12:46:40 -05:00
11 changed files with 7800 additions and 822 deletions

123
assets/swagger.json generated
View File

@@ -6857,6 +6857,9 @@
"source": {
"$ref": "#/definitions/v1alpha1ApplicationSource"
},
"sourceHydrator": {
"$ref": "#/definitions/v1alpha1SourceHydrator"
},
"sources": {
"type": "array",
"title": "Sources is a reference to the location of the application's manifests or chart",
@@ -6914,6 +6917,9 @@
"$ref": "#/definitions/applicationv1alpha1ResourceStatus"
}
},
"sourceHydrator": {
"$ref": "#/definitions/v1alpha1SourceHydratorStatus"
},
"sourceType": {
"type": "string",
"title": "SourceType specifies the type of this application"
@@ -7341,6 +7347,24 @@
}
}
},
"v1alpha1DrySource": {
"description": "DrySource specifies a location for dry \"don't repeat yourself\" manifest source information.",
"type": "object",
"properties": {
"path": {
"type": "string",
"title": "Path is a directory path within the Git repository where the manifests are located"
},
"repoURL": {
"type": "string",
"title": "RepoURL is the URL to the git repository that contains the application manifests"
},
"targetRevision": {
"type": "string",
"title": "TargetRevision defines the revision of the source to hydrate"
}
}
},
"v1alpha1DuckTypeGenerator": {
"description": "DuckType defines a generator to match against clusters registered with ArgoCD.",
"type": "object",
@@ -7595,6 +7619,47 @@
}
}
},
"v1alpha1HydrateOperation": {
"type": "object",
"title": "HydrateOperation contains information about the most recent hydrate operation",
"properties": {
"drySHA": {
"type": "string",
"title": "DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation"
},
"finishedAt": {
"$ref": "#/definitions/v1Time"
},
"hydratedSHA": {
"type": "string",
"title": "HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation"
},
"message": {
"type": "string",
"title": "Message contains a message describing the current status of the hydrate operation"
},
"phase": {
"type": "string",
"title": "Phase indicates the status of the hydrate operation"
},
"sourceHydrator": {
"$ref": "#/definitions/v1alpha1SourceHydrator"
},
"startedAt": {
"$ref": "#/definitions/v1Time"
}
}
},
"v1alpha1HydrateTo": {
"description": "HydrateTo specifies a location to which hydrated manifests should be pushed as a \"staging area\" before being moved to\nthe SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.",
"type": "object",
"properties": {
"targetBranch": {
"type": "string",
"title": "TargetBranch is the branch to which hydrated manifests should be committed"
}
}
},
"v1alpha1Info": {
"type": "object",
"properties": {
@@ -9202,6 +9267,50 @@
}
}
},
"v1alpha1SourceHydrator": {
"description": "SourceHydrator specifies a dry \"don't repeat yourself\" source for manifests, a sync source from which to sync\nhydrated manifests, and an optional hydrateTo location to act as a \"staging\" aread for hydrated manifests.",
"type": "object",
"properties": {
"drySource": {
"$ref": "#/definitions/v1alpha1DrySource"
},
"hydrateTo": {
"$ref": "#/definitions/v1alpha1HydrateTo"
},
"syncSource": {
"$ref": "#/definitions/v1alpha1SyncSource"
}
}
},
"v1alpha1SourceHydratorStatus": {
"type": "object",
"title": "SourceHydratorStatus contains information about the current state of source hydration",
"properties": {
"currentOperation": {
"$ref": "#/definitions/v1alpha1HydrateOperation"
},
"lastSuccessfulOperation": {
"$ref": "#/definitions/v1alpha1SuccessfulHydrateOperation"
}
}
},
"v1alpha1SuccessfulHydrateOperation": {
"type": "object",
"title": "SuccessfulHydrateOperation contains information about the most recent successful hydrate operation",
"properties": {
"drySHA": {
"type": "string",
"title": "DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation"
},
"hydratedSHA": {
"type": "string",
"title": "HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation"
},
"sourceHydrator": {
"$ref": "#/definitions/v1alpha1SourceHydrator"
}
}
},
"v1alpha1SyncOperation": {
"description": "SyncOperation contains details about a sync operation.",
"type": "object",
@@ -9361,6 +9470,20 @@
}
}
},
"v1alpha1SyncSource": {
"description": "SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the\nassociated DrySource config in the SourceHydrator.",
"type": "object",
"properties": {
"path": {
"description": "Path is a directory path within the git repository where hydrated manifests should be committed to and synced\nfrom. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.",
"type": "string"
},
"targetBranch": {
"type": "string",
"title": "TargetBranch is the branch to which hydrated manifests should be committed"
}
}
},
"v1alpha1SyncStatus": {
"type": "object",
"title": "SyncStatus contains information about the currently observed live and desired states of an application",

File diff suppressed because it is too large Load Diff

View File

@@ -1403,6 +1403,64 @@ spec:
required:
- repoURL
type: object
sourceHydrator:
description: SourceHydrator provides a way to push hydrated manifests
back to git before syncing them to the cluster.
properties:
drySource:
description: DrySource specifies where the dry "don't repeat yourself"
manifest source lives.
properties:
path:
description: Path is a directory path within the Git repository
where the manifests are located
type: string
repoURL:
description: RepoURL is the URL to the git repository that
contains the application manifests
type: string
targetRevision:
description: TargetRevision defines the revision of the source
to hydrate
type: string
required:
- path
- repoURL
- targetRevision
type: object
hydrateTo:
description: |-
HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
have to move manifests to the SyncSource, e.g. by pull request.
properties:
targetBranch:
description: TargetBranch is the branch to which hydrated
manifests should be committed
type: string
required:
- targetBranch
type: object
syncSource:
description: SyncSource specifies where to sync hydrated manifests
from.
properties:
path:
description: |-
Path is a directory path within the git repository where hydrated manifests should be committed to and synced
from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
type: string
targetBranch:
description: TargetBranch is the branch to which hydrated
manifests should be committed
type: string
required:
- path
- targetBranch
type: object
required:
- drySource
- syncSource
type: object
sources:
description: Sources is a reference to the location of the application's
manifests or chart
@@ -4616,6 +4674,177 @@ spec:
type: string
type: object
type: array
sourceHydrator:
description: SourceHydrator stores information about the current state
of source hydration
properties:
currentOperation:
description: CurrentOperation holds the status of the hydrate
operation
properties:
drySHA:
description: DrySHA holds the resolved revision (sha) of the
dry source as of the most recent reconciliation
type: string
finishedAt:
description: FinishedAt indicates when the hydrate operation
finished
format: date-time
type: string
hydratedSHA:
description: HydratedSHA holds the resolved revision (sha)
of the hydrated source as of the most recent reconciliation
type: string
message:
description: Message contains a message describing the current
status of the hydrate operation
type: string
phase:
description: Phase indicates the status of the hydrate operation
enum:
- Hydrating
- Failed
- Hydrated
type: string
sourceHydrator:
description: SourceHydrator holds the hydrator config used
for the hydrate operation
properties:
drySource:
description: DrySource specifies where the dry "don't
repeat yourself" manifest source lives.
properties:
path:
description: Path is a directory path within the Git
repository where the manifests are located
type: string
repoURL:
description: RepoURL is the URL to the git repository
that contains the application manifests
type: string
targetRevision:
description: TargetRevision defines the revision of
the source to hydrate
type: string
required:
- path
- repoURL
- targetRevision
type: object
hydrateTo:
description: |-
HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
have to move manifests to the SyncSource, e.g. by pull request.
properties:
targetBranch:
description: TargetBranch is the branch to which hydrated
manifests should be committed
type: string
required:
- targetBranch
type: object
syncSource:
description: SyncSource specifies where to sync hydrated
manifests from.
properties:
path:
description: |-
Path is a directory path within the git repository where hydrated manifests should be committed to and synced
from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
type: string
targetBranch:
description: TargetBranch is the branch to which hydrated
manifests should be committed
type: string
required:
- path
- targetBranch
type: object
required:
- drySource
- syncSource
type: object
startedAt:
description: StartedAt indicates when the hydrate operation
started
format: date-time
type: string
required:
- message
- phase
type: object
lastSuccessfulOperation:
description: LastSuccessfulOperation holds info about the most
recent successful hydration
properties:
drySHA:
description: DrySHA holds the resolved revision (sha) of the
dry source as of the most recent reconciliation
type: string
hydratedSHA:
description: HydratedSHA holds the resolved revision (sha)
of the hydrated source as of the most recent reconciliation
type: string
sourceHydrator:
description: SourceHydrator holds the hydrator config used
for the hydrate operation
properties:
drySource:
description: DrySource specifies where the dry "don't
repeat yourself" manifest source lives.
properties:
path:
description: Path is a directory path within the Git
repository where the manifests are located
type: string
repoURL:
description: RepoURL is the URL to the git repository
that contains the application manifests
type: string
targetRevision:
description: TargetRevision defines the revision of
the source to hydrate
type: string
required:
- path
- repoURL
- targetRevision
type: object
hydrateTo:
description: |-
HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
have to move manifests to the SyncSource, e.g. by pull request.
properties:
targetBranch:
description: TargetBranch is the branch to which hydrated
manifests should be committed
type: string
required:
- targetBranch
type: object
syncSource:
description: SyncSource specifies where to sync hydrated
manifests from.
properties:
path:
description: |-
Path is a directory path within the git repository where hydrated manifests should be committed to and synced
from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
type: string
targetBranch:
description: TargetBranch is the branch to which hydrated
manifests should be committed
type: string
required:
- path
- targetBranch
type: object
required:
- drySource
- syncSource
type: object
type: object
type: object
sourceType:
description: SourceType specifies the type of this application
type: string

File diff suppressed because it is too large Load Diff

1093
manifests/ha/install.yaml generated

File diff suppressed because it is too large Load Diff

1093
manifests/install.yaml generated

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -644,6 +644,9 @@ message ApplicationSpec {
// Sources is a reference to the location of the application's manifests or chart
repeated ApplicationSource sources = 8;
// SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster.
optional SourceHydrator sourceHydrator = 9;
}
// ApplicationStatus contains status information for the application
@@ -687,6 +690,9 @@ message ApplicationStatus {
// ControllerNamespace indicates the namespace in which the application controller is located
optional string controllerNamespace = 13;
// SourceHydrator stores information about the current state of source hydration
optional SourceHydratorStatus sourceHydrator = 14;
}
// ApplicationSummary contains information about URLs and container images used by an application
@@ -957,6 +963,18 @@ message ConnectionState {
optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time attemptedAt = 3;
}
// DrySource specifies a location for dry "don't repeat yourself" manifest source information.
message DrySource {
// RepoURL is the URL to the git repository that contains the application manifests
optional string repoURL = 1;
// TargetRevision defines the revision of the source to hydrate
optional string targetRevision = 2;
// Path is a directory path within the Git repository where the manifests are located
optional string path = 3;
}
// DuckType defines a generator to match against clusters registered with ArgoCD.
message DuckTypeGenerator {
// ConfigMapRef is a ConfigMap with the duck type definitions needed to retrieve the data
@@ -1125,6 +1143,37 @@ message HostResourceInfo {
optional int64 capacity = 4;
}
// HydrateOperation contains information about the most recent hydrate operation
message HydrateOperation {
// StartedAt indicates when the hydrate operation started
optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;
// FinishedAt indicates when the hydrate operation finished
optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 2;
// Phase indicates the status of the hydrate operation
optional string phase = 3;
// Message contains a message describing the current status of the hydrate operation
optional string message = 4;
// DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation
optional string drySHA = 5;
// HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation
optional string hydratedSHA = 6;
// SourceHydrator holds the hydrator config used for the hydrate operation
optional SourceHydrator sourceHydrator = 7;
}
// HydrateTo specifies a location to which hydrated manifests should be pushed as a "staging area" before being moved to
// the SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.
message HydrateTo {
// TargetBranch is the branch to which hydrated manifests should be committed
optional string targetBranch = 1;
}
message Info {
optional string name = 1;
@@ -2244,6 +2293,41 @@ message SignatureKey {
optional string keyID = 1;
}
// SourceHydrator specifies a dry "don't repeat yourself" source for manifests, a sync source from which to sync
// hydrated manifests, and an optional hydrateTo location to act as a "staging" aread for hydrated manifests.
message SourceHydrator {
// DrySource specifies where the dry "don't repeat yourself" manifest source lives.
optional DrySource drySource = 1;
// SyncSource specifies where to sync hydrated manifests from.
optional SyncSource syncSource = 2;
// HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
// have to move manifests to the SyncSource, e.g. by pull request.
optional HydrateTo hydrateTo = 3;
}
// SourceHydratorStatus contains information about the current state of source hydration
message SourceHydratorStatus {
// LastSuccessfulOperation holds info about the most recent successful hydration
optional SuccessfulHydrateOperation lastSuccessfulOperation = 1;
// CurrentOperation holds the status of the hydrate operation
optional HydrateOperation currentOperation = 2;
}
// SuccessfulHydrateOperation contains information about the most recent successful hydrate operation
message SuccessfulHydrateOperation {
// DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation
optional string drySHA = 5;
// HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation
optional string hydratedSHA = 6;
// SourceHydrator holds the hydrator config used for the hydrate operation
optional SourceHydrator sourceHydrator = 7;
}
// SyncOperation contains details about a sync operation.
message SyncOperation {
// Revision is the revision (Git) or chart version (Helm) which to sync the application to
@@ -2343,6 +2427,17 @@ message SyncPolicyAutomated {
optional bool allowEmpty = 3;
}
// SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the
// associated DrySource config in the SourceHydrator.
message SyncSource {
// TargetBranch is the branch to which hydrated manifests should be committed
optional string targetBranch = 1;
// Path is a directory path within the git repository where hydrated manifests should be committed to and synced
// from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
optional string path = 2;
}
// SyncStatus contains information about the currently observed live and desired states of an application
message SyncStatus {
// Status is the sync state of the comparison

View File

@@ -72,6 +72,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ConfigManagementPlugin": schema_pkg_apis_application_v1alpha1_ConfigManagementPlugin(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ConfigMapKeyRef": schema_pkg_apis_application_v1alpha1_ConfigMapKeyRef(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ConnectionState": schema_pkg_apis_application_v1alpha1_ConnectionState(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource": schema_pkg_apis_application_v1alpha1_DrySource(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DuckTypeGenerator": schema_pkg_apis_application_v1alpha1_DuckTypeGenerator(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.EnvEntry": schema_pkg_apis_application_v1alpha1_EnvEntry(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ErrApplicationNotAllowedToUseProject": schema_pkg_apis_application_v1alpha1_ErrApplicationNotAllowedToUseProject(ref),
@@ -87,6 +88,8 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HelmParameter": schema_pkg_apis_application_v1alpha1_HelmParameter(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HostInfo": schema_pkg_apis_application_v1alpha1_HostInfo(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HostResourceInfo": schema_pkg_apis_application_v1alpha1_HostResourceInfo(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateOperation": schema_pkg_apis_application_v1alpha1_HydrateOperation(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateTo": schema_pkg_apis_application_v1alpha1_HydrateTo(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Info": schema_pkg_apis_application_v1alpha1_Info(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.InfoItem": schema_pkg_apis_application_v1alpha1_InfoItem(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.JWTToken": schema_pkg_apis_application_v1alpha1_JWTToken(ref),
@@ -158,11 +161,15 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SCMProviderGeneratorGitlab": schema_pkg_apis_application_v1alpha1_SCMProviderGeneratorGitlab(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SecretRef": schema_pkg_apis_application_v1alpha1_SecretRef(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SignatureKey": schema_pkg_apis_application_v1alpha1_SignatureKey(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator": schema_pkg_apis_application_v1alpha1_SourceHydrator(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydratorStatus": schema_pkg_apis_application_v1alpha1_SourceHydratorStatus(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SuccessfulHydrateOperation": schema_pkg_apis_application_v1alpha1_SuccessfulHydrateOperation(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncOperation": schema_pkg_apis_application_v1alpha1_SyncOperation(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncOperationResource": schema_pkg_apis_application_v1alpha1_SyncOperationResource(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncOperationResult": schema_pkg_apis_application_v1alpha1_SyncOperationResult(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicy": schema_pkg_apis_application_v1alpha1_SyncPolicy(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicyAutomated": schema_pkg_apis_application_v1alpha1_SyncPolicyAutomated(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncSource": schema_pkg_apis_application_v1alpha1_SyncSource(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStatus": schema_pkg_apis_application_v1alpha1_SyncStatus(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStrategy": schema_pkg_apis_application_v1alpha1_SyncStrategy(ref),
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStrategyApply": schema_pkg_apis_application_v1alpha1_SyncStrategyApply(ref),
@@ -2317,12 +2324,18 @@ func schema_pkg_apis_application_v1alpha1_ApplicationSpec(ref common.ReferenceCa
},
},
},
"sourceHydrator": {
SchemaProps: spec.SchemaProps{
Description: "SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster.",
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator"),
},
},
},
Required: []string{"destination", "project"},
},
},
Dependencies: []string{
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationDestination", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Info", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceIgnoreDifferences", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicy"},
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationDestination", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.Info", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceIgnoreDifferences", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncPolicy"},
}
}
@@ -2450,11 +2463,18 @@ func schema_pkg_apis_application_v1alpha1_ApplicationStatus(ref common.Reference
Format: "",
},
},
"sourceHydrator": {
SchemaProps: spec.SchemaProps{
Description: "SourceHydrator stores information about the current state of source hydration",
Default: map[string]interface{}{},
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydratorStatus"),
},
},
},
},
},
Dependencies: []string{
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationCondition", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSummary", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HealthStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OperationState", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.RevisionHistory", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationCondition", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ApplicationSummary", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HealthStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.OperationState", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.ResourceStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.RevisionHistory", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydratorStatus", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
}
}
@@ -3346,6 +3366,44 @@ func schema_pkg_apis_application_v1alpha1_ConnectionState(ref common.ReferenceCa
}
}
func schema_pkg_apis_application_v1alpha1_DrySource(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "DrySource specifies a location for dry \"don't repeat yourself\" manifest source information.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"repoURL": {
SchemaProps: spec.SchemaProps{
Description: "RepoURL is the URL to the git repository that contains the application manifests",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"targetRevision": {
SchemaProps: spec.SchemaProps{
Description: "TargetRevision defines the revision of the source to hydrate",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"path": {
SchemaProps: spec.SchemaProps{
Description: "Path is a directory path within the Git repository where the manifests are located",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"repoURL", "targetRevision", "path"},
},
},
}
}
func schema_pkg_apis_application_v1alpha1_DuckTypeGenerator(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -3966,6 +4024,93 @@ func schema_pkg_apis_application_v1alpha1_HostResourceInfo(ref common.ReferenceC
}
}
func schema_pkg_apis_application_v1alpha1_HydrateOperation(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "HydrateOperation contains information about the most recent hydrate operation",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"startedAt": {
SchemaProps: spec.SchemaProps{
Description: "StartedAt indicates when the hydrate operation started",
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
},
},
"finishedAt": {
SchemaProps: spec.SchemaProps{
Description: "FinishedAt indicates when the hydrate operation finished",
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
},
},
"phase": {
SchemaProps: spec.SchemaProps{
Description: "Phase indicates the status of the hydrate operation",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"message": {
SchemaProps: spec.SchemaProps{
Description: "Message contains a message describing the current status of the hydrate operation",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"drySHA": {
SchemaProps: spec.SchemaProps{
Description: "DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation",
Type: []string{"string"},
Format: "",
},
},
"hydratedSHA": {
SchemaProps: spec.SchemaProps{
Description: "HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation",
Type: []string{"string"},
Format: "",
},
},
"sourceHydrator": {
SchemaProps: spec.SchemaProps{
Description: "SourceHydrator holds the hydrator config used for the hydrate operation",
Default: map[string]interface{}{},
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator"),
},
},
},
Required: []string{"phase", "message"},
},
},
Dependencies: []string{
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
}
}
func schema_pkg_apis_application_v1alpha1_HydrateTo(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "HydrateTo specifies a location to which hydrated manifests should be pushed as a \"staging area\" before being moved to the SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"targetBranch": {
SchemaProps: spec.SchemaProps{
Description: "TargetBranch is the branch to which hydrated manifests should be committed",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"targetBranch"},
},
},
}
}
func schema_pkg_apis_application_v1alpha1_Info(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -7651,6 +7796,105 @@ func schema_pkg_apis_application_v1alpha1_SignatureKey(ref common.ReferenceCallb
}
}
func schema_pkg_apis_application_v1alpha1_SourceHydrator(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "SourceHydrator specifies a dry \"don't repeat yourself\" source for manifests, a sync source from which to sync hydrated manifests, and an optional hydrateTo location to act as a \"staging\" aread for hydrated manifests.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"drySource": {
SchemaProps: spec.SchemaProps{
Description: "DrySource specifies where the dry \"don't repeat yourself\" manifest source lives.",
Default: map[string]interface{}{},
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource"),
},
},
"syncSource": {
SchemaProps: spec.SchemaProps{
Description: "SyncSource specifies where to sync hydrated manifests from.",
Default: map[string]interface{}{},
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncSource"),
},
},
"hydrateTo": {
SchemaProps: spec.SchemaProps{
Description: "HydrateTo specifies an optional \"staging\" location to push hydrated manifests to. An external system would then have to move manifests to the SyncSource, e.g. by pull request.",
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateTo"),
},
},
},
Required: []string{"drySource", "syncSource"},
},
},
Dependencies: []string{
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.DrySource", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateTo", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SyncSource"},
}
}
func schema_pkg_apis_application_v1alpha1_SourceHydratorStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "SourceHydratorStatus contains information about the current state of source hydration",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"lastSuccessfulOperation": {
SchemaProps: spec.SchemaProps{
Description: "LastSuccessfulOperation holds info about the most recent successful hydration",
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SuccessfulHydrateOperation"),
},
},
"currentOperation": {
SchemaProps: spec.SchemaProps{
Description: "CurrentOperation holds the status of the hydrate operation",
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateOperation"),
},
},
},
},
},
Dependencies: []string{
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.HydrateOperation", "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SuccessfulHydrateOperation"},
}
}
func schema_pkg_apis_application_v1alpha1_SuccessfulHydrateOperation(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "SuccessfulHydrateOperation contains information about the most recent successful hydrate operation",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"drySHA": {
SchemaProps: spec.SchemaProps{
Description: "DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation",
Type: []string{"string"},
Format: "",
},
},
"hydratedSHA": {
SchemaProps: spec.SchemaProps{
Description: "HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation",
Type: []string{"string"},
Format: "",
},
},
"sourceHydrator": {
SchemaProps: spec.SchemaProps{
Description: "SourceHydrator holds the hydrator config used for the hydrate operation",
Default: map[string]interface{}{},
Ref: ref("github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator"),
},
},
},
},
},
Dependencies: []string{
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1.SourceHydrator"},
}
}
func schema_pkg_apis_application_v1alpha1_SyncOperation(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -7973,6 +8217,36 @@ func schema_pkg_apis_application_v1alpha1_SyncPolicyAutomated(ref common.Referen
}
}
func schema_pkg_apis_application_v1alpha1_SyncSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
Description: "SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the associated DrySource config in the SourceHydrator.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"targetBranch": {
SchemaProps: spec.SchemaProps{
Description: "TargetBranch is the branch to which hydrated manifests should be committed",
Default: "",
Type: []string{"string"},
Format: "",
},
},
"path": {
SchemaProps: spec.SchemaProps{
Description: "Path is a directory path within the git repository where hydrated manifests should be committed to and synced from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.",
Default: "",
Type: []string{"string"},
Format: "",
},
},
},
Required: []string{"targetBranch", "path"},
},
},
}
}
func schema_pkg_apis_application_v1alpha1_SyncStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{

View File

@@ -86,6 +86,9 @@ type ApplicationSpec struct {
// Sources is a reference to the location of the application's manifests or chart
Sources ApplicationSources `json:"sources,omitempty" protobuf:"bytes,8,opt,name=sources"`
// SourceHydrator provides a way to push hydrated manifests back to git before syncing them to the cluster.
SourceHydrator *SourceHydrator `json:"sourceHydrator,omitempty" protobuf:"bytes,9,opt,name=sourceHydrator"`
}
type IgnoreDifferences []ResourceIgnoreDifferences
@@ -351,6 +354,45 @@ const (
ApplicationSourceTypePlugin ApplicationSourceType = "Plugin"
)
// SourceHydrator specifies a dry "don't repeat yourself" source for manifests, a sync source from which to sync
// hydrated manifests, and an optional hydrateTo location to act as a "staging" aread for hydrated manifests.
type SourceHydrator struct {
// DrySource specifies where the dry "don't repeat yourself" manifest source lives.
DrySource DrySource `json:"drySource" protobuf:"bytes,1,name=drySource"`
// SyncSource specifies where to sync hydrated manifests from.
SyncSource SyncSource `json:"syncSource" protobuf:"bytes,2,name=syncSource"`
// HydrateTo specifies an optional "staging" location to push hydrated manifests to. An external system would then
// have to move manifests to the SyncSource, e.g. by pull request.
HydrateTo *HydrateTo `json:"hydrateTo,omitempty" protobuf:"bytes,3,opt,name=hydrateTo"`
}
// DrySource specifies a location for dry "don't repeat yourself" manifest source information.
type DrySource struct {
// RepoURL is the URL to the git repository that contains the application manifests
RepoURL string `json:"repoURL" protobuf:"bytes,1,name=repoURL"`
// TargetRevision defines the revision of the source to hydrate
TargetRevision string `json:"targetRevision" protobuf:"bytes,2,name=targetRevision"`
// Path is a directory path within the Git repository where the manifests are located
Path string `json:"path" protobuf:"bytes,3,name=path"`
}
// SyncSource specifies a location from which hydrated manifests may be synced. RepoURL is assumed based on the
// associated DrySource config in the SourceHydrator.
type SyncSource struct {
// TargetBranch is the branch to which hydrated manifests should be committed
TargetBranch string `json:"targetBranch" protobuf:"bytes,1,name=targetBranch"`
// Path is a directory path within the git repository where hydrated manifests should be committed to and synced
// from. If hydrateTo is set, this is just the path from which hydrated manifests will be synced.
Path string `json:"path" protobuf:"bytes,2,name=path"`
}
// HydrateTo specifies a location to which hydrated manifests should be pushed as a "staging area" before being moved to
// the SyncSource. The RepoURL and Path are assumed based on the associated SyncSource config in the SourceHydrator.
type HydrateTo struct {
// TargetBranch is the branch to which hydrated manifests should be committed
TargetBranch string `json:"targetBranch" protobuf:"bytes,1,name=targetBranch"`
}
// RefreshType specifies how to refresh the sources of a given application
type RefreshType string
@@ -1051,8 +1093,56 @@ type ApplicationStatus struct {
SourceTypes []ApplicationSourceType `json:"sourceTypes,omitempty" protobuf:"bytes,12,opt,name=sourceTypes"`
// ControllerNamespace indicates the namespace in which the application controller is located
ControllerNamespace string `json:"controllerNamespace,omitempty" protobuf:"bytes,13,opt,name=controllerNamespace"`
// SourceHydrator stores information about the current state of source hydration
SourceHydrator SourceHydratorStatus `json:"sourceHydrator,omitempty" protobuf:"bytes,14,opt,name=sourceHydrator"`
}
// SourceHydratorStatus contains information about the current state of source hydration
type SourceHydratorStatus struct {
// LastSuccessfulOperation holds info about the most recent successful hydration
LastSuccessfulOperation *SuccessfulHydrateOperation `json:"lastSuccessfulOperation,omitempty" protobuf:"bytes,1,opt,name=lastSuccessfulOperation"`
// CurrentOperation holds the status of the hydrate operation
CurrentOperation *HydrateOperation `json:"currentOperation,omitempty" protobuf:"bytes,2,opt,name=currentOperation"`
}
// HydrateOperation contains information about the most recent hydrate operation
type HydrateOperation struct {
// StartedAt indicates when the hydrate operation started
StartedAt metav1.Time `json:"startedAt,omitempty" protobuf:"bytes,1,opt,name=startedAt"`
// FinishedAt indicates when the hydrate operation finished
FinishedAt *metav1.Time `json:"finishedAt,omitempty" protobuf:"bytes,2,opt,name=finishedAt"`
// Phase indicates the status of the hydrate operation
Phase HydrateOperationPhase `json:"phase" protobuf:"bytes,3,opt,name=phase"`
// Message contains a message describing the current status of the hydrate operation
Message string `json:"message" protobuf:"bytes,4,opt,name=message"`
// DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation
DrySHA string `json:"drySHA,omitempty" protobuf:"bytes,5,opt,name=drySHA"`
// HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation
HydratedSHA string `json:"hydratedSHA,omitempty" protobuf:"bytes,6,opt,name=hydratedSHA"`
// SourceHydrator holds the hydrator config used for the hydrate operation
SourceHydrator SourceHydrator `json:"sourceHydrator,omitempty" protobuf:"bytes,7,opt,name=sourceHydrator"`
}
// SuccessfulHydrateOperation contains information about the most recent successful hydrate operation
type SuccessfulHydrateOperation struct {
// DrySHA holds the resolved revision (sha) of the dry source as of the most recent reconciliation
DrySHA string `json:"drySHA,omitempty" protobuf:"bytes,5,opt,name=drySHA"`
// HydratedSHA holds the resolved revision (sha) of the hydrated source as of the most recent reconciliation
HydratedSHA string `json:"hydratedSHA,omitempty" protobuf:"bytes,6,opt,name=hydratedSHA"`
// SourceHydrator holds the hydrator config used for the hydrate operation
SourceHydrator SourceHydrator `json:"sourceHydrator,omitempty" protobuf:"bytes,7,opt,name=sourceHydrator"`
}
// HydrateOperationPhase indicates the status of a hydrate operation
// +kubebuilder:validation:Enum=Hydrating;Failed;Hydrated
type HydrateOperationPhase string
const (
HydrateOperationPhaseHydrating HydrateOperationPhase = "Hydrating"
HydrateOperationPhaseFailed HydrateOperationPhase = "Failed"
HydrateOperationPhaseHydrated HydrateOperationPhase = "Hydrated"
)
func (a *ApplicationStatus) FindResource(key kube.ResourceKey) (*ResourceStatus, bool) {
for i := range a.Resources {
res := a.Resources[i]

View File

@@ -1352,6 +1352,11 @@ func (in *ApplicationSpec) DeepCopyInto(out *ApplicationSpec) {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.SourceHydrator != nil {
in, out := &in.SourceHydrator, &out.SourceHydrator
*out = new(SourceHydrator)
(*in).DeepCopyInto(*out)
}
return
}
@@ -1410,6 +1415,7 @@ func (in *ApplicationStatus) DeepCopyInto(out *ApplicationStatus) {
*out = make([]ApplicationSourceType, len(*in))
copy(*out, *in)
}
in.SourceHydrator.DeepCopyInto(&out.SourceHydrator)
return
}
@@ -1906,6 +1912,22 @@ func (in *ConnectionState) DeepCopy() *ConnectionState {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DrySource) DeepCopyInto(out *DrySource) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DrySource.
func (in *DrySource) DeepCopy() *DrySource {
if in == nil {
return nil
}
out := new(DrySource)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DuckTypeGenerator) DeepCopyInto(out *DuckTypeGenerator) {
*out = *in
@@ -2242,6 +2264,44 @@ func (in *HostResourceInfo) DeepCopy() *HostResourceInfo {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HydrateOperation) DeepCopyInto(out *HydrateOperation) {
*out = *in
in.StartedAt.DeepCopyInto(&out.StartedAt)
if in.FinishedAt != nil {
in, out := &in.FinishedAt, &out.FinishedAt
*out = (*in).DeepCopy()
}
in.SourceHydrator.DeepCopyInto(&out.SourceHydrator)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HydrateOperation.
func (in *HydrateOperation) DeepCopy() *HydrateOperation {
if in == nil {
return nil
}
out := new(HydrateOperation)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HydrateTo) DeepCopyInto(out *HydrateTo) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HydrateTo.
func (in *HydrateTo) DeepCopy() *HydrateTo {
if in == nil {
return nil
}
out := new(HydrateTo)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in IgnoreDifferences) DeepCopyInto(out *IgnoreDifferences) {
{
@@ -4193,6 +4253,72 @@ func (in *SignatureKey) DeepCopy() *SignatureKey {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SourceHydrator) DeepCopyInto(out *SourceHydrator) {
*out = *in
out.DrySource = in.DrySource
out.SyncSource = in.SyncSource
if in.HydrateTo != nil {
in, out := &in.HydrateTo, &out.HydrateTo
*out = new(HydrateTo)
**out = **in
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceHydrator.
func (in *SourceHydrator) DeepCopy() *SourceHydrator {
if in == nil {
return nil
}
out := new(SourceHydrator)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SourceHydratorStatus) DeepCopyInto(out *SourceHydratorStatus) {
*out = *in
if in.LastSuccessfulOperation != nil {
in, out := &in.LastSuccessfulOperation, &out.LastSuccessfulOperation
*out = new(SuccessfulHydrateOperation)
(*in).DeepCopyInto(*out)
}
if in.CurrentOperation != nil {
in, out := &in.CurrentOperation, &out.CurrentOperation
*out = new(HydrateOperation)
(*in).DeepCopyInto(*out)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceHydratorStatus.
func (in *SourceHydratorStatus) DeepCopy() *SourceHydratorStatus {
if in == nil {
return nil
}
out := new(SourceHydratorStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SuccessfulHydrateOperation) DeepCopyInto(out *SuccessfulHydrateOperation) {
*out = *in
in.SourceHydrator.DeepCopyInto(&out.SourceHydrator)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuccessfulHydrateOperation.
func (in *SuccessfulHydrateOperation) DeepCopy() *SuccessfulHydrateOperation {
if in == nil {
return nil
}
out := new(SuccessfulHydrateOperation)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SyncOperation) DeepCopyInto(out *SyncOperation) {
*out = *in
@@ -4379,6 +4505,22 @@ func (in *SyncPolicyAutomated) DeepCopy() *SyncPolicyAutomated {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SyncSource) DeepCopyInto(out *SyncSource) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncSource.
func (in *SyncSource) DeepCopy() *SyncSource {
if in == nil {
return nil
}
out := new(SyncSource)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SyncStatus) DeepCopyInto(out *SyncStatus) {
*out = *in