Documentation
¶
Index ¶
- Constants
- type AWSAuthConfig
- type AppProject
- type AppProjectList
- type AppProjectSpec
- type Application
- type ApplicationCondition
- type ApplicationConditionType
- type ApplicationDestination
- type ApplicationList
- type ApplicationSource
- type ApplicationSourceDirectory
- type ApplicationSourceHelm
- type ApplicationSourceJsonnet
- type ApplicationSourceKsonnet
- type ApplicationSourceKustomize
- type ApplicationSourcePlugin
- type ApplicationSourceType
- type ApplicationSpec
- type ApplicationStatus
- type ApplicationSummary
- type ApplicationTree
- type ApplicationWatchEvent
- type Cluster
- type ClusterConfig
- type ClusterList
- type Command
- type ComparedTo
- type ComponentParameter
- type ConfigManagementPlugin
- type ConnectionState
- type ConnectionStatus
- type Env
- type EnvEntry
- type HealthStatus
- type HealthStatusCode
- type HelmFileParameter
- type HelmParameter
- type HookDeletePolicy
- type HookType
- type Info
- type InfoItem
- type JWTToken
- type JsonnetVar
- type KnownTypeField
- type KsonnetParameter
- type KustomizeImage
- type KustomizeImages
- type KustomizeOptions
- type Operation
- type OperationInitiator
- type OperationPhase
- type OperationState
- type OrphanedResourcesMonitorSettings
- type ProjectRole
- type RefreshType
- type RepoCreds
- type RepoCredsList
- type Repositories
- type Repository
- type RepositoryCertificate
- type RepositoryCertificateList
- type RepositoryList
- type ResourceAction
- type ResourceActionDefinition
- type ResourceActionParam
- type ResourceActions
- type ResourceDiff
- type ResourceIgnoreDifferences
- type ResourceNetworkingInfo
- type ResourceNode
- type ResourceOverride
- type ResourceRef
- type ResourceResult
- type ResourceResults
- type ResourceStatus
- type ResultCode
- type RevisionHistories
- type RevisionHistory
- type RevisionMetadata
- type SyncOperation
- type SyncOperationResource
- type SyncOperationResult
- type SyncOptions
- type SyncPhase
- type SyncPolicy
- type SyncPolicyAutomated
- type SyncStatus
- type SyncStatusCode
- type SyncStrategy
- type SyncStrategyApply
- type SyncStrategyHook
- type SyncWindow
- type SyncWindows
- type TLSClientConfig
Constants ¶
const ( SyncPhasePreSync = "PreSync" SyncPhaseSync = "Sync" SyncPhasePostSync = "PostSync" SyncPhaseSyncFail = "SyncFail" )
const ( // ApplicationConditionDeletionError indicates that controller failed to delete application ApplicationConditionDeletionError = "DeletionError" // ApplicationConditionInvalidSpecError indicates that application source is invalid ApplicationConditionInvalidSpecError = "InvalidSpecError" // ApplicationConditionComparisonError indicates controller failed to compare application state ApplicationConditionComparisonError = "ComparisonError" // ApplicationConditionSyncError indicates controller failed to automatically sync the application ApplicationConditionSyncError = "SyncError" // ApplicationConditionUnknownError indicates an unknown controller error ApplicationConditionUnknownError = "UnknownError" ApplicationConditionSharedResourceWarning = "SharedResourceWarning" // ApplicationConditionRepeatedResourceWarning indicates that application source has resource with same Group, Kind, Name, Namespace multiple times ApplicationConditionRepeatedResourceWarning = "RepeatedResourceWarning" // ApplicationConditionExcludedResourceWarning indicates that application has resource which is configured to be excluded ApplicationConditionExcludedResourceWarning = "ExcludedResourceWarning" // ApplicationConditionOrphanedResourceWarning indicates that application has orphaned resources ApplicationConditionOrphanedResourceWarning = "OrphanedResourceWarning" )
const ( ConnectionStatusSuccessful = "Successful" ConnectionStatusFailed = "Failed" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AWSAuthConfig ¶
type AWSAuthConfig struct {
// ClusterName contains AWS cluster name
ClusterName string `json:"clusterName,omitempty" protobuf:"bytes,1,opt,name=clusterName"`
// RoleARN contains optional role ARN. If set then AWS IAM Authenticator assume a role to perform cluster operations instead of the default AWS credential provider chain.
RoleARN string `json:"roleARN,omitempty" protobuf:"bytes,2,opt,name=roleARN"`
}
AWSAuthConfig is an AWS IAM authentication configuration
type AppProject ¶
type AppProject struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"`
Spec AppProjectSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"`
}
AppProject provides a logical grouping of applications, providing controls for: * where the apps may deploy to (cluster whitelist) * what may be deployed (repository whitelist, resource whitelist/blacklist) * who can access these applications (roles, OIDC group claims bindings) * and what they can do (RBAC policies) * automation access to these roles (JWT tokens) +genclient +genclient:noStatus +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:path=appprojects,shortName=appproj;appprojs
type AppProjectList ¶
type AppProjectList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"`
Items []AppProject `json:"items" protobuf:"bytes,2,rep,name=items"`
}
AppProjectList is list of AppProject resources +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type AppProjectSpec ¶
type AppProjectSpec struct {
// SourceRepos contains list of repository URLs which can be used for deployment
SourceRepos []string `json:"sourceRepos,omitempty" protobuf:"bytes,1,name=sourceRepos"`
// Destinations contains list of destinations available for deployment
Destinations []ApplicationDestination `json:"destinations,omitempty" protobuf:"bytes,2,name=destination"`
// Description contains optional project description
Description string `json:"description,omitempty" protobuf:"bytes,3,opt,name=description"`
// Roles are user defined RBAC roles associated with this project
Roles []ProjectRole `json:"roles,omitempty" protobuf:"bytes,4,rep,name=roles"`
// ClusterResourceWhitelist contains list of whitelisted cluster level resources
ClusterResourceWhitelist []metav1.GroupKind `json:"clusterResourceWhitelist,omitempty" protobuf:"bytes,5,opt,name=clusterResourceWhitelist"`
// NamespaceResourceBlacklist contains list of blacklisted namespace level resources
NamespaceResourceBlacklist []metav1.GroupKind `json:"namespaceResourceBlacklist,omitempty" protobuf:"bytes,6,opt,name=namespaceResourceBlacklist"`
// OrphanedResources specifies if controller should monitor orphaned resources of apps in this project
OrphanedResources *OrphanedResourcesMonitorSettings `json:"orphanedResources,omitempty" protobuf:"bytes,7,opt,name=orphanedResources"`
// SyncWindows controls when syncs can be run for apps in this project
SyncWindows SyncWindows `json:"syncWindows,omitempty" protobuf:"bytes,8,opt,name=syncWindows"`
// NamespaceResourceWhitelist contains list of whitelisted namespace level resources
NamespaceResourceWhitelist []metav1.GroupKind `json:"namespaceResourceWhitelist,omitempty" protobuf:"bytes,9,opt,name=namespaceResourceWhitelist"`
}
AppProjectSpec is the specification of an AppProject
type Application ¶
type Application struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"`
Spec ApplicationSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"`
Status ApplicationStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
Operation *Operation `json:"operation,omitempty" protobuf:"bytes,4,opt,name=operation"`
}
Application is a definition of Application resource. +genclient +genclient:noStatus +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:path=applications,shortName=app;apps
type ApplicationCondition ¶
type ApplicationCondition struct {
// Type is an application condition type
Type ApplicationConditionType `json:"type" protobuf:"bytes,1,opt,name=type"`
// Message contains human-readable message indicating details about condition
Message string `json:"message" protobuf:"bytes,2,opt,name=message"`
// LastTransitionTime is the time the condition was first observed.
LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"`
}
ApplicationCondition contains details about current application condition
type ApplicationConditionType ¶
type ApplicationConditionType = string
ApplicationConditionType represents type of application condition. Type name has following convention: prefix "Error" means error condition prefix "Warning" means warning condition prefix "Info" means informational condition
type ApplicationDestination ¶
type ApplicationDestination struct {
// Server overrides the environment server value in the ksonnet app.yaml
Server string `json:"server,omitempty" protobuf:"bytes,1,opt,name=server"`
// Namespace overrides the environment namespace value in the ksonnet app.yaml
Namespace string `json:"namespace,omitempty" protobuf:"bytes,2,opt,name=namespace"`
}
ApplicationDestination contains deployment destination information
type ApplicationList ¶
type ApplicationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"`
Items []Application `json:"items" protobuf:"bytes,2,rep,name=items"`
}
ApplicationList is list of Application resources +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type ApplicationSource ¶
type ApplicationSource struct {
// RepoURL is the repository URL of the application manifests
RepoURL string `json:"repoURL" protobuf:"bytes,1,opt,name=repoURL"`
// Path is a directory path within the Git repository
Path string `json:"path,omitempty" protobuf:"bytes,2,opt,name=path"`
// TargetRevision defines the commit, tag, or branch in which to sync the application to.
// If omitted, will sync to HEAD
TargetRevision string `json:"targetRevision,omitempty" protobuf:"bytes,4,opt,name=targetRevision"`
// Helm holds helm specific options
Helm *ApplicationSourceHelm `json:"helm,omitempty" protobuf:"bytes,7,opt,name=helm"`
// Kustomize holds kustomize specific options
Kustomize *ApplicationSourceKustomize `json:"kustomize,omitempty" protobuf:"bytes,8,opt,name=kustomize"`
// Ksonnet holds ksonnet specific options
Ksonnet *ApplicationSourceKsonnet `json:"ksonnet,omitempty" protobuf:"bytes,9,opt,name=ksonnet"`
// Directory holds path/directory specific options
Directory *ApplicationSourceDirectory `json:"directory,omitempty" protobuf:"bytes,10,opt,name=directory"`
// ConfigManagementPlugin holds config management plugin specific options
Plugin *ApplicationSourcePlugin `json:"plugin,omitempty" protobuf:"bytes,11,opt,name=plugin"`
// Chart is a Helm chart name
Chart string `json:"chart,omitempty" protobuf:"bytes,12,opt,name=chart"`
}
ApplicationSource contains information about github repository, path within repository and target application environment.
type ApplicationSourceDirectory ¶
type ApplicationSourceDirectory struct {
Recurse bool `json:"recurse,omitempty" protobuf:"bytes,1,opt,name=recurse"`
Jsonnet ApplicationSourceJsonnet `json:"jsonnet,omitempty" protobuf:"bytes,2,opt,name=jsonnet"`
}
type ApplicationSourceHelm ¶
type ApplicationSourceHelm struct {
// ValuesFiles is a list of Helm value files to use when generating a template
ValueFiles []string `json:"valueFiles,omitempty" protobuf:"bytes,1,opt,name=valueFiles"`
// Parameters are parameters to the helm template
Parameters []HelmParameter `json:"parameters,omitempty" protobuf:"bytes,2,opt,name=parameters"`
// The Helm release name. If omitted it will use the application name
ReleaseName string `json:"releaseName,omitempty" protobuf:"bytes,3,opt,name=releaseName"`
// Values is Helm values, typically defined as a block
Values string `json:"values,omitempty" protobuf:"bytes,4,opt,name=values"`
// FileParameters are file parameters to the helm template
FileParameters []HelmFileParameter `json:"fileParameters,omitempty" protobuf:"bytes,5,opt,name=fileParameters"`
}
ApplicationSourceHelm holds helm specific options
type ApplicationSourceJsonnet ¶
type ApplicationSourceJsonnet struct {
// ExtVars is a list of Jsonnet External Variables
ExtVars []JsonnetVar `json:"extVars,omitempty" protobuf:"bytes,1,opt,name=extVars"`
// TLAS is a list of Jsonnet Top-level Arguments
TLAs []JsonnetVar `json:"tlas,omitempty" protobuf:"bytes,2,opt,name=tlas"`
}
ApplicationSourceJsonnet holds jsonnet specific options
type ApplicationSourceKsonnet ¶
type ApplicationSourceKsonnet struct {
// Environment is a ksonnet application environment name
Environment string `json:"environment,omitempty" protobuf:"bytes,1,opt,name=environment"`
// Parameters are a list of ksonnet component parameter override values
Parameters []KsonnetParameter `json:"parameters,omitempty" protobuf:"bytes,2,opt,name=parameters"`
}
ApplicationSourceKsonnet holds ksonnet specific options
type ApplicationSourceKustomize ¶
type ApplicationSourceKustomize struct {
// NamePrefix is a prefix appended to resources for kustomize apps
NamePrefix string `json:"namePrefix,omitempty" protobuf:"bytes,1,opt,name=namePrefix"`
// NameSuffix is a suffix appended to resources for kustomize apps
NameSuffix string `json:"nameSuffix,omitempty" protobuf:"bytes,2,opt,name=nameSuffix"`
// Images are kustomize image overrides
Images KustomizeImages `json:"images,omitempty" protobuf:"bytes,3,opt,name=images"`
// CommonLabels adds additional kustomize commonLabels
CommonLabels map[string]string `json:"commonLabels,omitempty" protobuf:"bytes,4,opt,name=commonLabels"`
// Version contains optional Kustomize version
Version string `json:"version,omitempty" protobuf:"bytes,5,opt,name=version"`
}
ApplicationSourceKustomize holds kustomize specific options
type ApplicationSourcePlugin ¶
type ApplicationSourcePlugin struct {
Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
Env `json:"env,omitempty" protobuf:"bytes,2,opt,name=env"`
}
ApplicationSourcePlugin holds config management plugin specific options
type ApplicationSourceType ¶
type ApplicationSourceType string
const ( ApplicationSourceTypeHelm ApplicationSourceType = "Helm" ApplicationSourceTypeKustomize ApplicationSourceType = "Kustomize" ApplicationSourceTypeKsonnet ApplicationSourceType = "Ksonnet" ApplicationSourceTypeDirectory ApplicationSourceType = "Directory" ApplicationSourceTypePlugin ApplicationSourceType = "Plugin" )
type ApplicationSpec ¶
type ApplicationSpec struct {
// Source is a reference to the location ksonnet application definition
Source ApplicationSource `json:"source" protobuf:"bytes,1,opt,name=source"`
// Destination overrides the kubernetes server and namespace defined in the environment ksonnet app.yaml
Destination ApplicationDestination `json:"destination" protobuf:"bytes,2,name=destination"`
// Project is a application project name. Empty name means that application belongs to 'default' project.
Project string `json:"project" protobuf:"bytes,3,name=project"`
// SyncPolicy controls when a sync will be performed
SyncPolicy *SyncPolicy `json:"syncPolicy,omitempty" protobuf:"bytes,4,name=syncPolicy"`
// IgnoreDifferences controls resources fields which should be ignored during comparison
IgnoreDifferences []ResourceIgnoreDifferences `json:"ignoreDifferences,omitempty" protobuf:"bytes,5,name=ignoreDifferences"`
// Infos contains a list of useful information (URLs, email addresses, and plain text) that relates to the application
Info []Info `json:"info,omitempty" protobuf:"bytes,6,name=info"`
// This limits this number of items kept in the apps revision history.
// This should only be changed in exceptional circumstances.
// Setting to zero will store no history. This will reduce storage used.
// Increasing will increase the space used to store the history, so we do not recommend increasing it.
// Default is 10.
RevisionHistoryLimit *int64 `json:"revisionHistoryLimit,omitempty" protobuf:"bytes,7,name=revisionHistoryLimit"`
}
ApplicationSpec represents desired application state. Contains link to repository with application definition and additional parameters link definition revision.
type ApplicationStatus ¶
type ApplicationStatus struct {
Resources []ResourceStatus `json:"resources,omitempty" protobuf:"bytes,1,opt,name=resources"`
Sync SyncStatus `json:"sync,omitempty" protobuf:"bytes,2,opt,name=sync"`
Health HealthStatus `json:"health,omitempty" protobuf:"bytes,3,opt,name=health"`
History RevisionHistories `json:"history,omitempty" protobuf:"bytes,4,opt,name=history"`
Conditions []ApplicationCondition `json:"conditions,omitempty" protobuf:"bytes,5,opt,name=conditions"`
// ReconciledAt indicates when the application state was reconciled using the latest git version
ReconciledAt *metav1.Time `json:"reconciledAt,omitempty" protobuf:"bytes,6,opt,name=reconciledAt"`
OperationState *OperationState `json:"operationState,omitempty" protobuf:"bytes,7,opt,name=operationState"`
// ObservedAt indicates when the application state was updated without querying latest git state
ObservedAt *metav1.Time `json:"observedAt,omitempty" protobuf:"bytes,8,opt,name=observedAt"`
SourceType ApplicationSourceType `json:"sourceType,omitempty" protobuf:"bytes,9,opt,name=sourceType"`
Summary ApplicationSummary `json:"summary,omitempty" protobuf:"bytes,10,opt,name=summary"`
}
ApplicationStatus contains information about application sync, health status
type ApplicationSummary ¶
type ApplicationSummary struct {
// ExternalURLs holds all external URLs of application child resources.
ExternalURLs []string `json:"externalURLs,omitempty" protobuf:"bytes,1,opt,name=externalURLs"`
// Images holds all images of application child resources.
Images []string `json:"images,omitempty" protobuf:"bytes,2,opt,name=images"`
}
type ApplicationTree ¶
type ApplicationTree struct {
// Nodes contains list of nodes which either directly managed by the application and children of directly managed nodes.
Nodes []ResourceNode `json:"nodes,omitempty" protobuf:"bytes,1,rep,name=nodes"`
// OrphanedNodes contains if or orphaned nodes: nodes which are not managed by the app but in the same namespace. List is populated only if orphaned resources enabled in app project.
OrphanedNodes []ResourceNode `json:"orphanedNodes,omitempty" protobuf:"bytes,2,rep,name=orphanedNodes"`
}
ApplicationTree holds nodes which belongs to the application
type ApplicationWatchEvent ¶
type ApplicationWatchEvent struct {
Type watch.EventType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=k8s.io/apimachinery/pkg/watch.EventType"`
// Application is:
// * If Type is Added or Modified: the new state of the object.
// * If Type is Deleted: the state of the object immediately before deletion.
// * If Type is Error: *api.Status is recommended; other types may make sense
// depending on context.
Application Application `json:"application" protobuf:"bytes,2,opt,name=application"`
}
ApplicationWatchEvent contains information about application change.
type Cluster ¶
type Cluster struct {
// Server is the API server URL of the Kubernetes cluster
Server string `json:"server" protobuf:"bytes,1,opt,name=server"`
// Name of the cluster. If omitted, will use the server address
Name string `json:"name" protobuf:"bytes,2,opt,name=name"`
// Config holds cluster information for connecting to a cluster
Config ClusterConfig `json:"config" protobuf:"bytes,3,opt,name=config"`
// ConnectionState contains information about cluster connection state
ConnectionState ConnectionState `json:"connectionState,omitempty" protobuf:"bytes,4,opt,name=connectionState"`
// The server version
ServerVersion string `json:"serverVersion,omitempty" protobuf:"bytes,5,opt,name=serverVersion"`
// Holds list of namespaces which are accessible in that cluster. Cluster level resources would be ignored if namespace list if not empty.
Namespaces []string `json:"namespaces,omitempty" protobuf:"bytes,6,opt,name=namespaces"`
}
Cluster is the definition of a cluster resource
type ClusterConfig ¶
type ClusterConfig struct {
// Server requires Basic authentication
Username string `json:"username,omitempty" protobuf:"bytes,1,opt,name=username"`
Password string `json:"password,omitempty" protobuf:"bytes,2,opt,name=password"`
// Server requires Bearer authentication. This client will not attempt to use
// refresh tokens for an OAuth2 flow.
// TODO: demonstrate an OAuth2 compatible client.
BearerToken string `json:"bearerToken,omitempty" protobuf:"bytes,3,opt,name=bearerToken"`
// TLSClientConfig contains settings to enable transport layer security
TLSClientConfig `json:"tlsClientConfig" protobuf:"bytes,4,opt,name=tlsClientConfig"`
// AWSAuthConfig contains IAM authentication configuration
AWSAuthConfig *AWSAuthConfig `json:"awsAuthConfig,omitempty" protobuf:"bytes,5,opt,name=awsAuthConfig"`
}
ClusterConfig is the configuration attributes. This structure is subset of the go-client rest.Config with annotations added for marshalling.
type ClusterList ¶
type ClusterList struct {
metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
Items []Cluster `json:"items" protobuf:"bytes,2,rep,name=items"`
}
ClusterList is a collection of Clusters.
type Command ¶
type Command struct {
Command []string `json:"command,omitempty" protobuf:"bytes,1,name=command"`
Args []string `json:"args,omitempty" protobuf:"bytes,2,rep,name=args"`
}
Command holds binary path and arguments list
type ComparedTo ¶
type ComparedTo struct {
Source ApplicationSource `json:"source" protobuf:"bytes,1,opt,name=source"`
Destination ApplicationDestination `json:"destination" protobuf:"bytes,2,opt,name=destination"`
}
ComparedTo contains application source and target which was used for resources comparison
type ComponentParameter ¶
type ComponentParameter struct {
Component string `json:"component,omitempty" protobuf:"bytes,1,opt,name=component"`
Name string `json:"name" protobuf:"bytes,2,opt,name=name"`
Value string `json:"value" protobuf:"bytes,3,opt,name=value"`
}
ComponentParameter contains information about component parameter value
type ConfigManagementPlugin ¶
type ConfigManagementPlugin struct {
Name string `json:"name" protobuf:"bytes,1,name=name"`
Init *Command `json:"init,omitempty" protobuf:"bytes,2,name=init"`
Generate Command `json:"generate" protobuf:"bytes,3,name=generate"`
}
ConfigManagementPlugin contains config management plugin configuration
type ConnectionState ¶
type ConnectionState struct {
Status ConnectionStatus `json:"status" protobuf:"bytes,1,opt,name=status"`
Message string `json:"message" protobuf:"bytes,2,opt,name=message"`
ModifiedAt *metav1.Time `json:"attemptedAt" protobuf:"bytes,3,opt,name=attemptedAt"`
}
ConnectionState contains information about remote resource connection state
type ConnectionStatus ¶
type ConnectionStatus = string
ConnectionStatus represents connection status
type HealthStatus ¶
type HealthStatus struct {
Status HealthStatusCode `json:"status,omitempty" protobuf:"bytes,1,opt,name=status"`
Message string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"`
}
type HealthStatusCode ¶
type HealthStatusCode = string
const ( HealthStatusUnknown HealthStatusCode = "Unknown" HealthStatusProgressing HealthStatusCode = "Progressing" HealthStatusHealthy HealthStatusCode = "Healthy" HealthStatusSuspended HealthStatusCode = "Suspended" HealthStatusDegraded HealthStatusCode = "Degraded" HealthStatusMissing HealthStatusCode = "Missing" )
type HelmFileParameter ¶
type HelmFileParameter struct {
// Name is the name of the helm parameter
Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
// Path is the path value for the helm parameter
Path string `json:"path,omitempty" protobuf:"bytes,2,opt,name=path"`
}
HelmFileParameter is a file parameter to a helm template
type HelmParameter ¶
type HelmParameter struct {
// Name is the name of the helm parameter
Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
// Value is the value for the helm parameter
Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"`
// ForceString determines whether to tell Helm to interpret booleans and numbers as strings
ForceString bool `json:"forceString,omitempty" protobuf:"bytes,3,opt,name=forceString"`
}
HelmParameter is a parameter to a helm template
type HookDeletePolicy ¶
type HookDeletePolicy string
const ( HookDeletePolicyHookSucceeded HookDeletePolicy = "HookSucceeded" HookDeletePolicyHookFailed HookDeletePolicy = "HookFailed" HookDeletePolicyBeforeHookCreation HookDeletePolicy = "BeforeHookCreation" )
type InfoItem ¶
type InfoItem struct {
// Name is a human readable title for this piece of information.
Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
// Value is human readable content.
Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"`
}
InfoItem contains human readable information about object
type JWTToken ¶
type JWTToken struct {
IssuedAt int64 `json:"iat" protobuf:"int64,1,opt,name=iat"`
ExpiresAt int64 `json:"exp,omitempty" protobuf:"int64,2,opt,name=exp"`
ID string `json:"id,omitempty" protobuf:"bytes,3,opt,name=id"`
}
JWTToken holds the issuedAt and expiresAt values of a token
type JsonnetVar ¶
type JsonnetVar struct {
Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
Value string `json:"value" protobuf:"bytes,2,opt,name=value"`
Code bool `json:"code,omitempty" protobuf:"bytes,3,opt,name=code"`
}
JsonnetVar is a jsonnet variable
type KnownTypeField ¶
type KnownTypeField struct {
Field string `json:"field,omitempty" protobuf:"bytes,1,opt,name=field"`
Type string `json:"type,omitempty" protobuf:"bytes,2,opt,name=type"`
}
KnownTypeField contains mapping between CRD field and known Kubernetes type
type KsonnetParameter ¶
type KsonnetParameter struct {
Component string `json:"component,omitempty" protobuf:"bytes,1,opt,name=component"`
Name string `json:"name" protobuf:"bytes,2,opt,name=name"`
Value string `json:"value" protobuf:"bytes,3,opt,name=value"`
}
KsonnetParameter is a ksonnet component parameter
type KustomizeImage ¶
type KustomizeImage string
type KustomizeImages ¶
type KustomizeImages []KustomizeImage
type KustomizeOptions ¶
type KustomizeOptions struct {
// BuildOptions is a string of build parameters to use when calling `kustomize build`
BuildOptions string `protobuf:"bytes,1,opt,name=buildOptions"`
// BinaryPath holds optional path to kustomize binary
BinaryPath string `protobuf:"bytes,2,opt,name=binaryPath"`
}
KustomizeOptions are options for kustomize to use when building manifests
type Operation ¶
type Operation struct {
Sync *SyncOperation `json:"sync,omitempty" protobuf:"bytes,1,opt,name=sync"`
InitiatedBy OperationInitiator `json:"initiatedBy,omitempty" protobuf:"bytes,2,opt,name=initiatedBy"`
}
Operation contains requested operation parameters.
type OperationInitiator ¶
type OperationInitiator struct {
// Name of a user who started operation.
Username string `json:"username,omitempty" protobuf:"bytes,1,opt,name=username"`
// Automated is set to true if operation was initiated automatically by the application controller.
Automated bool `json:"automated,omitempty" protobuf:"bytes,2,opt,name=automated"`
}
OperationInitiator holds information about the operation initiator
type OperationPhase ¶
type OperationPhase string
const ( OperationRunning OperationPhase = "Running" OperationTerminating OperationPhase = "Terminating" OperationFailed OperationPhase = "Failed" OperationError OperationPhase = "Error" OperationSucceeded OperationPhase = "Succeeded" )
type OperationState ¶
type OperationState struct {
// Operation is the original requested operation
Operation Operation `json:"operation" protobuf:"bytes,1,opt,name=operation"`
// Phase is the current phase of the operation
Phase OperationPhase `json:"phase" protobuf:"bytes,2,opt,name=phase"`
// Message hold any pertinent messages when attempting to perform operation (typically errors).
Message string `json:"message,omitempty" protobuf:"bytes,3,opt,name=message"`
// SyncResult is the result of a Sync operation
SyncResult *SyncOperationResult `json:"syncResult,omitempty" protobuf:"bytes,4,opt,name=syncResult"`
// StartedAt contains time of operation start
StartedAt metav1.Time `json:"startedAt" protobuf:"bytes,6,opt,name=startedAt"`
// FinishedAt contains time of operation completion
FinishedAt *metav1.Time `json:"finishedAt,omitempty" protobuf:"bytes,7,opt,name=finishedAt"`
}
OperationState contains information about state of currently performing operation on application.
type OrphanedResourcesMonitorSettings ¶
type OrphanedResourcesMonitorSettings struct {
// Warn indicates if warning condition should be created for apps which have orphaned resources
Warn *bool `json:"warn,omitempty" protobuf:"bytes,1,name=warn"`
}
OrphanedResourcesMonitorSettings holds settings of orphaned resources monitoring
type ProjectRole ¶
type ProjectRole struct {
// Name is a name for this role
Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
// Description is a description of the role
Description string `json:"description,omitempty" protobuf:"bytes,2,opt,name=description"`
// Policies Stores a list of casbin formated strings that define access policies for the role in the project
Policies []string `json:"policies,omitempty" protobuf:"bytes,3,rep,name=policies"`
// JWTTokens are a list of generated JWT tokens bound to this role
JWTTokens []JWTToken `json:"jwtTokens,omitempty" protobuf:"bytes,4,rep,name=jwtTokens"`
// Groups are a list of OIDC group claims bound to this role
Groups []string `json:"groups,omitempty" protobuf:"bytes,5,rep,name=groups"`
}
ProjectRole represents a role that has access to a project
type RefreshType ¶
type RefreshType string
const ( RefreshTypeNormal RefreshType = "normal" RefreshTypeHard RefreshType = "hard" )
type RepoCreds ¶
type RepoCreds struct {
// URL is the URL that this credentials matches to
URL string `json:"url" protobuf:"bytes,1,opt,name=url"`
// Username for authenticating at the repo server
Username string `json:"username,omitempty" protobuf:"bytes,2,opt,name=username"`
// Password for authenticating at the repo server
Password string `json:"password,omitempty" protobuf:"bytes,3,opt,name=password"`
// SSH private key data for authenticating at the repo server (only Git repos)
SSHPrivateKey string `json:"sshPrivateKey,omitempty" protobuf:"bytes,4,opt,name=sshPrivateKey"`
// TLS client cert data for authenticating at the repo server
TLSClientCertData string `json:"tlsClientCertData,omitempty" protobuf:"bytes,5,opt,name=tlsClientCertData"`
// TLS client cert key for authenticating at the repo server
TLSClientCertKey string `json:"tlsClientCertKey,omitempty" protobuf:"bytes,6,opt,name=tlsClientCertKey"`
}
RepoCreds holds a repository credentials definition
type RepoCredsList ¶
type RepoCredsList struct {
metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
Items []RepoCreds `json:"items" protobuf:"bytes,2,rep,name=items"`
}
RepositoryList is a collection of Repositories.
type Repositories ¶
type Repositories []*Repository
type Repository ¶
type Repository struct {
// URL of the repo
Repo string `json:"repo" protobuf:"bytes,1,opt,name=repo"`
// Username for authenticating at the repo server
Username string `json:"username,omitempty" protobuf:"bytes,2,opt,name=username"`
// Password for authenticating at the repo server
Password string `json:"password,omitempty" protobuf:"bytes,3,opt,name=password"`
// SSH private key data for authenticating at the repo server
// only for Git repos
SSHPrivateKey string `json:"sshPrivateKey,omitempty" protobuf:"bytes,4,opt,name=sshPrivateKey"`
// Current state of repository server connecting
ConnectionState ConnectionState `json:"connectionState,omitempty" protobuf:"bytes,5,opt,name=connectionState"`
// InsecureIgnoreHostKey should not be used anymore, Insecure is favoured
// only for Git repos
InsecureIgnoreHostKey bool `json:"insecureIgnoreHostKey,omitempty" protobuf:"bytes,6,opt,name=insecureIgnoreHostKey"`
// Whether the repo is insecure
Insecure bool `json:"insecure,omitempty" protobuf:"bytes,7,opt,name=insecure"`
// Whether git-lfs support should be enabled for this repo
EnableLFS bool `json:"enableLfs,omitempty" protobuf:"bytes,8,opt,name=enableLfs"`
// TLS client cert data for authenticating at the repo server
TLSClientCertData string `json:"tlsClientCertData,omitempty" protobuf:"bytes,9,opt,name=tlsClientCertData"`
// TLS client cert key for authenticating at the repo server
TLSClientCertKey string `json:"tlsClientCertKey,omitempty" protobuf:"bytes,10,opt,name=tlsClientCertKey"`
// type of the repo, maybe "git or "helm, "git" is assumed if empty or absent
Type string `json:"type,omitempty" protobuf:"bytes,11,opt,name=type"`
// only for Helm repos
Name string `json:"name,omitempty" protobuf:"bytes,12,opt,name=name"`
// Whether credentials were inherited from a credential set
InheritedCreds bool `json:"inheritedCreds,omitempty" protobuf:"bytes,13,opt,name=inheritedCreds"`
}
Repository is a repository holding application configurations
type RepositoryCertificate ¶
type RepositoryCertificate struct {
// Name of the server the certificate is intended for
ServerName string `json:"serverName" protobuf:"bytes,1,opt,name=serverName"`
// Type of certificate - currently "https" or "ssh"
CertType string `json:"certType" protobuf:"bytes,2,opt,name=certType"`
// The sub type of the cert, i.e. "ssh-rsa"
CertSubType string `json:"certSubType" protobuf:"bytes,3,opt,name=certSubType"`
// Actual certificate data, protocol dependent
CertData []byte `json:"certData" protobuf:"bytes,4,opt,name=certData"`
// Additional certificate info (e.g. SSH fingerprint, X509 CommonName)
CertInfo string `json:"certInfo" protobuf:"bytes,5,opt,name=certInfo"`
}
A RepositoryCertificate is either SSH known hosts entry or TLS certificate
type RepositoryCertificateList ¶
type RepositoryCertificateList struct {
metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
// List of certificates to be processed
Items []RepositoryCertificate `json:"items" protobuf:"bytes,2,rep,name=items"`
}
RepositoryCertificateList is a collection of RepositoryCertificates
type RepositoryList ¶
type RepositoryList struct {
metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
Items Repositories `json:"items" protobuf:"bytes,2,rep,name=items"`
}
RepositoryList is a collection of Repositories.
type ResourceAction ¶
type ResourceAction struct {
Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
Params []ResourceActionParam `json:"params,omitempty" protobuf:"bytes,2,rep,name=params"`
Disabled bool `json:"disabled,omitempty" protobuf:"varint,3,opt,name=disabled"`
}
type ResourceActionParam ¶
type ResourceActionParam struct {
Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`
Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"`
Type string `json:"type,omitempty" protobuf:"bytes,3,opt,name=type"`
Default string `json:"default,omitempty" protobuf:"bytes,4,opt,name=default"`
}
type ResourceActions ¶
type ResourceActions struct {
ActionDiscoveryLua string `json:"discovery.lua,omitempty" yaml:"discovery.lua,omitempty" protobuf:"bytes,1,opt,name=actionDiscoveryLua"`
Definitions []ResourceActionDefinition `json:"definitions,omitempty" protobuf:"bytes,2,rep,name=definitions"`
}
type ResourceDiff ¶
type ResourceDiff struct {
Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"`
Kind string `json:"kind,omitempty" protobuf:"bytes,2,opt,name=kind"`
Namespace string `json:"namespace,omitempty" protobuf:"bytes,3,opt,name=namespace"`
Name string `json:"name,omitempty" protobuf:"bytes,4,opt,name=name"`
// TargetState contains the JSON serialized resource manifest defined in the Git/Helm
TargetState string `json:"targetState,omitempty" protobuf:"bytes,5,opt,name=targetState"`
// TargetState contains the JSON live resource manifest
LiveState string `json:"liveState,omitempty" protobuf:"bytes,6,opt,name=liveState"`
// Diff contains the JSON patch between target and live resource
// Deprecated: use NormalizedLiveState and PredictedLiveState to render the difference
Diff string `json:"diff,omitempty" protobuf:"bytes,7,opt,name=diff"`
Hook bool `json:"hook,omitempty" protobuf:"bytes,8,opt,name=hook"`
// NormalizedLiveState contains JSON serialized live resource state with applied normalizations
NormalizedLiveState string `json:"normalizedLiveState,omitempty" protobuf:"bytes,9,opt,name=normalizedLiveState"`
// PredictedLiveState contains JSON serialized resource state that is calculated based on normalized and target resource state
PredictedLiveState string `json:"predictedLiveState,omitempty" protobuf:"bytes,10,opt,name=predictedLiveState"`
}
ResourceDiff holds the diff of a live and target resource object
type ResourceIgnoreDifferences ¶
type ResourceIgnoreDifferences struct {
Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"`
Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"`
Name string `json:"name,omitempty" protobuf:"bytes,3,opt,name=name"`
Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"`
JSONPointers []string `json:"jsonPointers" protobuf:"bytes,5,opt,name=jsonPointers"`
}
ResourceIgnoreDifferences contains resource filter and list of json paths which should be ignored during comparison with live state.
type ResourceNetworkingInfo ¶
type ResourceNetworkingInfo struct {
TargetLabels map[string]string `json:"targetLabels,omitempty" protobuf:"bytes,1,opt,name=targetLabels"`
TargetRefs []ResourceRef `json:"targetRefs,omitempty" protobuf:"bytes,2,opt,name=targetRefs"`
Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,3,opt,name=labels"`
Ingress []v1.LoadBalancerIngress `json:"ingress,omitempty" protobuf:"bytes,4,opt,name=ingress"`
// ExternalURLs holds list of URLs which should be available externally. List is populated for ingress resources using rules hostnames.
ExternalURLs []string `json:"externalURLs,omitempty" protobuf:"bytes,5,opt,name=externalURLs"`
}
ResourceNetworkingInfo holds networking resource related information
type ResourceNode ¶
type ResourceNode struct {
ResourceRef `json:",inline" protobuf:"bytes,1,opt,name=resourceRef"`
ParentRefs []ResourceRef `json:"parentRefs,omitempty" protobuf:"bytes,2,opt,name=parentRefs"`
Info []InfoItem `json:"info,omitempty" protobuf:"bytes,3,opt,name=info"`
NetworkingInfo *ResourceNetworkingInfo `json:"networkingInfo,omitempty" protobuf:"bytes,4,opt,name=networkingInfo"`
ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,5,opt,name=resourceVersion"`
Images []string `json:"images,omitempty" protobuf:"bytes,6,opt,name=images"`
Health *HealthStatus `json:"health,omitempty" protobuf:"bytes,7,opt,name=health"`
}
ResourceNode contains information about live resource and its children
type ResourceOverride ¶
type ResourceOverride struct {
HealthLua string `json:"health.lua,omitempty" protobuf:"bytes,1,opt,name=healthLua"`
Actions string `json:"actions,omitempty" protobuf:"bytes,3,opt,name=actions"`
IgnoreDifferences string `json:"ignoreDifferences,omitempty" protobuf:"bytes,2,opt,name=ignoreDifferences"`
KnownTypeFields []KnownTypeField `json:"knownTypeFields,omitempty" protobuf:"bytes,4,opt,name=knownTypeFields"`
}
ResourceOverride holds configuration to customize resource diffing and health assessment
type ResourceRef ¶
type ResourceRef struct {
Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"`
Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"`
Kind string `json:"kind,omitempty" protobuf:"bytes,3,opt,name=kind"`
Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"`
Name string `json:"name,omitempty" protobuf:"bytes,5,opt,name=name"`
UID string `json:"uid,omitempty" protobuf:"bytes,6,opt,name=uid"`
}
ResourceRef includes fields which unique identify resource
type ResourceResult ¶
type ResourceResult struct {
Group string `json:"group" protobuf:"bytes,1,opt,name=group"`
Version string `json:"version" protobuf:"bytes,2,opt,name=version"`
Kind string `json:"kind" protobuf:"bytes,3,opt,name=kind"`
Namespace string `json:"namespace" protobuf:"bytes,4,opt,name=namespace"`
Name string `json:"name" protobuf:"bytes,5,opt,name=name"`
// the final result of the sync, this is be empty if the resources is yet to be applied/pruned and is always zero-value for hooks
Status ResultCode `json:"status,omitempty" protobuf:"bytes,6,opt,name=status"`
// message for the last sync OR operation
Message string `json:"message,omitempty" protobuf:"bytes,7,opt,name=message"`
// the type of the hook, empty for non-hook resources
HookType HookType `json:"hookType,omitempty" protobuf:"bytes,8,opt,name=hookType"`
// the state of any operation associated with this resource OR hook
// note: can contain values for non-hook resources
HookPhase OperationPhase `json:"hookPhase,omitempty" protobuf:"bytes,9,opt,name=hookPhase"`
// indicates the particular phase of the sync that this is for
SyncPhase SyncPhase `json:"syncPhase,omitempty" protobuf:"bytes,10,opt,name=syncPhase"`
}
ResourceResult holds the operation result details of a specific resource
type ResourceResults ¶
type ResourceResults []*ResourceResult
type ResourceStatus ¶
type ResourceStatus struct {
Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"`
Version string `json:"version,omitempty" protobuf:"bytes,2,opt,name=version"`
Kind string `json:"kind,omitempty" protobuf:"bytes,3,opt,name=kind"`
Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"`
Name string `json:"name,omitempty" protobuf:"bytes,5,opt,name=name"`
Status SyncStatusCode `json:"status,omitempty" protobuf:"bytes,6,opt,name=status"`
Health *HealthStatus `json:"health,omitempty" protobuf:"bytes,7,opt,name=health"`
Hook bool `json:"hook,omitempty" protobuf:"bytes,8,opt,name=hook"`
RequiresPruning bool `json:"requiresPruning,omitempty" protobuf:"bytes,9,opt,name=requiresPruning"`
}
ResourceStatus holds the current sync and health status of a resource
type ResultCode ¶
type ResultCode string
const ( ResultCodeSynced ResultCode = "Synced" ResultCodeSyncFailed ResultCode = "SyncFailed" ResultCodePruned ResultCode = "Pruned" ResultCodePruneSkipped ResultCode = "PruneSkipped" )
type RevisionHistories ¶
type RevisionHistories []RevisionHistory
RevisionHistories is a array of history, oldest first and newest last
type RevisionHistory ¶
type RevisionHistory struct {
Revision string `json:"revision" protobuf:"bytes,2,opt,name=revision"`
DeployedAt metav1.Time `json:"deployedAt" protobuf:"bytes,4,opt,name=deployedAt"`
ID int64 `json:"id" protobuf:"bytes,5,opt,name=id"`
Source ApplicationSource `json:"source,omitempty" protobuf:"bytes,6,opt,name=source"`
}
RevisionHistory contains information relevant to an application deployment
type RevisionMetadata ¶
type RevisionMetadata struct {
// who authored this revision,
// typically their name and email, e.g. "John Doe <john_doe@my-company.com>",
// but might not match this example
Author string `json:"author,omitempty" protobuf:"bytes,1,opt,name=author"`
// when the revision was authored
Date metav1.Time `json:"date" protobuf:"bytes,2,opt,name=date"`
// tags on the revision,
// note - tags can move from one revision to another
Tags []string `json:"tags,omitempty" protobuf:"bytes,3,opt,name=tags"`
// the message associated with the revision,
// probably the commit message,
// this is truncated to the first newline or 64 characters (which ever comes first)
Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"`
}
data about a specific revision within a repo
type SyncOperation ¶
type SyncOperation struct {
// Revision is the revision in which to sync the application to.
// If omitted, will use the revision specified in app spec.
Revision string `json:"revision,omitempty" protobuf:"bytes,1,opt,name=revision"`
// Prune deletes resources that are no longer tracked in git
Prune bool `json:"prune,omitempty" protobuf:"bytes,2,opt,name=prune"`
// DryRun will perform a `kubectl apply --dry-run` without actually performing the sync
DryRun bool `json:"dryRun,omitempty" protobuf:"bytes,3,opt,name=dryRun"`
// SyncStrategy describes how to perform the sync
SyncStrategy *SyncStrategy `json:"syncStrategy,omitempty" protobuf:"bytes,4,opt,name=syncStrategy"`
// Resources describes which resources to sync
Resources []SyncOperationResource `json:"resources,omitempty" protobuf:"bytes,6,opt,name=resources"`
// Source overrides the source definition set in the application.
// This is typically set in a Rollback operation and nil during a Sync operation
Source *ApplicationSource `json:"source,omitempty" protobuf:"bytes,7,opt,name=source"`
// Manifests is an optional field that overrides sync source with a local directory for development
Manifests []string `json:"manifests,omitempty" protobuf:"bytes,8,opt,name=manifests"`
// SyncOptions provide per-sync sync-options, e.g. Validate=false
SyncOptions SyncOptions `json:"syncOptions,omitempty" protobuf:"bytes,9,opt,name=syncOptions"`
}
SyncOperation contains sync operation details.
type SyncOperationResource ¶
type SyncOperationResource struct {
Group string `json:"group,omitempty" protobuf:"bytes,1,opt,name=group"`
Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"`
Name string `json:"name" protobuf:"bytes,3,opt,name=name"`
}
SyncOperationResource contains resources to sync.
type SyncOperationResult ¶
type SyncOperationResult struct {
// Resources holds the sync result of each individual resource
Resources ResourceResults `json:"resources,omitempty" protobuf:"bytes,1,opt,name=resources"`
// Revision holds the revision of the sync
Revision string `json:"revision" protobuf:"bytes,2,opt,name=revision"`
// Source records the application source information of the sync, used for comparing auto-sync
Source ApplicationSource `json:"source,omitempty" protobuf:"bytes,3,opt,name=source"`
}
SyncOperationResult represent result of sync operation
type SyncOptions ¶
type SyncOptions []string
type SyncPolicy ¶
type SyncPolicy struct {
// Automated will keep an application synced to the target revision
Automated *SyncPolicyAutomated `json:"automated,omitempty" protobuf:"bytes,1,opt,name=automated"`
// Options allow youe to specify whole app sync-options
SyncOptions SyncOptions `json:"syncOptions,omitempty" protobuf:"bytes,2,opt,name=syncOptions"`
}
SyncPolicy controls when a sync will be performed in response to updates in git
type SyncPolicyAutomated ¶
type SyncPolicyAutomated struct {
// Prune will prune resources automatically as part of automated sync (default: false)
Prune bool `json:"prune,omitempty" protobuf:"bytes,1,opt,name=prune"`
// SelfHeal enables auto-syncing if (default: false)
SelfHeal bool `json:"selfHeal,omitempty" protobuf:"bytes,2,opt,name=selfHeal"`
}
SyncPolicyAutomated controls the behavior of an automated sync
type SyncStatus ¶
type SyncStatus struct {
Status SyncStatusCode `json:"status" protobuf:"bytes,1,opt,name=status,casttype=SyncStatusCode"`
ComparedTo ComparedTo `json:"comparedTo,omitempty" protobuf:"bytes,2,opt,name=comparedTo"`
Revision string `json:"revision,omitempty" protobuf:"bytes,3,opt,name=revision"`
}
SyncStatus is a comparison result of application spec and deployed application.
type SyncStatusCode ¶
type SyncStatusCode string
SyncStatusCode is a type which represents possible comparison results
const ( SyncStatusCodeUnknown SyncStatusCode = "Unknown" SyncStatusCodeSynced SyncStatusCode = "Synced" SyncStatusCodeOutOfSync SyncStatusCode = "OutOfSync" )
Possible comparison results
type SyncStrategy ¶
type SyncStrategy struct {
// Apply wil perform a `kubectl apply` to perform the sync.
Apply *SyncStrategyApply `json:"apply,omitempty" protobuf:"bytes,1,opt,name=apply"`
// Hook will submit any referenced resources to perform the sync. This is the default strategy
Hook *SyncStrategyHook `json:"hook,omitempty" protobuf:"bytes,2,opt,name=hook"`
}
SyncStrategy controls the manner in which a sync is performed
type SyncStrategyApply ¶
type SyncStrategyApply struct {
// Force indicates whether or not to supply the --force flag to `kubectl apply`.
// The --force flag deletes and re-create the resource, when PATCH encounters conflict and has
// retried for 5 times.
Force bool `json:"force,omitempty" protobuf:"bytes,1,opt,name=force"`
}
SyncStrategyApply uses `kubectl apply` to perform the apply
type SyncStrategyHook ¶
type SyncStrategyHook struct {
// Embed SyncStrategyApply type to inherit any `apply` options
// +optional
SyncStrategyApply `json:",inline" protobuf:"bytes,1,opt,name=syncStrategyApply"`
}
SyncStrategyHook will perform a sync using hooks annotations. If no hook annotation is specified falls back to `kubectl apply`.
type SyncWindow ¶
type SyncWindow struct {
// Kind defines if the window allows or blocks syncs
Kind string `json:"kind,omitempty" protobuf:"bytes,1,opt,name=kind"`
// Schedule is the time the window will begin, specified in cron format
Schedule string `json:"schedule,omitempty" protobuf:"bytes,2,opt,name=schedule"`
// Duration is the amount of time the sync window will be open
Duration string `json:"duration,omitempty" protobuf:"bytes,3,opt,name=duration"`
// Applications contains a list of applications that the window will apply to
Applications []string `json:"applications,omitempty" protobuf:"bytes,4,opt,name=applications"`
// Namespaces contains a list of namespaces that the window will apply to
Namespaces []string `json:"namespaces,omitempty" protobuf:"bytes,5,opt,name=namespaces"`
// Clusters contains a list of clusters that the window will apply to
Clusters []string `json:"clusters,omitempty" protobuf:"bytes,6,opt,name=clusters"`
// ManualSync enables manual syncs when they would otherwise be blocked
ManualSync bool `json:"manualSync,omitempty" protobuf:"bytes,7,opt,name=manualSync"`
}
SyncWindow contains the kind, time, duration and attributes that are used to assign the syncWindows to apps
type SyncWindows ¶
type SyncWindows []*SyncWindow
SyncWindows is a collection of sync windows in this project
type TLSClientConfig ¶
type TLSClientConfig struct {
// Server should be accessed without verifying the TLS certificate. For testing only.
Insecure bool `json:"insecure" protobuf:"bytes,1,opt,name=insecure"`
// ServerName is passed to the server for SNI and is used in the client to check server
// certificates against. If ServerName is empty, the hostname used to contact the
// server is used.
ServerName string `json:"serverName,omitempty" protobuf:"bytes,2,opt,name=serverName"`
// CertData holds PEM-encoded bytes (typically read from a client certificate file).
// CertData takes precedence over CertFile
CertData []byte `json:"certData,omitempty" protobuf:"bytes,3,opt,name=certData"`
// KeyData holds PEM-encoded bytes (typically read from a client certificate key file).
// KeyData takes precedence over KeyFile
KeyData []byte `json:"keyData,omitempty" protobuf:"bytes,4,opt,name=keyData"`
// CAData holds PEM-encoded bytes (typically read from a root certificates bundle).
// CAData takes precedence over CAFile
CAData []byte `json:"caData,omitempty" protobuf:"bytes,5,opt,name=caData"`
}
TLSClientConfig contains settings to enable transport layer security