Introduce v1beta2 API package
This commit introduces a v1beta2 API package for the staged breaking changes around conditions and general usage of the API objects. Signed-off-by: Hidde Beydals <hello@hidde.co> Signed-off-by: Sunny <darkowlzz@protonmail.com> Co-authored-by: Hidde Beydals <hello@hidde.co>
This commit is contained in:
parent
bd3d7817d0
commit
cc1e48243d
2
Makefile
2
Makefile
|
@ -127,7 +127,7 @@ manifests: controller-gen ## Generate manifests, e.g. CRD, RBAC, etc.
|
||||||
cd api; $(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role paths="./..." output:crd:artifacts:config="../config/crd/bases"
|
cd api; $(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role paths="./..." output:crd:artifacts:config="../config/crd/bases"
|
||||||
|
|
||||||
api-docs: gen-crd-api-reference-docs ## Generate API reference documentation
|
api-docs: gen-crd-api-reference-docs ## Generate API reference documentation
|
||||||
$(GEN_CRD_API_REFERENCE_DOCS) -api-dir=./api/v1beta1 -config=./hack/api-docs/config.json -template-dir=./hack/api-docs/template -out-file=./docs/api/source.md
|
$(GEN_CRD_API_REFERENCE_DOCS) -api-dir=./api/v1beta2 -config=./hack/api-docs/config.json -template-dir=./hack/api-docs/template -out-file=./docs/api/source.md
|
||||||
|
|
||||||
tidy: ## Run go mod tidy
|
tidy: ## Run go mod tidy
|
||||||
go mod tidy
|
go mod tidy
|
||||||
|
|
12
PROJECT
12
PROJECT
|
@ -1,6 +1,18 @@
|
||||||
domain: toolkit.fluxcd.io
|
domain: toolkit.fluxcd.io
|
||||||
repo: github.com/fluxcd/source-controller
|
repo: github.com/fluxcd/source-controller
|
||||||
resources:
|
resources:
|
||||||
|
- group: source
|
||||||
|
kind: GitRepository
|
||||||
|
version: v1beta2
|
||||||
|
- group: source
|
||||||
|
kind: HelmRepository
|
||||||
|
version: v1beta2
|
||||||
|
- group: source
|
||||||
|
kind: HelmChart
|
||||||
|
version: v1beta2
|
||||||
|
- group: source
|
||||||
|
kind: Bucket
|
||||||
|
version: v1beta2
|
||||||
- group: source
|
- group: source
|
||||||
kind: GitRepository
|
kind: GitRepository
|
||||||
version: v1beta1
|
version: v1beta1
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
/*
|
||||||
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1beta2
|
||||||
|
|
||||||
|
import (
|
||||||
|
"path"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Artifact represents the output of a source synchronisation.
|
||||||
|
type Artifact struct {
|
||||||
|
// Path is the relative file path of this artifact.
|
||||||
|
// +required
|
||||||
|
Path string `json:"path"`
|
||||||
|
|
||||||
|
// URL is the HTTP address of this artifact.
|
||||||
|
// +required
|
||||||
|
URL string `json:"url"`
|
||||||
|
|
||||||
|
// Revision is a human readable identifier traceable in the origin source
|
||||||
|
// system. It can be a Git commit SHA, Git tag, a Helm index timestamp, a Helm
|
||||||
|
// chart version, etc.
|
||||||
|
// +optional
|
||||||
|
Revision string `json:"revision"`
|
||||||
|
|
||||||
|
// Checksum is the SHA256 checksum of the artifact.
|
||||||
|
// +optional
|
||||||
|
Checksum string `json:"checksum"`
|
||||||
|
|
||||||
|
// LastUpdateTime is the timestamp corresponding to the last update of this
|
||||||
|
// artifact.
|
||||||
|
// +required
|
||||||
|
LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// HasRevision returns true if the given revision matches the current Revision
|
||||||
|
// of the Artifact.
|
||||||
|
func (in *Artifact) HasRevision(revision string) bool {
|
||||||
|
if in == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return in.Revision == revision
|
||||||
|
}
|
||||||
|
|
||||||
|
// ArtifactDir returns the artifact dir path in the form of
|
||||||
|
// <source-kind>/<source-namespace>/<source-name>.
|
||||||
|
func ArtifactDir(kind, namespace, name string) string {
|
||||||
|
kind = strings.ToLower(kind)
|
||||||
|
return path.Join(kind, namespace, name)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ArtifactPath returns the artifact path in the form of
|
||||||
|
// <source-kind>/<source-namespace>/<source-name>/<artifact-filename>.
|
||||||
|
func ArtifactPath(kind, namespace, name, filename string) string {
|
||||||
|
return path.Join(ArtifactDir(kind, namespace, name), filename)
|
||||||
|
}
|
|
@ -0,0 +1,208 @@
|
||||||
|
/*
|
||||||
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1beta2
|
||||||
|
|
||||||
|
import (
|
||||||
|
apimeta "k8s.io/apimachinery/pkg/api/meta"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
"github.com/fluxcd/pkg/apis/acl"
|
||||||
|
"github.com/fluxcd/pkg/apis/meta"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// BucketKind is the string representation of a Bucket.
|
||||||
|
BucketKind = "Bucket"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketSpec defines the desired state of an S3 compatible bucket
|
||||||
|
type BucketSpec struct {
|
||||||
|
// The S3 compatible storage provider name, default ('generic').
|
||||||
|
// +kubebuilder:validation:Enum=generic;aws;gcp
|
||||||
|
// +kubebuilder:default:=generic
|
||||||
|
// +optional
|
||||||
|
Provider string `json:"provider,omitempty"`
|
||||||
|
|
||||||
|
// The bucket name.
|
||||||
|
// +required
|
||||||
|
BucketName string `json:"bucketName"`
|
||||||
|
|
||||||
|
// The bucket endpoint address.
|
||||||
|
// +required
|
||||||
|
Endpoint string `json:"endpoint"`
|
||||||
|
|
||||||
|
// Insecure allows connecting to a non-TLS S3 HTTP endpoint.
|
||||||
|
// +optional
|
||||||
|
Insecure bool `json:"insecure,omitempty"`
|
||||||
|
|
||||||
|
// The bucket region.
|
||||||
|
// +optional
|
||||||
|
Region string `json:"region,omitempty"`
|
||||||
|
|
||||||
|
// The name of the secret containing authentication credentials
|
||||||
|
// for the Bucket.
|
||||||
|
// +optional
|
||||||
|
SecretRef *meta.LocalObjectReference `json:"secretRef,omitempty"`
|
||||||
|
|
||||||
|
// The interval at which to check for bucket updates.
|
||||||
|
// +required
|
||||||
|
Interval metav1.Duration `json:"interval"`
|
||||||
|
|
||||||
|
// The timeout for download operations, defaults to 60s.
|
||||||
|
// +kubebuilder:default="60s"
|
||||||
|
// +optional
|
||||||
|
Timeout *metav1.Duration `json:"timeout,omitempty"`
|
||||||
|
|
||||||
|
// Ignore overrides the set of excluded patterns in the .sourceignore format
|
||||||
|
// (which is the same as .gitignore). If not provided, a default will be used,
|
||||||
|
// consult the documentation for your version to find out what those are.
|
||||||
|
// +optional
|
||||||
|
Ignore *string `json:"ignore,omitempty"`
|
||||||
|
|
||||||
|
// This flag tells the controller to suspend the reconciliation of this source.
|
||||||
|
// +optional
|
||||||
|
Suspend bool `json:"suspend,omitempty"`
|
||||||
|
|
||||||
|
// AccessFrom defines an Access Control List for allowing cross-namespace references to this object.
|
||||||
|
// +optional
|
||||||
|
AccessFrom *acl.AccessFrom `json:"accessFrom,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
GenericBucketProvider string = "generic"
|
||||||
|
AmazonBucketProvider string = "aws"
|
||||||
|
GoogleBucketProvider string = "gcp"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketStatus defines the observed state of a bucket
|
||||||
|
type BucketStatus struct {
|
||||||
|
// ObservedGeneration is the last observed generation.
|
||||||
|
// +optional
|
||||||
|
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
|
||||||
|
|
||||||
|
// Conditions holds the conditions for the Bucket.
|
||||||
|
// +optional
|
||||||
|
Conditions []metav1.Condition `json:"conditions,omitempty"`
|
||||||
|
|
||||||
|
// URL is the download link for the artifact output of the last Bucket sync.
|
||||||
|
// +optional
|
||||||
|
URL string `json:"url,omitempty"`
|
||||||
|
|
||||||
|
// Artifact represents the output of the last successful Bucket sync.
|
||||||
|
// +optional
|
||||||
|
Artifact *Artifact `json:"artifact,omitempty"`
|
||||||
|
|
||||||
|
meta.ReconcileRequestStatus `json:",inline"`
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
// BucketOperationSucceedReason represents the fact that the bucket listing and
|
||||||
|
// download operations succeeded.
|
||||||
|
BucketOperationSucceedReason string = "BucketOperationSucceed"
|
||||||
|
|
||||||
|
// BucketOperationFailedReason represents the fact that the bucket listing or
|
||||||
|
// download operations failed.
|
||||||
|
BucketOperationFailedReason string = "BucketOperationFailed"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketProgressing resets the conditions of the Bucket to metav1.Condition of
|
||||||
|
// type meta.ReadyCondition with status 'Unknown' and meta.ProgressingReason
|
||||||
|
// reason and message. It returns the modified Bucket.
|
||||||
|
func BucketProgressing(bucket Bucket) Bucket {
|
||||||
|
bucket.Status.ObservedGeneration = bucket.Generation
|
||||||
|
bucket.Status.URL = ""
|
||||||
|
bucket.Status.Conditions = []metav1.Condition{}
|
||||||
|
meta.SetResourceCondition(&bucket, meta.ReadyCondition, metav1.ConditionUnknown, meta.ProgressingReason, "reconciliation in progress")
|
||||||
|
return bucket
|
||||||
|
}
|
||||||
|
|
||||||
|
// BucketReady sets the given Artifact and URL on the Bucket and sets the
|
||||||
|
// meta.ReadyCondition to 'True', with the given reason and message. It returns
|
||||||
|
// the modified Bucket.
|
||||||
|
func BucketReady(bucket Bucket, artifact Artifact, url, reason, message string) Bucket {
|
||||||
|
bucket.Status.Artifact = &artifact
|
||||||
|
bucket.Status.URL = url
|
||||||
|
meta.SetResourceCondition(&bucket, meta.ReadyCondition, metav1.ConditionTrue, reason, message)
|
||||||
|
return bucket
|
||||||
|
}
|
||||||
|
|
||||||
|
// BucketNotReady sets the meta.ReadyCondition on the Bucket to 'False', with
|
||||||
|
// the given reason and message. It returns the modified Bucket.
|
||||||
|
func BucketNotReady(bucket Bucket, reason, message string) Bucket {
|
||||||
|
meta.SetResourceCondition(&bucket, meta.ReadyCondition, metav1.ConditionFalse, reason, message)
|
||||||
|
return bucket
|
||||||
|
}
|
||||||
|
|
||||||
|
// BucketReadyMessage returns the message of the metav1.Condition of type
|
||||||
|
// meta.ReadyCondition with status 'True' if present, or an empty string.
|
||||||
|
func BucketReadyMessage(bucket Bucket) string {
|
||||||
|
if c := apimeta.FindStatusCondition(bucket.Status.Conditions, meta.ReadyCondition); c != nil {
|
||||||
|
if c.Status == metav1.ConditionTrue {
|
||||||
|
return c.Message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetArtifact returns the latest artifact from the source if present in the
|
||||||
|
// status sub-resource.
|
||||||
|
func (in *Bucket) GetArtifact() *Artifact {
|
||||||
|
return in.Status.Artifact
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetStatusConditions returns a pointer to the Status.Conditions slice
|
||||||
|
func (in *Bucket) GetStatusConditions() *[]metav1.Condition {
|
||||||
|
return &in.Status.Conditions
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetInterval returns the interval at which the source is updated.
|
||||||
|
func (in *Bucket) GetInterval() metav1.Duration {
|
||||||
|
return in.Spec.Interval
|
||||||
|
}
|
||||||
|
|
||||||
|
// +genclient
|
||||||
|
// +genclient:Namespaced
|
||||||
|
// +kubebuilder:storageversion
|
||||||
|
// +kubebuilder:object:root=true
|
||||||
|
// +kubebuilder:subresource:status
|
||||||
|
// +kubebuilder:printcolumn:name="Endpoint",type=string,JSONPath=`.spec.endpoint`
|
||||||
|
// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type==\"Ready\")].status",description=""
|
||||||
|
// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.conditions[?(@.type==\"Ready\")].message",description=""
|
||||||
|
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description=""
|
||||||
|
|
||||||
|
// Bucket is the Schema for the buckets API
|
||||||
|
type Bucket struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||||
|
|
||||||
|
Spec BucketSpec `json:"spec,omitempty"`
|
||||||
|
// +kubebuilder:default={"observedGeneration":-1}
|
||||||
|
Status BucketStatus `json:"status,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// +kubebuilder:object:root=true
|
||||||
|
|
||||||
|
// BucketList contains a list of Bucket
|
||||||
|
type BucketList struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ListMeta `json:"metadata,omitempty"`
|
||||||
|
Items []Bucket `json:"items"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
SchemeBuilder.Register(&Bucket{}, &BucketList{})
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1beta2
|
||||||
|
|
||||||
|
const SourceFinalizer = "finalizers.fluxcd.io"
|
||||||
|
|
||||||
|
const (
|
||||||
|
// URLInvalidReason represents the fact that a given source has an invalid URL.
|
||||||
|
URLInvalidReason string = "URLInvalid"
|
||||||
|
|
||||||
|
// StorageOperationFailedReason signals a failure caused by a storage operation.
|
||||||
|
StorageOperationFailedReason string = "StorageOperationFailed"
|
||||||
|
|
||||||
|
// AuthenticationFailedReason represents the fact that a given secret does not
|
||||||
|
// have the required fields or the provided credentials do not match.
|
||||||
|
AuthenticationFailedReason string = "AuthenticationFailed"
|
||||||
|
|
||||||
|
// VerificationFailedReason represents the fact that the cryptographic
|
||||||
|
// provenance verification for the source failed.
|
||||||
|
VerificationFailedReason string = "VerificationFailed"
|
||||||
|
)
|
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Package v1beta2 contains API Schema definitions for the source v1beta2 API group
|
||||||
|
// +kubebuilder:object:generate=true
|
||||||
|
// +groupName=source.toolkit.fluxcd.io
|
||||||
|
package v1beta2
|
|
@ -0,0 +1,280 @@
|
||||||
|
/*
|
||||||
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1beta2
|
||||||
|
|
||||||
|
import (
|
||||||
|
apimeta "k8s.io/apimachinery/pkg/api/meta"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
"github.com/fluxcd/pkg/apis/acl"
|
||||||
|
"github.com/fluxcd/pkg/apis/meta"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// GitRepositoryKind is the string representation of a GitRepository.
|
||||||
|
GitRepositoryKind = "GitRepository"
|
||||||
|
|
||||||
|
// GoGitImplementation represents the go-git Git implementation kind.
|
||||||
|
GoGitImplementation = "go-git"
|
||||||
|
// LibGit2Implementation represents the git2go Git implementation kind.
|
||||||
|
LibGit2Implementation = "libgit2"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GitRepositorySpec defines the desired state of a Git repository.
|
||||||
|
type GitRepositorySpec struct {
|
||||||
|
// The repository URL, can be a HTTP/S or SSH address.
|
||||||
|
// +kubebuilder:validation:Pattern="^(http|https|ssh)://"
|
||||||
|
// +required
|
||||||
|
URL string `json:"url"`
|
||||||
|
|
||||||
|
// The secret name containing the Git credentials.
|
||||||
|
// For HTTPS repositories the secret must contain username and password
|
||||||
|
// fields.
|
||||||
|
// For SSH repositories the secret must contain identity, identity.pub and
|
||||||
|
// known_hosts fields.
|
||||||
|
// +optional
|
||||||
|
SecretRef *meta.LocalObjectReference `json:"secretRef,omitempty"`
|
||||||
|
|
||||||
|
// The interval at which to check for repository updates.
|
||||||
|
// +required
|
||||||
|
Interval metav1.Duration `json:"interval"`
|
||||||
|
|
||||||
|
// The timeout for remote Git operations like cloning, defaults to 60s.
|
||||||
|
// +kubebuilder:default="60s"
|
||||||
|
// +optional
|
||||||
|
Timeout *metav1.Duration `json:"timeout,omitempty"`
|
||||||
|
|
||||||
|
// The Git reference to checkout and monitor for changes, defaults to
|
||||||
|
// master branch.
|
||||||
|
// +optional
|
||||||
|
Reference *GitRepositoryRef `json:"ref,omitempty"`
|
||||||
|
|
||||||
|
// Verify OpenPGP signature for the Git commit HEAD points to.
|
||||||
|
// +optional
|
||||||
|
Verification *GitRepositoryVerification `json:"verify,omitempty"`
|
||||||
|
|
||||||
|
// Ignore overrides the set of excluded patterns in the .sourceignore format
|
||||||
|
// (which is the same as .gitignore). If not provided, a default will be used,
|
||||||
|
// consult the documentation for your version to find out what those are.
|
||||||
|
// +optional
|
||||||
|
Ignore *string `json:"ignore,omitempty"`
|
||||||
|
|
||||||
|
// This flag tells the controller to suspend the reconciliation of this source.
|
||||||
|
// +optional
|
||||||
|
Suspend bool `json:"suspend,omitempty"`
|
||||||
|
|
||||||
|
// Determines which git client library to use.
|
||||||
|
// Defaults to go-git, valid values are ('go-git', 'libgit2').
|
||||||
|
// +kubebuilder:validation:Enum=go-git;libgit2
|
||||||
|
// +kubebuilder:default:=go-git
|
||||||
|
// +optional
|
||||||
|
GitImplementation string `json:"gitImplementation,omitempty"`
|
||||||
|
|
||||||
|
// When enabled, after the clone is created, initializes all submodules within,
|
||||||
|
// using their default settings.
|
||||||
|
// This option is available only when using the 'go-git' GitImplementation.
|
||||||
|
// +optional
|
||||||
|
RecurseSubmodules bool `json:"recurseSubmodules,omitempty"`
|
||||||
|
|
||||||
|
// Extra git repositories to map into the repository
|
||||||
|
Include []GitRepositoryInclude `json:"include,omitempty"`
|
||||||
|
|
||||||
|
// AccessFrom defines an Access Control List for allowing cross-namespace references to this object.
|
||||||
|
// +optional
|
||||||
|
AccessFrom *acl.AccessFrom `json:"accessFrom,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (in *GitRepositoryInclude) GetFromPath() string {
|
||||||
|
return in.FromPath
|
||||||
|
}
|
||||||
|
|
||||||
|
func (in *GitRepositoryInclude) GetToPath() string {
|
||||||
|
if in.ToPath == "" {
|
||||||
|
return in.GitRepositoryRef.Name
|
||||||
|
}
|
||||||
|
return in.ToPath
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitRepositoryInclude defines a source with a from and to path.
|
||||||
|
type GitRepositoryInclude struct {
|
||||||
|
// Reference to a GitRepository to include.
|
||||||
|
GitRepositoryRef meta.LocalObjectReference `json:"repository"`
|
||||||
|
|
||||||
|
// The path to copy contents from, defaults to the root directory.
|
||||||
|
// +optional
|
||||||
|
FromPath string `json:"fromPath"`
|
||||||
|
|
||||||
|
// The path to copy contents to, defaults to the name of the source ref.
|
||||||
|
// +optional
|
||||||
|
ToPath string `json:"toPath"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitRepositoryRef defines the Git ref used for pull and checkout operations.
|
||||||
|
type GitRepositoryRef struct {
|
||||||
|
// The Git branch to checkout, defaults to master.
|
||||||
|
// +optional
|
||||||
|
Branch string `json:"branch,omitempty"`
|
||||||
|
|
||||||
|
// The Git tag to checkout, takes precedence over Branch.
|
||||||
|
// +optional
|
||||||
|
Tag string `json:"tag,omitempty"`
|
||||||
|
|
||||||
|
// The Git tag semver expression, takes precedence over Tag.
|
||||||
|
// +optional
|
||||||
|
SemVer string `json:"semver,omitempty"`
|
||||||
|
|
||||||
|
// The Git commit SHA to checkout, if specified Tag filters will be ignored.
|
||||||
|
// +optional
|
||||||
|
Commit string `json:"commit,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitRepositoryVerification defines the OpenPGP signature verification process.
|
||||||
|
type GitRepositoryVerification struct {
|
||||||
|
// Mode describes what git object should be verified, currently ('head').
|
||||||
|
// +kubebuilder:validation:Enum=head
|
||||||
|
Mode string `json:"mode"`
|
||||||
|
|
||||||
|
// The secret name containing the public keys of all trusted Git authors.
|
||||||
|
SecretRef meta.LocalObjectReference `json:"secretRef,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitRepositoryStatus defines the observed state of a Git repository.
|
||||||
|
type GitRepositoryStatus struct {
|
||||||
|
// ObservedGeneration is the last observed generation.
|
||||||
|
// +optional
|
||||||
|
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
|
||||||
|
|
||||||
|
// Conditions holds the conditions for the GitRepository.
|
||||||
|
// +optional
|
||||||
|
Conditions []metav1.Condition `json:"conditions,omitempty"`
|
||||||
|
|
||||||
|
// URL is the download link for the artifact output of the last repository
|
||||||
|
// sync.
|
||||||
|
// +optional
|
||||||
|
URL string `json:"url,omitempty"`
|
||||||
|
|
||||||
|
// Artifact represents the output of the last successful repository sync.
|
||||||
|
// +optional
|
||||||
|
Artifact *Artifact `json:"artifact,omitempty"`
|
||||||
|
|
||||||
|
// IncludedArtifacts represents the included artifacts from the last successful repository sync.
|
||||||
|
// +optional
|
||||||
|
IncludedArtifacts []*Artifact `json:"includedArtifacts,omitempty"`
|
||||||
|
|
||||||
|
meta.ReconcileRequestStatus `json:",inline"`
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
// GitOperationSucceedReason represents the fact that the git clone, pull
|
||||||
|
// and checkout operations succeeded.
|
||||||
|
GitOperationSucceedReason string = "GitOperationSucceed"
|
||||||
|
|
||||||
|
// GitOperationFailedReason represents the fact that the git clone, pull or
|
||||||
|
// checkout operations failed.
|
||||||
|
GitOperationFailedReason string = "GitOperationFailed"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GitRepositoryProgressing resets the conditions of the GitRepository to
|
||||||
|
// metav1.Condition of type meta.ReadyCondition with status 'Unknown' and
|
||||||
|
// meta.ProgressingReason reason and message. It returns the modified
|
||||||
|
// GitRepository.
|
||||||
|
func GitRepositoryProgressing(repository GitRepository) GitRepository {
|
||||||
|
repository.Status.ObservedGeneration = repository.Generation
|
||||||
|
repository.Status.URL = ""
|
||||||
|
repository.Status.Conditions = []metav1.Condition{}
|
||||||
|
meta.SetResourceCondition(&repository, meta.ReadyCondition, metav1.ConditionUnknown, meta.ProgressingReason, "reconciliation in progress")
|
||||||
|
return repository
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitRepositoryReady sets the given Artifact and URL on the GitRepository and
|
||||||
|
// sets the meta.ReadyCondition to 'True', with the given reason and message. It
|
||||||
|
// returns the modified GitRepository.
|
||||||
|
func GitRepositoryReady(repository GitRepository, artifact Artifact, includedArtifacts []*Artifact, url, reason, message string) GitRepository {
|
||||||
|
repository.Status.Artifact = &artifact
|
||||||
|
repository.Status.IncludedArtifacts = includedArtifacts
|
||||||
|
repository.Status.URL = url
|
||||||
|
meta.SetResourceCondition(&repository, meta.ReadyCondition, metav1.ConditionTrue, reason, message)
|
||||||
|
return repository
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitRepositoryNotReady sets the meta.ReadyCondition on the given GitRepository
|
||||||
|
// to 'False', with the given reason and message. It returns the modified
|
||||||
|
// GitRepository.
|
||||||
|
func GitRepositoryNotReady(repository GitRepository, reason, message string) GitRepository {
|
||||||
|
meta.SetResourceCondition(&repository, meta.ReadyCondition, metav1.ConditionFalse, reason, message)
|
||||||
|
return repository
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitRepositoryReadyMessage returns the message of the metav1.Condition of type
|
||||||
|
// meta.ReadyCondition with status 'True' if present, or an empty string.
|
||||||
|
func GitRepositoryReadyMessage(repository GitRepository) string {
|
||||||
|
if c := apimeta.FindStatusCondition(repository.Status.Conditions, meta.ReadyCondition); c != nil {
|
||||||
|
if c.Status == metav1.ConditionTrue {
|
||||||
|
return c.Message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetArtifact returns the latest artifact from the source if present in the
|
||||||
|
// status sub-resource.
|
||||||
|
func (in *GitRepository) GetArtifact() *Artifact {
|
||||||
|
return in.Status.Artifact
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetStatusConditions returns a pointer to the Status.Conditions slice
|
||||||
|
func (in *GitRepository) GetStatusConditions() *[]metav1.Condition {
|
||||||
|
return &in.Status.Conditions
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetInterval returns the interval at which the source is updated.
|
||||||
|
func (in *GitRepository) GetInterval() metav1.Duration {
|
||||||
|
return in.Spec.Interval
|
||||||
|
}
|
||||||
|
|
||||||
|
// +genclient
|
||||||
|
// +genclient:Namespaced
|
||||||
|
// +kubebuilder:storageversion
|
||||||
|
// +kubebuilder:object:root=true
|
||||||
|
// +kubebuilder:resource:shortName=gitrepo
|
||||||
|
// +kubebuilder:subresource:status
|
||||||
|
// +kubebuilder:printcolumn:name="URL",type=string,JSONPath=`.spec.url`
|
||||||
|
// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type==\"Ready\")].status",description=""
|
||||||
|
// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.conditions[?(@.type==\"Ready\")].message",description=""
|
||||||
|
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description=""
|
||||||
|
|
||||||
|
// GitRepository is the Schema for the gitrepositories API
|
||||||
|
type GitRepository struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||||
|
|
||||||
|
Spec GitRepositorySpec `json:"spec,omitempty"`
|
||||||
|
// +kubebuilder:default={"observedGeneration":-1}
|
||||||
|
Status GitRepositoryStatus `json:"status,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GitRepositoryList contains a list of GitRepository
|
||||||
|
// +kubebuilder:object:root=true
|
||||||
|
type GitRepositoryList struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ListMeta `json:"metadata,omitempty"`
|
||||||
|
Items []GitRepository `json:"items"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
SchemeBuilder.Register(&GitRepository{}, &GitRepositoryList{})
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1beta2
|
||||||
|
|
||||||
|
import (
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
"sigs.k8s.io/controller-runtime/pkg/scheme"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// GroupVersion is group version used to register these objects.
|
||||||
|
GroupVersion = schema.GroupVersion{Group: "source.toolkit.fluxcd.io", Version: "v1beta2"}
|
||||||
|
|
||||||
|
// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
|
||||||
|
SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
|
||||||
|
|
||||||
|
// AddToScheme adds the types in this group-version to the given scheme.
|
||||||
|
AddToScheme = SchemeBuilder.AddToScheme
|
||||||
|
)
|
|
@ -0,0 +1,250 @@
|
||||||
|
/*
|
||||||
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1beta2
|
||||||
|
|
||||||
|
import (
|
||||||
|
apimeta "k8s.io/apimachinery/pkg/api/meta"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
"github.com/fluxcd/pkg/apis/acl"
|
||||||
|
"github.com/fluxcd/pkg/apis/meta"
|
||||||
|
)
|
||||||
|
|
||||||
|
// HelmChartKind is the string representation of a HelmChart.
|
||||||
|
const HelmChartKind = "HelmChart"
|
||||||
|
|
||||||
|
// HelmChartSpec defines the desired state of a Helm chart.
|
||||||
|
type HelmChartSpec struct {
|
||||||
|
// The name or path the Helm chart is available at in the SourceRef.
|
||||||
|
// +required
|
||||||
|
Chart string `json:"chart"`
|
||||||
|
|
||||||
|
// The chart version semver expression, ignored for charts from GitRepository
|
||||||
|
// and Bucket sources. Defaults to latest when omitted.
|
||||||
|
// +kubebuilder:default:=*
|
||||||
|
// +optional
|
||||||
|
Version string `json:"version,omitempty"`
|
||||||
|
|
||||||
|
// The reference to the Source the chart is available at.
|
||||||
|
// +required
|
||||||
|
SourceRef LocalHelmChartSourceReference `json:"sourceRef"`
|
||||||
|
|
||||||
|
// The interval at which to check the Source for updates.
|
||||||
|
// +required
|
||||||
|
Interval metav1.Duration `json:"interval"`
|
||||||
|
|
||||||
|
// Determines what enables the creation of a new artifact. Valid values are
|
||||||
|
// ('ChartVersion', 'Revision').
|
||||||
|
// See the documentation of the values for an explanation on their behavior.
|
||||||
|
// Defaults to ChartVersion when omitted.
|
||||||
|
// +kubebuilder:validation:Enum=ChartVersion;Revision
|
||||||
|
// +kubebuilder:default:=ChartVersion
|
||||||
|
// +optional
|
||||||
|
ReconcileStrategy string `json:"reconcileStrategy,omitempty"`
|
||||||
|
|
||||||
|
// Alternative list of values files to use as the chart values (values.yaml
|
||||||
|
// is not included by default), expected to be a relative path in the SourceRef.
|
||||||
|
// Values files are merged in the order of this list with the last file overriding
|
||||||
|
// the first. Ignored when omitted.
|
||||||
|
// +optional
|
||||||
|
ValuesFiles []string `json:"valuesFiles,omitempty"`
|
||||||
|
|
||||||
|
// Alternative values file to use as the default chart values, expected to
|
||||||
|
// be a relative path in the SourceRef. Deprecated in favor of ValuesFiles,
|
||||||
|
// for backwards compatibility the file defined here is merged before the
|
||||||
|
// ValuesFiles items. Ignored when omitted.
|
||||||
|
// +optional
|
||||||
|
// +deprecated
|
||||||
|
ValuesFile string `json:"valuesFile,omitempty"`
|
||||||
|
|
||||||
|
// This flag tells the controller to suspend the reconciliation of this source.
|
||||||
|
// +optional
|
||||||
|
Suspend bool `json:"suspend,omitempty"`
|
||||||
|
|
||||||
|
// AccessFrom defines an Access Control List for allowing cross-namespace references to this object.
|
||||||
|
// +optional
|
||||||
|
AccessFrom *acl.AccessFrom `json:"accessFrom,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
// ReconcileStrategyChartVersion reconciles when the version of the Helm chart is different.
|
||||||
|
ReconcileStrategyChartVersion string = "ChartVersion"
|
||||||
|
|
||||||
|
// ReconcileStrategyRevision reconciles when the Revision of the source is different.
|
||||||
|
ReconcileStrategyRevision string = "Revision"
|
||||||
|
)
|
||||||
|
|
||||||
|
// LocalHelmChartSourceReference contains enough information to let you locate
|
||||||
|
// the typed referenced object at namespace level.
|
||||||
|
type LocalHelmChartSourceReference struct {
|
||||||
|
// APIVersion of the referent.
|
||||||
|
// +optional
|
||||||
|
APIVersion string `json:"apiVersion,omitempty"`
|
||||||
|
|
||||||
|
// Kind of the referent, valid values are ('HelmRepository', 'GitRepository',
|
||||||
|
// 'Bucket').
|
||||||
|
// +kubebuilder:validation:Enum=HelmRepository;GitRepository;Bucket
|
||||||
|
// +required
|
||||||
|
Kind string `json:"kind"`
|
||||||
|
|
||||||
|
// Name of the referent.
|
||||||
|
// +required
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// HelmChartStatus defines the observed state of the HelmChart.
|
||||||
|
type HelmChartStatus struct {
|
||||||
|
// ObservedGeneration is the last observed generation.
|
||||||
|
// +optional
|
||||||
|
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
|
||||||
|
|
||||||
|
// Conditions holds the conditions for the HelmChart.
|
||||||
|
// +optional
|
||||||
|
Conditions []metav1.Condition `json:"conditions,omitempty"`
|
||||||
|
|
||||||
|
// URL is the download link for the last chart pulled.
|
||||||
|
// +optional
|
||||||
|
URL string `json:"url,omitempty"`
|
||||||
|
|
||||||
|
// Artifact represents the output of the last successful chart sync.
|
||||||
|
// +optional
|
||||||
|
Artifact *Artifact `json:"artifact,omitempty"`
|
||||||
|
|
||||||
|
meta.ReconcileRequestStatus `json:",inline"`
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
// ChartPullFailedReason represents the fact that the pull of the Helm chart
|
||||||
|
// failed.
|
||||||
|
ChartPullFailedReason string = "ChartPullFailed"
|
||||||
|
|
||||||
|
// ChartPullSucceededReason represents the fact that the pull of the Helm chart
|
||||||
|
// succeeded.
|
||||||
|
ChartPullSucceededReason string = "ChartPullSucceeded"
|
||||||
|
|
||||||
|
// ChartPackageFailedReason represent the fact that the package of the Helm
|
||||||
|
// chart failed.
|
||||||
|
ChartPackageFailedReason string = "ChartPackageFailed"
|
||||||
|
|
||||||
|
// ChartPackageSucceededReason represents the fact that the package of the Helm
|
||||||
|
// chart succeeded.
|
||||||
|
ChartPackageSucceededReason string = "ChartPackageSucceeded"
|
||||||
|
)
|
||||||
|
|
||||||
|
// HelmChartProgressing resets the conditions of the HelmChart to meta.Condition
|
||||||
|
// of type meta.ReadyCondition with status 'Unknown' and meta.ProgressingReason
|
||||||
|
// reason and message. It returns the modified HelmChart.
|
||||||
|
func HelmChartProgressing(chart HelmChart) HelmChart {
|
||||||
|
chart.Status.ObservedGeneration = chart.Generation
|
||||||
|
chart.Status.URL = ""
|
||||||
|
chart.Status.Conditions = []metav1.Condition{}
|
||||||
|
meta.SetResourceCondition(&chart, meta.ReadyCondition, metav1.ConditionUnknown, meta.ProgressingReason, "reconciliation in progress")
|
||||||
|
return chart
|
||||||
|
}
|
||||||
|
|
||||||
|
// HelmChartReady sets the given Artifact and URL on the HelmChart and sets the
|
||||||
|
// meta.ReadyCondition to 'True', with the given reason and message. It returns
|
||||||
|
// the modified HelmChart.
|
||||||
|
func HelmChartReady(chart HelmChart, artifact Artifact, url, reason, message string) HelmChart {
|
||||||
|
chart.Status.Artifact = &artifact
|
||||||
|
chart.Status.URL = url
|
||||||
|
meta.SetResourceCondition(&chart, meta.ReadyCondition, metav1.ConditionTrue, reason, message)
|
||||||
|
return chart
|
||||||
|
}
|
||||||
|
|
||||||
|
// HelmChartNotReady sets the meta.ReadyCondition on the given HelmChart to
|
||||||
|
// 'False', with the given reason and message. It returns the modified
|
||||||
|
// HelmChart.
|
||||||
|
func HelmChartNotReady(chart HelmChart, reason, message string) HelmChart {
|
||||||
|
meta.SetResourceCondition(&chart, meta.ReadyCondition, metav1.ConditionFalse, reason, message)
|
||||||
|
return chart
|
||||||
|
}
|
||||||
|
|
||||||
|
// HelmChartReadyMessage returns the message of the meta.ReadyCondition with
|
||||||
|
// status 'True', or an empty string.
|
||||||
|
func HelmChartReadyMessage(chart HelmChart) string {
|
||||||
|
if c := apimeta.FindStatusCondition(chart.Status.Conditions, meta.ReadyCondition); c != nil {
|
||||||
|
if c.Status == metav1.ConditionTrue {
|
||||||
|
return c.Message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetArtifact returns the latest artifact from the source if present in the
|
||||||
|
// status sub-resource.
|
||||||
|
func (in *HelmChart) GetArtifact() *Artifact {
|
||||||
|
return in.Status.Artifact
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetStatusConditions returns a pointer to the Status.Conditions slice
|
||||||
|
func (in *HelmChart) GetStatusConditions() *[]metav1.Condition {
|
||||||
|
return &in.Status.Conditions
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetInterval returns the interval at which the source is updated.
|
||||||
|
func (in *HelmChart) GetInterval() metav1.Duration {
|
||||||
|
return in.Spec.Interval
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetValuesFiles returns a merged list of ValuesFiles.
|
||||||
|
func (in *HelmChart) GetValuesFiles() []string {
|
||||||
|
valuesFiles := in.Spec.ValuesFiles
|
||||||
|
|
||||||
|
// Prepend the deprecated ValuesFile to the list
|
||||||
|
if in.Spec.ValuesFile != "" {
|
||||||
|
valuesFiles = append([]string{in.Spec.ValuesFile}, valuesFiles...)
|
||||||
|
}
|
||||||
|
return valuesFiles
|
||||||
|
}
|
||||||
|
|
||||||
|
// +genclient
|
||||||
|
// +genclient:Namespaced
|
||||||
|
// +kubebuilder:storageversion
|
||||||
|
// +kubebuilder:object:root=true
|
||||||
|
// +kubebuilder:resource:shortName=hc
|
||||||
|
// +kubebuilder:subresource:status
|
||||||
|
// +kubebuilder:printcolumn:name="Chart",type=string,JSONPath=`.spec.chart`
|
||||||
|
// +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.spec.version`
|
||||||
|
// +kubebuilder:printcolumn:name="Source Kind",type=string,JSONPath=`.spec.sourceRef.kind`
|
||||||
|
// +kubebuilder:printcolumn:name="Source Name",type=string,JSONPath=`.spec.sourceRef.name`
|
||||||
|
// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type==\"Ready\")].status",description=""
|
||||||
|
// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.conditions[?(@.type==\"Ready\")].message",description=""
|
||||||
|
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description=""
|
||||||
|
|
||||||
|
// HelmChart is the Schema for the helmcharts API
|
||||||
|
type HelmChart struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||||
|
|
||||||
|
Spec HelmChartSpec `json:"spec,omitempty"`
|
||||||
|
// +kubebuilder:default={"observedGeneration":-1}
|
||||||
|
Status HelmChartStatus `json:"status,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// +kubebuilder:object:root=true
|
||||||
|
|
||||||
|
// HelmChartList contains a list of HelmChart
|
||||||
|
type HelmChartList struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ListMeta `json:"metadata,omitempty"`
|
||||||
|
Items []HelmChart `json:"items"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
SchemeBuilder.Register(&HelmChart{}, &HelmChartList{})
|
||||||
|
}
|
|
@ -0,0 +1,196 @@
|
||||||
|
/*
|
||||||
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1beta2
|
||||||
|
|
||||||
|
import (
|
||||||
|
apimeta "k8s.io/apimachinery/pkg/api/meta"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
|
"github.com/fluxcd/pkg/apis/acl"
|
||||||
|
"github.com/fluxcd/pkg/apis/meta"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// HelmRepositoryKind is the string representation of a HelmRepository.
|
||||||
|
HelmRepositoryKind = "HelmRepository"
|
||||||
|
// HelmRepositoryURLIndexKey is the key to use for indexing HelmRepository
|
||||||
|
// resources by their HelmRepositorySpec.URL.
|
||||||
|
HelmRepositoryURLIndexKey = ".metadata.helmRepositoryURL"
|
||||||
|
)
|
||||||
|
|
||||||
|
// HelmRepositorySpec defines the reference to a Helm repository.
|
||||||
|
type HelmRepositorySpec struct {
|
||||||
|
// The Helm repository URL, a valid URL contains at least a protocol and host.
|
||||||
|
// +required
|
||||||
|
URL string `json:"url"`
|
||||||
|
|
||||||
|
// The name of the secret containing authentication credentials for the Helm
|
||||||
|
// repository.
|
||||||
|
// For HTTP/S basic auth the secret must contain username and
|
||||||
|
// password fields.
|
||||||
|
// For TLS the secret must contain a certFile and keyFile, and/or
|
||||||
|
// caCert fields.
|
||||||
|
// +optional
|
||||||
|
SecretRef *meta.LocalObjectReference `json:"secretRef,omitempty"`
|
||||||
|
|
||||||
|
// PassCredentials allows the credentials from the SecretRef to be passed on to
|
||||||
|
// a host that does not match the host as defined in URL.
|
||||||
|
// This may be required if the host of the advertised chart URLs in the index
|
||||||
|
// differ from the defined URL.
|
||||||
|
// Enabling this should be done with caution, as it can potentially result in
|
||||||
|
// credentials getting stolen in a MITM-attack.
|
||||||
|
// +optional
|
||||||
|
PassCredentials bool `json:"passCredentials,omitempty"`
|
||||||
|
|
||||||
|
// The interval at which to check the upstream for updates.
|
||||||
|
// +required
|
||||||
|
Interval metav1.Duration `json:"interval"`
|
||||||
|
|
||||||
|
// The timeout of index downloading, defaults to 60s.
|
||||||
|
// +kubebuilder:default:="60s"
|
||||||
|
// +optional
|
||||||
|
Timeout *metav1.Duration `json:"timeout,omitempty"`
|
||||||
|
|
||||||
|
// This flag tells the controller to suspend the reconciliation of this source.
|
||||||
|
// +optional
|
||||||
|
Suspend bool `json:"suspend,omitempty"`
|
||||||
|
|
||||||
|
// AccessFrom defines an Access Control List for allowing cross-namespace references to this object.
|
||||||
|
// +optional
|
||||||
|
AccessFrom *acl.AccessFrom `json:"accessFrom,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// HelmRepositoryStatus defines the observed state of the HelmRepository.
|
||||||
|
type HelmRepositoryStatus struct {
|
||||||
|
// ObservedGeneration is the last observed generation.
|
||||||
|
// +optional
|
||||||
|
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
|
||||||
|
|
||||||
|
// Conditions holds the conditions for the HelmRepository.
|
||||||
|
// +optional
|
||||||
|
Conditions []metav1.Condition `json:"conditions,omitempty"`
|
||||||
|
|
||||||
|
// URL is the download link for the last index fetched.
|
||||||
|
// +optional
|
||||||
|
URL string `json:"url,omitempty"`
|
||||||
|
|
||||||
|
// Artifact represents the output of the last successful repository sync.
|
||||||
|
// +optional
|
||||||
|
Artifact *Artifact `json:"artifact,omitempty"`
|
||||||
|
|
||||||
|
meta.ReconcileRequestStatus `json:",inline"`
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
// IndexationFailedReason represents the fact that the indexation of the given
|
||||||
|
// Helm repository failed.
|
||||||
|
IndexationFailedReason string = "IndexationFailed"
|
||||||
|
|
||||||
|
// IndexationSucceededReason represents the fact that the indexation of the
|
||||||
|
// given Helm repository succeeded.
|
||||||
|
IndexationSucceededReason string = "IndexationSucceed"
|
||||||
|
)
|
||||||
|
|
||||||
|
// HelmRepositoryProgressing resets the conditions of the HelmRepository to
|
||||||
|
// metav1.Condition of type meta.ReadyCondition with status 'Unknown' and
|
||||||
|
// meta.ProgressingReason reason and message. It returns the modified
|
||||||
|
// HelmRepository.
|
||||||
|
func HelmRepositoryProgressing(repository HelmRepository) HelmRepository {
|
||||||
|
repository.Status.ObservedGeneration = repository.Generation
|
||||||
|
repository.Status.URL = ""
|
||||||
|
repository.Status.Conditions = []metav1.Condition{}
|
||||||
|
meta.SetResourceCondition(&repository, meta.ReadyCondition, metav1.ConditionUnknown, meta.ProgressingReason, "reconciliation in progress")
|
||||||
|
return repository
|
||||||
|
}
|
||||||
|
|
||||||
|
// HelmRepositoryReady sets the given Artifact and URL on the HelmRepository and
|
||||||
|
// sets the meta.ReadyCondition to 'True', with the given reason and message. It
|
||||||
|
// returns the modified HelmRepository.
|
||||||
|
func HelmRepositoryReady(repository HelmRepository, artifact Artifact, url, reason, message string) HelmRepository {
|
||||||
|
repository.Status.Artifact = &artifact
|
||||||
|
repository.Status.URL = url
|
||||||
|
meta.SetResourceCondition(&repository, meta.ReadyCondition, metav1.ConditionTrue, reason, message)
|
||||||
|
return repository
|
||||||
|
}
|
||||||
|
|
||||||
|
// HelmRepositoryNotReady sets the meta.ReadyCondition on the given
|
||||||
|
// HelmRepository to 'False', with the given reason and message. It returns the
|
||||||
|
// modified HelmRepository.
|
||||||
|
func HelmRepositoryNotReady(repository HelmRepository, reason, message string) HelmRepository {
|
||||||
|
meta.SetResourceCondition(&repository, meta.ReadyCondition, metav1.ConditionFalse, reason, message)
|
||||||
|
return repository
|
||||||
|
}
|
||||||
|
|
||||||
|
// HelmRepositoryReadyMessage returns the message of the metav1.Condition of type
|
||||||
|
// meta.ReadyCondition with status 'True' if present, or an empty string.
|
||||||
|
func HelmRepositoryReadyMessage(repository HelmRepository) string {
|
||||||
|
if c := apimeta.FindStatusCondition(repository.Status.Conditions, meta.ReadyCondition); c != nil {
|
||||||
|
if c.Status == metav1.ConditionTrue {
|
||||||
|
return c.Message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetArtifact returns the latest artifact from the source if present in the
|
||||||
|
// status sub-resource.
|
||||||
|
func (in *HelmRepository) GetArtifact() *Artifact {
|
||||||
|
return in.Status.Artifact
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetStatusConditions returns a pointer to the Status.Conditions slice
|
||||||
|
func (in *HelmRepository) GetStatusConditions() *[]metav1.Condition {
|
||||||
|
return &in.Status.Conditions
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetInterval returns the interval at which the source is updated.
|
||||||
|
func (in *HelmRepository) GetInterval() metav1.Duration {
|
||||||
|
return in.Spec.Interval
|
||||||
|
}
|
||||||
|
|
||||||
|
// +genclient
|
||||||
|
// +genclient:Namespaced
|
||||||
|
// +kubebuilder:storageversion
|
||||||
|
// +kubebuilder:object:root=true
|
||||||
|
// +kubebuilder:resource:shortName=helmrepo
|
||||||
|
// +kubebuilder:subresource:status
|
||||||
|
// +kubebuilder:printcolumn:name="URL",type=string,JSONPath=`.spec.url`
|
||||||
|
// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type==\"Ready\")].status",description=""
|
||||||
|
// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.conditions[?(@.type==\"Ready\")].message",description=""
|
||||||
|
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description=""
|
||||||
|
|
||||||
|
// HelmRepository is the Schema for the helmrepositories API
|
||||||
|
type HelmRepository struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||||
|
|
||||||
|
Spec HelmRepositorySpec `json:"spec,omitempty"`
|
||||||
|
// +kubebuilder:default={"observedGeneration":-1}
|
||||||
|
Status HelmRepositoryStatus `json:"status,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// HelmRepositoryList contains a list of HelmRepository
|
||||||
|
// +kubebuilder:object:root=true
|
||||||
|
type HelmRepositoryList struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ListMeta `json:"metadata,omitempty"`
|
||||||
|
Items []HelmRepository `json:"items"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
SchemeBuilder.Register(&HelmRepository{}, &HelmRepositoryList{})
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1beta2
|
||||||
|
|
||||||
|
import (
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// SourceIndexKey is the key used for indexing resources
|
||||||
|
// resources based on their Source.
|
||||||
|
SourceIndexKey string = ".metadata.source"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Source interface must be supported by all API types.
|
||||||
|
// +k8s:deepcopy-gen=false
|
||||||
|
type Source interface {
|
||||||
|
// GetArtifact returns the latest artifact from the source if present in the
|
||||||
|
// status sub-resource.
|
||||||
|
GetArtifact() *Artifact
|
||||||
|
// GetInterval returns the interval at which the source is updated.
|
||||||
|
GetInterval() metav1.Duration
|
||||||
|
}
|
|
@ -0,0 +1,611 @@
|
||||||
|
//go:build !ignore_autogenerated
|
||||||
|
// +build !ignore_autogenerated
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by controller-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1beta2
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/fluxcd/pkg/apis/acl"
|
||||||
|
"github.com/fluxcd/pkg/apis/meta"
|
||||||
|
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *Artifact) DeepCopyInto(out *Artifact) {
|
||||||
|
*out = *in
|
||||||
|
in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Artifact.
|
||||||
|
func (in *Artifact) DeepCopy() *Artifact {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(Artifact)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *Bucket) DeepCopyInto(out *Bucket) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||||
|
in.Spec.DeepCopyInto(&out.Spec)
|
||||||
|
in.Status.DeepCopyInto(&out.Status)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Bucket.
|
||||||
|
func (in *Bucket) DeepCopy() *Bucket {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(Bucket)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *Bucket) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *BucketList) DeepCopyInto(out *BucketList) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||||
|
if in.Items != nil {
|
||||||
|
in, out := &in.Items, &out.Items
|
||||||
|
*out = make([]Bucket, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketList.
|
||||||
|
func (in *BucketList) DeepCopy() *BucketList {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(BucketList)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *BucketList) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *BucketSpec) DeepCopyInto(out *BucketSpec) {
|
||||||
|
*out = *in
|
||||||
|
if in.SecretRef != nil {
|
||||||
|
in, out := &in.SecretRef, &out.SecretRef
|
||||||
|
*out = new(meta.LocalObjectReference)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
out.Interval = in.Interval
|
||||||
|
if in.Timeout != nil {
|
||||||
|
in, out := &in.Timeout, &out.Timeout
|
||||||
|
*out = new(v1.Duration)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
if in.Ignore != nil {
|
||||||
|
in, out := &in.Ignore, &out.Ignore
|
||||||
|
*out = new(string)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
if in.AccessFrom != nil {
|
||||||
|
in, out := &in.AccessFrom, &out.AccessFrom
|
||||||
|
*out = new(acl.AccessFrom)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketSpec.
|
||||||
|
func (in *BucketSpec) DeepCopy() *BucketSpec {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(BucketSpec)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *BucketStatus) DeepCopyInto(out *BucketStatus) {
|
||||||
|
*out = *in
|
||||||
|
if in.Conditions != nil {
|
||||||
|
in, out := &in.Conditions, &out.Conditions
|
||||||
|
*out = make([]v1.Condition, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if in.Artifact != nil {
|
||||||
|
in, out := &in.Artifact, &out.Artifact
|
||||||
|
*out = new(Artifact)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
|
out.ReconcileRequestStatus = in.ReconcileRequestStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketStatus.
|
||||||
|
func (in *BucketStatus) DeepCopy() *BucketStatus {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(BucketStatus)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GitRepository) DeepCopyInto(out *GitRepository) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||||
|
in.Spec.DeepCopyInto(&out.Spec)
|
||||||
|
in.Status.DeepCopyInto(&out.Status)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepository.
|
||||||
|
func (in *GitRepository) DeepCopy() *GitRepository {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GitRepository)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *GitRepository) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GitRepositoryInclude) DeepCopyInto(out *GitRepositoryInclude) {
|
||||||
|
*out = *in
|
||||||
|
out.GitRepositoryRef = in.GitRepositoryRef
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepositoryInclude.
|
||||||
|
func (in *GitRepositoryInclude) DeepCopy() *GitRepositoryInclude {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GitRepositoryInclude)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GitRepositoryList) DeepCopyInto(out *GitRepositoryList) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||||
|
if in.Items != nil {
|
||||||
|
in, out := &in.Items, &out.Items
|
||||||
|
*out = make([]GitRepository, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepositoryList.
|
||||||
|
func (in *GitRepositoryList) DeepCopy() *GitRepositoryList {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GitRepositoryList)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *GitRepositoryList) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GitRepositoryRef) DeepCopyInto(out *GitRepositoryRef) {
|
||||||
|
*out = *in
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepositoryRef.
|
||||||
|
func (in *GitRepositoryRef) DeepCopy() *GitRepositoryRef {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GitRepositoryRef)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GitRepositorySpec) DeepCopyInto(out *GitRepositorySpec) {
|
||||||
|
*out = *in
|
||||||
|
if in.SecretRef != nil {
|
||||||
|
in, out := &in.SecretRef, &out.SecretRef
|
||||||
|
*out = new(meta.LocalObjectReference)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
out.Interval = in.Interval
|
||||||
|
if in.Timeout != nil {
|
||||||
|
in, out := &in.Timeout, &out.Timeout
|
||||||
|
*out = new(v1.Duration)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
if in.Reference != nil {
|
||||||
|
in, out := &in.Reference, &out.Reference
|
||||||
|
*out = new(GitRepositoryRef)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
if in.Verification != nil {
|
||||||
|
in, out := &in.Verification, &out.Verification
|
||||||
|
*out = new(GitRepositoryVerification)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
if in.Ignore != nil {
|
||||||
|
in, out := &in.Ignore, &out.Ignore
|
||||||
|
*out = new(string)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
if in.Include != nil {
|
||||||
|
in, out := &in.Include, &out.Include
|
||||||
|
*out = make([]GitRepositoryInclude, len(*in))
|
||||||
|
copy(*out, *in)
|
||||||
|
}
|
||||||
|
if in.AccessFrom != nil {
|
||||||
|
in, out := &in.AccessFrom, &out.AccessFrom
|
||||||
|
*out = new(acl.AccessFrom)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepositorySpec.
|
||||||
|
func (in *GitRepositorySpec) DeepCopy() *GitRepositorySpec {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GitRepositorySpec)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GitRepositoryStatus) DeepCopyInto(out *GitRepositoryStatus) {
|
||||||
|
*out = *in
|
||||||
|
if in.Conditions != nil {
|
||||||
|
in, out := &in.Conditions, &out.Conditions
|
||||||
|
*out = make([]v1.Condition, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if in.Artifact != nil {
|
||||||
|
in, out := &in.Artifact, &out.Artifact
|
||||||
|
*out = new(Artifact)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
|
if in.IncludedArtifacts != nil {
|
||||||
|
in, out := &in.IncludedArtifacts, &out.IncludedArtifacts
|
||||||
|
*out = make([]*Artifact, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
if (*in)[i] != nil {
|
||||||
|
in, out := &(*in)[i], &(*out)[i]
|
||||||
|
*out = new(Artifact)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
out.ReconcileRequestStatus = in.ReconcileRequestStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepositoryStatus.
|
||||||
|
func (in *GitRepositoryStatus) DeepCopy() *GitRepositoryStatus {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GitRepositoryStatus)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GitRepositoryVerification) DeepCopyInto(out *GitRepositoryVerification) {
|
||||||
|
*out = *in
|
||||||
|
out.SecretRef = in.SecretRef
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepositoryVerification.
|
||||||
|
func (in *GitRepositoryVerification) DeepCopy() *GitRepositoryVerification {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GitRepositoryVerification)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *HelmChart) DeepCopyInto(out *HelmChart) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||||
|
in.Spec.DeepCopyInto(&out.Spec)
|
||||||
|
in.Status.DeepCopyInto(&out.Status)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmChart.
|
||||||
|
func (in *HelmChart) DeepCopy() *HelmChart {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(HelmChart)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *HelmChart) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *HelmChartList) DeepCopyInto(out *HelmChartList) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||||
|
if in.Items != nil {
|
||||||
|
in, out := &in.Items, &out.Items
|
||||||
|
*out = make([]HelmChart, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmChartList.
|
||||||
|
func (in *HelmChartList) DeepCopy() *HelmChartList {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(HelmChartList)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *HelmChartList) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *HelmChartSpec) DeepCopyInto(out *HelmChartSpec) {
|
||||||
|
*out = *in
|
||||||
|
out.SourceRef = in.SourceRef
|
||||||
|
out.Interval = in.Interval
|
||||||
|
if in.ValuesFiles != nil {
|
||||||
|
in, out := &in.ValuesFiles, &out.ValuesFiles
|
||||||
|
*out = make([]string, len(*in))
|
||||||
|
copy(*out, *in)
|
||||||
|
}
|
||||||
|
if in.AccessFrom != nil {
|
||||||
|
in, out := &in.AccessFrom, &out.AccessFrom
|
||||||
|
*out = new(acl.AccessFrom)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmChartSpec.
|
||||||
|
func (in *HelmChartSpec) DeepCopy() *HelmChartSpec {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(HelmChartSpec)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *HelmChartStatus) DeepCopyInto(out *HelmChartStatus) {
|
||||||
|
*out = *in
|
||||||
|
if in.Conditions != nil {
|
||||||
|
in, out := &in.Conditions, &out.Conditions
|
||||||
|
*out = make([]v1.Condition, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if in.Artifact != nil {
|
||||||
|
in, out := &in.Artifact, &out.Artifact
|
||||||
|
*out = new(Artifact)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
|
out.ReconcileRequestStatus = in.ReconcileRequestStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmChartStatus.
|
||||||
|
func (in *HelmChartStatus) DeepCopy() *HelmChartStatus {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(HelmChartStatus)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *HelmRepository) DeepCopyInto(out *HelmRepository) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||||
|
in.Spec.DeepCopyInto(&out.Spec)
|
||||||
|
in.Status.DeepCopyInto(&out.Status)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmRepository.
|
||||||
|
func (in *HelmRepository) DeepCopy() *HelmRepository {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(HelmRepository)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *HelmRepository) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *HelmRepositoryList) DeepCopyInto(out *HelmRepositoryList) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.ListMeta.DeepCopyInto(&out.ListMeta)
|
||||||
|
if in.Items != nil {
|
||||||
|
in, out := &in.Items, &out.Items
|
||||||
|
*out = make([]HelmRepository, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmRepositoryList.
|
||||||
|
func (in *HelmRepositoryList) DeepCopy() *HelmRepositoryList {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(HelmRepositoryList)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *HelmRepositoryList) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *HelmRepositorySpec) DeepCopyInto(out *HelmRepositorySpec) {
|
||||||
|
*out = *in
|
||||||
|
if in.SecretRef != nil {
|
||||||
|
in, out := &in.SecretRef, &out.SecretRef
|
||||||
|
*out = new(meta.LocalObjectReference)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
out.Interval = in.Interval
|
||||||
|
if in.Timeout != nil {
|
||||||
|
in, out := &in.Timeout, &out.Timeout
|
||||||
|
*out = new(v1.Duration)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
if in.AccessFrom != nil {
|
||||||
|
in, out := &in.AccessFrom, &out.AccessFrom
|
||||||
|
*out = new(acl.AccessFrom)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmRepositorySpec.
|
||||||
|
func (in *HelmRepositorySpec) DeepCopy() *HelmRepositorySpec {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(HelmRepositorySpec)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *HelmRepositoryStatus) DeepCopyInto(out *HelmRepositoryStatus) {
|
||||||
|
*out = *in
|
||||||
|
if in.Conditions != nil {
|
||||||
|
in, out := &in.Conditions, &out.Conditions
|
||||||
|
*out = make([]v1.Condition, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if in.Artifact != nil {
|
||||||
|
in, out := &in.Artifact, &out.Artifact
|
||||||
|
*out = new(Artifact)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
|
out.ReconcileRequestStatus = in.ReconcileRequestStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmRepositoryStatus.
|
||||||
|
func (in *HelmRepositoryStatus) DeepCopy() *HelmRepositoryStatus {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(HelmRepositoryStatus)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *LocalHelmChartSourceReference) DeepCopyInto(out *LocalHelmChartSourceReference) {
|
||||||
|
*out = *in
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalHelmChartSourceReference.
|
||||||
|
func (in *LocalHelmChartSourceReference) DeepCopy() *LocalHelmChartSourceReference {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(LocalHelmChartSourceReference)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
|
@ -246,6 +246,239 @@ spec:
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
storage: false
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .spec.endpoint
|
||||||
|
name: Endpoint
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.conditions[?(@.type=="Ready")].status
|
||||||
|
name: Ready
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.conditions[?(@.type=="Ready")].message
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
name: v1beta2
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: Bucket is the Schema for the buckets API
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
|
of an object. Servers should convert recognized schemas to the latest
|
||||||
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: 'Kind is a string value representing the REST resource this
|
||||||
|
object represents. Servers may infer this from the endpoint the client
|
||||||
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
description: BucketSpec defines the desired state of an S3 compatible
|
||||||
|
bucket
|
||||||
|
properties:
|
||||||
|
accessFrom:
|
||||||
|
description: AccessFrom defines an Access Control List for allowing
|
||||||
|
cross-namespace references to this object.
|
||||||
|
properties:
|
||||||
|
namespaceSelectors:
|
||||||
|
description: NamespaceSelectors is the list of namespace selectors
|
||||||
|
to which this ACL applies. Items in this list are evaluated
|
||||||
|
using a logical OR operation.
|
||||||
|
items:
|
||||||
|
description: NamespaceSelector selects the namespaces to which
|
||||||
|
this ACL applies. An empty map of MatchLabels matches all
|
||||||
|
namespaces in a cluster.
|
||||||
|
properties:
|
||||||
|
matchLabels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: MatchLabels is a map of {key,value} pairs.
|
||||||
|
A single {key,value} in the matchLabels map is equivalent
|
||||||
|
to an element of matchExpressions, whose key field is
|
||||||
|
"key", the operator is "In", and the values array contains
|
||||||
|
only "value". The requirements are ANDed.
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- namespaceSelectors
|
||||||
|
type: object
|
||||||
|
bucketName:
|
||||||
|
description: The bucket name.
|
||||||
|
type: string
|
||||||
|
endpoint:
|
||||||
|
description: The bucket endpoint address.
|
||||||
|
type: string
|
||||||
|
ignore:
|
||||||
|
description: Ignore overrides the set of excluded patterns in the
|
||||||
|
.sourceignore format (which is the same as .gitignore). If not provided,
|
||||||
|
a default will be used, consult the documentation for your version
|
||||||
|
to find out what those are.
|
||||||
|
type: string
|
||||||
|
insecure:
|
||||||
|
description: Insecure allows connecting to a non-TLS S3 HTTP endpoint.
|
||||||
|
type: boolean
|
||||||
|
interval:
|
||||||
|
description: The interval at which to check for bucket updates.
|
||||||
|
type: string
|
||||||
|
provider:
|
||||||
|
default: generic
|
||||||
|
description: The S3 compatible storage provider name, default ('generic').
|
||||||
|
enum:
|
||||||
|
- generic
|
||||||
|
- aws
|
||||||
|
- gcp
|
||||||
|
type: string
|
||||||
|
region:
|
||||||
|
description: The bucket region.
|
||||||
|
type: string
|
||||||
|
secretRef:
|
||||||
|
description: The name of the secret containing authentication credentials
|
||||||
|
for the Bucket.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name of the referent
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
suspend:
|
||||||
|
description: This flag tells the controller to suspend the reconciliation
|
||||||
|
of this source.
|
||||||
|
type: boolean
|
||||||
|
timeout:
|
||||||
|
default: 60s
|
||||||
|
description: The timeout for download operations, defaults to 60s.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- bucketName
|
||||||
|
- endpoint
|
||||||
|
- interval
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
default:
|
||||||
|
observedGeneration: -1
|
||||||
|
description: BucketStatus defines the observed state of a bucket
|
||||||
|
properties:
|
||||||
|
artifact:
|
||||||
|
description: Artifact represents the output of the last successful
|
||||||
|
Bucket sync.
|
||||||
|
properties:
|
||||||
|
checksum:
|
||||||
|
description: Checksum is the SHA256 checksum of the artifact.
|
||||||
|
type: string
|
||||||
|
lastUpdateTime:
|
||||||
|
description: LastUpdateTime is the timestamp corresponding to
|
||||||
|
the last update of this artifact.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
path:
|
||||||
|
description: Path is the relative file path of this artifact.
|
||||||
|
type: string
|
||||||
|
revision:
|
||||||
|
description: Revision is a human readable identifier traceable
|
||||||
|
in the origin source system. It can be a Git commit SHA, Git
|
||||||
|
tag, a Helm index timestamp, a Helm chart version, etc.
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
description: URL is the HTTP address of this artifact.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- path
|
||||||
|
- url
|
||||||
|
type: object
|
||||||
|
conditions:
|
||||||
|
description: Conditions holds the conditions for the Bucket.
|
||||||
|
items:
|
||||||
|
description: "Condition contains details for one aspect of the current
|
||||||
|
state of this API Resource. --- This struct is intended for direct
|
||||||
|
use as an array at the field path .status.conditions. For example,
|
||||||
|
type FooStatus struct{ // Represents the observations of a
|
||||||
|
foo's current state. // Known .status.conditions.type are:
|
||||||
|
\"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type
|
||||||
|
\ // +patchStrategy=merge // +listType=map // +listMapKey=type
|
||||||
|
\ Conditions []metav1.Condition `json:\"conditions,omitempty\"
|
||||||
|
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
|
||||||
|
\n // other fields }"
|
||||||
|
properties:
|
||||||
|
lastTransitionTime:
|
||||||
|
description: lastTransitionTime is the last time the condition
|
||||||
|
transitioned from one status to another. This should be when
|
||||||
|
the underlying condition changed. If that is not known, then
|
||||||
|
using the time when the API field changed is acceptable.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: message is a human readable message indicating
|
||||||
|
details about the transition. This may be an empty string.
|
||||||
|
maxLength: 32768
|
||||||
|
type: string
|
||||||
|
observedGeneration:
|
||||||
|
description: observedGeneration represents the .metadata.generation
|
||||||
|
that the condition was set based upon. For instance, if .metadata.generation
|
||||||
|
is currently 12, but the .status.conditions[x].observedGeneration
|
||||||
|
is 9, the condition is out of date with respect to the current
|
||||||
|
state of the instance.
|
||||||
|
format: int64
|
||||||
|
minimum: 0
|
||||||
|
type: integer
|
||||||
|
reason:
|
||||||
|
description: reason contains a programmatic identifier indicating
|
||||||
|
the reason for the condition's last transition. Producers
|
||||||
|
of specific condition types may define expected values and
|
||||||
|
meanings for this field, and whether the values are considered
|
||||||
|
a guaranteed API. The value should be a CamelCase string.
|
||||||
|
This field may not be empty.
|
||||||
|
maxLength: 1024
|
||||||
|
minLength: 1
|
||||||
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
description: status of the condition, one of True, False, Unknown.
|
||||||
|
enum:
|
||||||
|
- "True"
|
||||||
|
- "False"
|
||||||
|
- Unknown
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||||
|
--- Many .condition.type values are consistent across resources
|
||||||
|
like Available, but because arbitrary conditions can be useful
|
||||||
|
(see .node.status.conditions), the ability to deconflict is
|
||||||
|
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
||||||
|
maxLength: 316
|
||||||
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- lastTransitionTime
|
||||||
|
- message
|
||||||
|
- reason
|
||||||
|
- status
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
lastHandledReconcileAt:
|
||||||
|
description: LastHandledReconcileAt holds the value of the most recent
|
||||||
|
reconcile request value, so a change can be detected.
|
||||||
|
type: string
|
||||||
|
observedGeneration:
|
||||||
|
description: ObservedGeneration is the last observed generation.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
url:
|
||||||
|
description: URL is the download link for the artifact output of the
|
||||||
|
last Bucket sync.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
storage: true
|
storage: true
|
||||||
subresources:
|
subresources:
|
||||||
status: {}
|
status: {}
|
||||||
|
|
|
@ -345,6 +345,336 @@ spec:
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
storage: false
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .spec.url
|
||||||
|
name: URL
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.conditions[?(@.type=="Ready")].status
|
||||||
|
name: Ready
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.conditions[?(@.type=="Ready")].message
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
name: v1beta2
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: GitRepository is the Schema for the gitrepositories API
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
|
of an object. Servers should convert recognized schemas to the latest
|
||||||
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: 'Kind is a string value representing the REST resource this
|
||||||
|
object represents. Servers may infer this from the endpoint the client
|
||||||
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
description: GitRepositorySpec defines the desired state of a Git repository.
|
||||||
|
properties:
|
||||||
|
accessFrom:
|
||||||
|
description: AccessFrom defines an Access Control List for allowing
|
||||||
|
cross-namespace references to this object.
|
||||||
|
properties:
|
||||||
|
namespaceSelectors:
|
||||||
|
description: NamespaceSelectors is the list of namespace selectors
|
||||||
|
to which this ACL applies. Items in this list are evaluated
|
||||||
|
using a logical OR operation.
|
||||||
|
items:
|
||||||
|
description: NamespaceSelector selects the namespaces to which
|
||||||
|
this ACL applies. An empty map of MatchLabels matches all
|
||||||
|
namespaces in a cluster.
|
||||||
|
properties:
|
||||||
|
matchLabels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: MatchLabels is a map of {key,value} pairs.
|
||||||
|
A single {key,value} in the matchLabels map is equivalent
|
||||||
|
to an element of matchExpressions, whose key field is
|
||||||
|
"key", the operator is "In", and the values array contains
|
||||||
|
only "value". The requirements are ANDed.
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- namespaceSelectors
|
||||||
|
type: object
|
||||||
|
gitImplementation:
|
||||||
|
default: go-git
|
||||||
|
description: Determines which git client library to use. Defaults
|
||||||
|
to go-git, valid values are ('go-git', 'libgit2').
|
||||||
|
enum:
|
||||||
|
- go-git
|
||||||
|
- libgit2
|
||||||
|
type: string
|
||||||
|
ignore:
|
||||||
|
description: Ignore overrides the set of excluded patterns in the
|
||||||
|
.sourceignore format (which is the same as .gitignore). If not provided,
|
||||||
|
a default will be used, consult the documentation for your version
|
||||||
|
to find out what those are.
|
||||||
|
type: string
|
||||||
|
include:
|
||||||
|
description: Extra git repositories to map into the repository
|
||||||
|
items:
|
||||||
|
description: GitRepositoryInclude defines a source with a from and
|
||||||
|
to path.
|
||||||
|
properties:
|
||||||
|
fromPath:
|
||||||
|
description: The path to copy contents from, defaults to the
|
||||||
|
root directory.
|
||||||
|
type: string
|
||||||
|
repository:
|
||||||
|
description: Reference to a GitRepository to include.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name of the referent
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
toPath:
|
||||||
|
description: The path to copy contents to, defaults to the name
|
||||||
|
of the source ref.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- repository
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
interval:
|
||||||
|
description: The interval at which to check for repository updates.
|
||||||
|
type: string
|
||||||
|
recurseSubmodules:
|
||||||
|
description: When enabled, after the clone is created, initializes
|
||||||
|
all submodules within, using their default settings. This option
|
||||||
|
is available only when using the 'go-git' GitImplementation.
|
||||||
|
type: boolean
|
||||||
|
ref:
|
||||||
|
description: The Git reference to checkout and monitor for changes,
|
||||||
|
defaults to master branch.
|
||||||
|
properties:
|
||||||
|
branch:
|
||||||
|
description: The Git branch to checkout, defaults to master.
|
||||||
|
type: string
|
||||||
|
commit:
|
||||||
|
description: The Git commit SHA to checkout, if specified Tag
|
||||||
|
filters will be ignored.
|
||||||
|
type: string
|
||||||
|
semver:
|
||||||
|
description: The Git tag semver expression, takes precedence over
|
||||||
|
Tag.
|
||||||
|
type: string
|
||||||
|
tag:
|
||||||
|
description: The Git tag to checkout, takes precedence over Branch.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
secretRef:
|
||||||
|
description: The secret name containing the Git credentials. For HTTPS
|
||||||
|
repositories the secret must contain username and password fields.
|
||||||
|
For SSH repositories the secret must contain identity, identity.pub
|
||||||
|
and known_hosts fields.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name of the referent
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
suspend:
|
||||||
|
description: This flag tells the controller to suspend the reconciliation
|
||||||
|
of this source.
|
||||||
|
type: boolean
|
||||||
|
timeout:
|
||||||
|
default: 60s
|
||||||
|
description: The timeout for remote Git operations like cloning, defaults
|
||||||
|
to 60s.
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
description: The repository URL, can be a HTTP/S or SSH address.
|
||||||
|
pattern: ^(http|https|ssh)://
|
||||||
|
type: string
|
||||||
|
verify:
|
||||||
|
description: Verify OpenPGP signature for the Git commit HEAD points
|
||||||
|
to.
|
||||||
|
properties:
|
||||||
|
mode:
|
||||||
|
description: Mode describes what git object should be verified,
|
||||||
|
currently ('head').
|
||||||
|
enum:
|
||||||
|
- head
|
||||||
|
type: string
|
||||||
|
secretRef:
|
||||||
|
description: The secret name containing the public keys of all
|
||||||
|
trusted Git authors.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name of the referent
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- mode
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- interval
|
||||||
|
- url
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
default:
|
||||||
|
observedGeneration: -1
|
||||||
|
description: GitRepositoryStatus defines the observed state of a Git repository.
|
||||||
|
properties:
|
||||||
|
artifact:
|
||||||
|
description: Artifact represents the output of the last successful
|
||||||
|
repository sync.
|
||||||
|
properties:
|
||||||
|
checksum:
|
||||||
|
description: Checksum is the SHA256 checksum of the artifact.
|
||||||
|
type: string
|
||||||
|
lastUpdateTime:
|
||||||
|
description: LastUpdateTime is the timestamp corresponding to
|
||||||
|
the last update of this artifact.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
path:
|
||||||
|
description: Path is the relative file path of this artifact.
|
||||||
|
type: string
|
||||||
|
revision:
|
||||||
|
description: Revision is a human readable identifier traceable
|
||||||
|
in the origin source system. It can be a Git commit SHA, Git
|
||||||
|
tag, a Helm index timestamp, a Helm chart version, etc.
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
description: URL is the HTTP address of this artifact.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- path
|
||||||
|
- url
|
||||||
|
type: object
|
||||||
|
conditions:
|
||||||
|
description: Conditions holds the conditions for the GitRepository.
|
||||||
|
items:
|
||||||
|
description: "Condition contains details for one aspect of the current
|
||||||
|
state of this API Resource. --- This struct is intended for direct
|
||||||
|
use as an array at the field path .status.conditions. For example,
|
||||||
|
type FooStatus struct{ // Represents the observations of a
|
||||||
|
foo's current state. // Known .status.conditions.type are:
|
||||||
|
\"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type
|
||||||
|
\ // +patchStrategy=merge // +listType=map // +listMapKey=type
|
||||||
|
\ Conditions []metav1.Condition `json:\"conditions,omitempty\"
|
||||||
|
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
|
||||||
|
\n // other fields }"
|
||||||
|
properties:
|
||||||
|
lastTransitionTime:
|
||||||
|
description: lastTransitionTime is the last time the condition
|
||||||
|
transitioned from one status to another. This should be when
|
||||||
|
the underlying condition changed. If that is not known, then
|
||||||
|
using the time when the API field changed is acceptable.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: message is a human readable message indicating
|
||||||
|
details about the transition. This may be an empty string.
|
||||||
|
maxLength: 32768
|
||||||
|
type: string
|
||||||
|
observedGeneration:
|
||||||
|
description: observedGeneration represents the .metadata.generation
|
||||||
|
that the condition was set based upon. For instance, if .metadata.generation
|
||||||
|
is currently 12, but the .status.conditions[x].observedGeneration
|
||||||
|
is 9, the condition is out of date with respect to the current
|
||||||
|
state of the instance.
|
||||||
|
format: int64
|
||||||
|
minimum: 0
|
||||||
|
type: integer
|
||||||
|
reason:
|
||||||
|
description: reason contains a programmatic identifier indicating
|
||||||
|
the reason for the condition's last transition. Producers
|
||||||
|
of specific condition types may define expected values and
|
||||||
|
meanings for this field, and whether the values are considered
|
||||||
|
a guaranteed API. The value should be a CamelCase string.
|
||||||
|
This field may not be empty.
|
||||||
|
maxLength: 1024
|
||||||
|
minLength: 1
|
||||||
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
description: status of the condition, one of True, False, Unknown.
|
||||||
|
enum:
|
||||||
|
- "True"
|
||||||
|
- "False"
|
||||||
|
- Unknown
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||||
|
--- Many .condition.type values are consistent across resources
|
||||||
|
like Available, but because arbitrary conditions can be useful
|
||||||
|
(see .node.status.conditions), the ability to deconflict is
|
||||||
|
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
||||||
|
maxLength: 316
|
||||||
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- lastTransitionTime
|
||||||
|
- message
|
||||||
|
- reason
|
||||||
|
- status
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
includedArtifacts:
|
||||||
|
description: IncludedArtifacts represents the included artifacts from
|
||||||
|
the last successful repository sync.
|
||||||
|
items:
|
||||||
|
description: Artifact represents the output of a source synchronisation.
|
||||||
|
properties:
|
||||||
|
checksum:
|
||||||
|
description: Checksum is the SHA256 checksum of the artifact.
|
||||||
|
type: string
|
||||||
|
lastUpdateTime:
|
||||||
|
description: LastUpdateTime is the timestamp corresponding to
|
||||||
|
the last update of this artifact.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
path:
|
||||||
|
description: Path is the relative file path of this artifact.
|
||||||
|
type: string
|
||||||
|
revision:
|
||||||
|
description: Revision is a human readable identifier traceable
|
||||||
|
in the origin source system. It can be a Git commit SHA, Git
|
||||||
|
tag, a Helm index timestamp, a Helm chart version, etc.
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
description: URL is the HTTP address of this artifact.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- path
|
||||||
|
- url
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
lastHandledReconcileAt:
|
||||||
|
description: LastHandledReconcileAt holds the value of the most recent
|
||||||
|
reconcile request value, so a change can be detected.
|
||||||
|
type: string
|
||||||
|
observedGeneration:
|
||||||
|
description: ObservedGeneration is the last observed generation.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
url:
|
||||||
|
description: URL is the download link for the artifact output of the
|
||||||
|
last repository sync.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
storage: true
|
storage: true
|
||||||
subresources:
|
subresources:
|
||||||
status: {}
|
status: {}
|
||||||
|
|
|
@ -270,6 +270,261 @@ spec:
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
storage: false
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .spec.chart
|
||||||
|
name: Chart
|
||||||
|
type: string
|
||||||
|
- jsonPath: .spec.version
|
||||||
|
name: Version
|
||||||
|
type: string
|
||||||
|
- jsonPath: .spec.sourceRef.kind
|
||||||
|
name: Source Kind
|
||||||
|
type: string
|
||||||
|
- jsonPath: .spec.sourceRef.name
|
||||||
|
name: Source Name
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.conditions[?(@.type=="Ready")].status
|
||||||
|
name: Ready
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.conditions[?(@.type=="Ready")].message
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
name: v1beta2
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: HelmChart is the Schema for the helmcharts API
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
|
of an object. Servers should convert recognized schemas to the latest
|
||||||
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: 'Kind is a string value representing the REST resource this
|
||||||
|
object represents. Servers may infer this from the endpoint the client
|
||||||
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
description: HelmChartSpec defines the desired state of a Helm chart.
|
||||||
|
properties:
|
||||||
|
accessFrom:
|
||||||
|
description: AccessFrom defines an Access Control List for allowing
|
||||||
|
cross-namespace references to this object.
|
||||||
|
properties:
|
||||||
|
namespaceSelectors:
|
||||||
|
description: NamespaceSelectors is the list of namespace selectors
|
||||||
|
to which this ACL applies. Items in this list are evaluated
|
||||||
|
using a logical OR operation.
|
||||||
|
items:
|
||||||
|
description: NamespaceSelector selects the namespaces to which
|
||||||
|
this ACL applies. An empty map of MatchLabels matches all
|
||||||
|
namespaces in a cluster.
|
||||||
|
properties:
|
||||||
|
matchLabels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: MatchLabels is a map of {key,value} pairs.
|
||||||
|
A single {key,value} in the matchLabels map is equivalent
|
||||||
|
to an element of matchExpressions, whose key field is
|
||||||
|
"key", the operator is "In", and the values array contains
|
||||||
|
only "value". The requirements are ANDed.
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- namespaceSelectors
|
||||||
|
type: object
|
||||||
|
chart:
|
||||||
|
description: The name or path the Helm chart is available at in the
|
||||||
|
SourceRef.
|
||||||
|
type: string
|
||||||
|
interval:
|
||||||
|
description: The interval at which to check the Source for updates.
|
||||||
|
type: string
|
||||||
|
reconcileStrategy:
|
||||||
|
default: ChartVersion
|
||||||
|
description: Determines what enables the creation of a new artifact.
|
||||||
|
Valid values are ('ChartVersion', 'Revision'). See the documentation
|
||||||
|
of the values for an explanation on their behavior. Defaults to
|
||||||
|
ChartVersion when omitted.
|
||||||
|
enum:
|
||||||
|
- ChartVersion
|
||||||
|
- Revision
|
||||||
|
type: string
|
||||||
|
sourceRef:
|
||||||
|
description: The reference to the Source the chart is available at.
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: APIVersion of the referent.
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: Kind of the referent, valid values are ('HelmRepository',
|
||||||
|
'GitRepository', 'Bucket').
|
||||||
|
enum:
|
||||||
|
- HelmRepository
|
||||||
|
- GitRepository
|
||||||
|
- Bucket
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: Name of the referent.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- kind
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
suspend:
|
||||||
|
description: This flag tells the controller to suspend the reconciliation
|
||||||
|
of this source.
|
||||||
|
type: boolean
|
||||||
|
valuesFile:
|
||||||
|
description: Alternative values file to use as the default chart values,
|
||||||
|
expected to be a relative path in the SourceRef. Deprecated in favor
|
||||||
|
of ValuesFiles, for backwards compatibility the file defined here
|
||||||
|
is merged before the ValuesFiles items. Ignored when omitted.
|
||||||
|
type: string
|
||||||
|
valuesFiles:
|
||||||
|
description: Alternative list of values files to use as the chart
|
||||||
|
values (values.yaml is not included by default), expected to be
|
||||||
|
a relative path in the SourceRef. Values files are merged in the
|
||||||
|
order of this list with the last file overriding the first. Ignored
|
||||||
|
when omitted.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
version:
|
||||||
|
default: '*'
|
||||||
|
description: The chart version semver expression, ignored for charts
|
||||||
|
from GitRepository and Bucket sources. Defaults to latest when omitted.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- chart
|
||||||
|
- interval
|
||||||
|
- sourceRef
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
default:
|
||||||
|
observedGeneration: -1
|
||||||
|
description: HelmChartStatus defines the observed state of the HelmChart.
|
||||||
|
properties:
|
||||||
|
artifact:
|
||||||
|
description: Artifact represents the output of the last successful
|
||||||
|
chart sync.
|
||||||
|
properties:
|
||||||
|
checksum:
|
||||||
|
description: Checksum is the SHA256 checksum of the artifact.
|
||||||
|
type: string
|
||||||
|
lastUpdateTime:
|
||||||
|
description: LastUpdateTime is the timestamp corresponding to
|
||||||
|
the last update of this artifact.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
path:
|
||||||
|
description: Path is the relative file path of this artifact.
|
||||||
|
type: string
|
||||||
|
revision:
|
||||||
|
description: Revision is a human readable identifier traceable
|
||||||
|
in the origin source system. It can be a Git commit SHA, Git
|
||||||
|
tag, a Helm index timestamp, a Helm chart version, etc.
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
description: URL is the HTTP address of this artifact.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- path
|
||||||
|
- url
|
||||||
|
type: object
|
||||||
|
conditions:
|
||||||
|
description: Conditions holds the conditions for the HelmChart.
|
||||||
|
items:
|
||||||
|
description: "Condition contains details for one aspect of the current
|
||||||
|
state of this API Resource. --- This struct is intended for direct
|
||||||
|
use as an array at the field path .status.conditions. For example,
|
||||||
|
type FooStatus struct{ // Represents the observations of a
|
||||||
|
foo's current state. // Known .status.conditions.type are:
|
||||||
|
\"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type
|
||||||
|
\ // +patchStrategy=merge // +listType=map // +listMapKey=type
|
||||||
|
\ Conditions []metav1.Condition `json:\"conditions,omitempty\"
|
||||||
|
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
|
||||||
|
\n // other fields }"
|
||||||
|
properties:
|
||||||
|
lastTransitionTime:
|
||||||
|
description: lastTransitionTime is the last time the condition
|
||||||
|
transitioned from one status to another. This should be when
|
||||||
|
the underlying condition changed. If that is not known, then
|
||||||
|
using the time when the API field changed is acceptable.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: message is a human readable message indicating
|
||||||
|
details about the transition. This may be an empty string.
|
||||||
|
maxLength: 32768
|
||||||
|
type: string
|
||||||
|
observedGeneration:
|
||||||
|
description: observedGeneration represents the .metadata.generation
|
||||||
|
that the condition was set based upon. For instance, if .metadata.generation
|
||||||
|
is currently 12, but the .status.conditions[x].observedGeneration
|
||||||
|
is 9, the condition is out of date with respect to the current
|
||||||
|
state of the instance.
|
||||||
|
format: int64
|
||||||
|
minimum: 0
|
||||||
|
type: integer
|
||||||
|
reason:
|
||||||
|
description: reason contains a programmatic identifier indicating
|
||||||
|
the reason for the condition's last transition. Producers
|
||||||
|
of specific condition types may define expected values and
|
||||||
|
meanings for this field, and whether the values are considered
|
||||||
|
a guaranteed API. The value should be a CamelCase string.
|
||||||
|
This field may not be empty.
|
||||||
|
maxLength: 1024
|
||||||
|
minLength: 1
|
||||||
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
description: status of the condition, one of True, False, Unknown.
|
||||||
|
enum:
|
||||||
|
- "True"
|
||||||
|
- "False"
|
||||||
|
- Unknown
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||||
|
--- Many .condition.type values are consistent across resources
|
||||||
|
like Available, but because arbitrary conditions can be useful
|
||||||
|
(see .node.status.conditions), the ability to deconflict is
|
||||||
|
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
||||||
|
maxLength: 316
|
||||||
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- lastTransitionTime
|
||||||
|
- message
|
||||||
|
- reason
|
||||||
|
- status
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
lastHandledReconcileAt:
|
||||||
|
description: LastHandledReconcileAt holds the value of the most recent
|
||||||
|
reconcile request value, so a change can be detected.
|
||||||
|
type: string
|
||||||
|
observedGeneration:
|
||||||
|
description: ObservedGeneration is the last observed generation.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
url:
|
||||||
|
description: URL is the download link for the last chart pulled.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
storage: true
|
storage: true
|
||||||
subresources:
|
subresources:
|
||||||
status: {}
|
status: {}
|
||||||
|
|
|
@ -233,6 +233,224 @@ spec:
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
storage: false
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .spec.url
|
||||||
|
name: URL
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.conditions[?(@.type=="Ready")].status
|
||||||
|
name: Ready
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.conditions[?(@.type=="Ready")].message
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
name: v1beta2
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: HelmRepository is the Schema for the helmrepositories API
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
|
of an object. Servers should convert recognized schemas to the latest
|
||||||
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: 'Kind is a string value representing the REST resource this
|
||||||
|
object represents. Servers may infer this from the endpoint the client
|
||||||
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
description: HelmRepositorySpec defines the reference to a Helm repository.
|
||||||
|
properties:
|
||||||
|
accessFrom:
|
||||||
|
description: AccessFrom defines an Access Control List for allowing
|
||||||
|
cross-namespace references to this object.
|
||||||
|
properties:
|
||||||
|
namespaceSelectors:
|
||||||
|
description: NamespaceSelectors is the list of namespace selectors
|
||||||
|
to which this ACL applies. Items in this list are evaluated
|
||||||
|
using a logical OR operation.
|
||||||
|
items:
|
||||||
|
description: NamespaceSelector selects the namespaces to which
|
||||||
|
this ACL applies. An empty map of MatchLabels matches all
|
||||||
|
namespaces in a cluster.
|
||||||
|
properties:
|
||||||
|
matchLabels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: MatchLabels is a map of {key,value} pairs.
|
||||||
|
A single {key,value} in the matchLabels map is equivalent
|
||||||
|
to an element of matchExpressions, whose key field is
|
||||||
|
"key", the operator is "In", and the values array contains
|
||||||
|
only "value". The requirements are ANDed.
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- namespaceSelectors
|
||||||
|
type: object
|
||||||
|
interval:
|
||||||
|
description: The interval at which to check the upstream for updates.
|
||||||
|
type: string
|
||||||
|
passCredentials:
|
||||||
|
description: PassCredentials allows the credentials from the SecretRef
|
||||||
|
to be passed on to a host that does not match the host as defined
|
||||||
|
in URL. This may be required if the host of the advertised chart
|
||||||
|
URLs in the index differ from the defined URL. Enabling this should
|
||||||
|
be done with caution, as it can potentially result in credentials
|
||||||
|
getting stolen in a MITM-attack.
|
||||||
|
type: boolean
|
||||||
|
secretRef:
|
||||||
|
description: The name of the secret containing authentication credentials
|
||||||
|
for the Helm repository. For HTTP/S basic auth the secret must contain
|
||||||
|
username and password fields. For TLS the secret must contain a
|
||||||
|
certFile and keyFile, and/or caCert fields.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name of the referent
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
suspend:
|
||||||
|
description: This flag tells the controller to suspend the reconciliation
|
||||||
|
of this source.
|
||||||
|
type: boolean
|
||||||
|
timeout:
|
||||||
|
default: 60s
|
||||||
|
description: The timeout of index downloading, defaults to 60s.
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
description: The Helm repository URL, a valid URL contains at least
|
||||||
|
a protocol and host.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- interval
|
||||||
|
- url
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
default:
|
||||||
|
observedGeneration: -1
|
||||||
|
description: HelmRepositoryStatus defines the observed state of the HelmRepository.
|
||||||
|
properties:
|
||||||
|
artifact:
|
||||||
|
description: Artifact represents the output of the last successful
|
||||||
|
repository sync.
|
||||||
|
properties:
|
||||||
|
checksum:
|
||||||
|
description: Checksum is the SHA256 checksum of the artifact.
|
||||||
|
type: string
|
||||||
|
lastUpdateTime:
|
||||||
|
description: LastUpdateTime is the timestamp corresponding to
|
||||||
|
the last update of this artifact.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
path:
|
||||||
|
description: Path is the relative file path of this artifact.
|
||||||
|
type: string
|
||||||
|
revision:
|
||||||
|
description: Revision is a human readable identifier traceable
|
||||||
|
in the origin source system. It can be a Git commit SHA, Git
|
||||||
|
tag, a Helm index timestamp, a Helm chart version, etc.
|
||||||
|
type: string
|
||||||
|
url:
|
||||||
|
description: URL is the HTTP address of this artifact.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- path
|
||||||
|
- url
|
||||||
|
type: object
|
||||||
|
conditions:
|
||||||
|
description: Conditions holds the conditions for the HelmRepository.
|
||||||
|
items:
|
||||||
|
description: "Condition contains details for one aspect of the current
|
||||||
|
state of this API Resource. --- This struct is intended for direct
|
||||||
|
use as an array at the field path .status.conditions. For example,
|
||||||
|
type FooStatus struct{ // Represents the observations of a
|
||||||
|
foo's current state. // Known .status.conditions.type are:
|
||||||
|
\"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type
|
||||||
|
\ // +patchStrategy=merge // +listType=map // +listMapKey=type
|
||||||
|
\ Conditions []metav1.Condition `json:\"conditions,omitempty\"
|
||||||
|
patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`
|
||||||
|
\n // other fields }"
|
||||||
|
properties:
|
||||||
|
lastTransitionTime:
|
||||||
|
description: lastTransitionTime is the last time the condition
|
||||||
|
transitioned from one status to another. This should be when
|
||||||
|
the underlying condition changed. If that is not known, then
|
||||||
|
using the time when the API field changed is acceptable.
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
message:
|
||||||
|
description: message is a human readable message indicating
|
||||||
|
details about the transition. This may be an empty string.
|
||||||
|
maxLength: 32768
|
||||||
|
type: string
|
||||||
|
observedGeneration:
|
||||||
|
description: observedGeneration represents the .metadata.generation
|
||||||
|
that the condition was set based upon. For instance, if .metadata.generation
|
||||||
|
is currently 12, but the .status.conditions[x].observedGeneration
|
||||||
|
is 9, the condition is out of date with respect to the current
|
||||||
|
state of the instance.
|
||||||
|
format: int64
|
||||||
|
minimum: 0
|
||||||
|
type: integer
|
||||||
|
reason:
|
||||||
|
description: reason contains a programmatic identifier indicating
|
||||||
|
the reason for the condition's last transition. Producers
|
||||||
|
of specific condition types may define expected values and
|
||||||
|
meanings for this field, and whether the values are considered
|
||||||
|
a guaranteed API. The value should be a CamelCase string.
|
||||||
|
This field may not be empty.
|
||||||
|
maxLength: 1024
|
||||||
|
minLength: 1
|
||||||
|
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
||||||
|
type: string
|
||||||
|
status:
|
||||||
|
description: status of the condition, one of True, False, Unknown.
|
||||||
|
enum:
|
||||||
|
- "True"
|
||||||
|
- "False"
|
||||||
|
- Unknown
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||||
|
--- Many .condition.type values are consistent across resources
|
||||||
|
like Available, but because arbitrary conditions can be useful
|
||||||
|
(see .node.status.conditions), the ability to deconflict is
|
||||||
|
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
|
||||||
|
maxLength: 316
|
||||||
|
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- lastTransitionTime
|
||||||
|
- message
|
||||||
|
- reason
|
||||||
|
- status
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
lastHandledReconcileAt:
|
||||||
|
description: LastHandledReconcileAt holds the value of the most recent
|
||||||
|
reconcile request value, so a change can be detected.
|
||||||
|
type: string
|
||||||
|
observedGeneration:
|
||||||
|
description: ObservedGeneration is the last observed generation.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
url:
|
||||||
|
description: URL is the download link for the last index fetched.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
storage: true
|
storage: true
|
||||||
subresources:
|
subresources:
|
||||||
status: {}
|
status: {}
|
||||||
|
|
|
@ -2,22 +2,22 @@
|
||||||
<p>Packages:</p>
|
<p>Packages:</p>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li>
|
<li>
|
||||||
<a href="#source.toolkit.fluxcd.io%2fv1beta1">source.toolkit.fluxcd.io/v1beta1</a>
|
<a href="#source.toolkit.fluxcd.io%2fv1beta2">source.toolkit.fluxcd.io/v1beta2</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2 id="source.toolkit.fluxcd.io/v1beta1">source.toolkit.fluxcd.io/v1beta1</h2>
|
<h2 id="source.toolkit.fluxcd.io/v1beta2">source.toolkit.fluxcd.io/v1beta2</h2>
|
||||||
<p>Package v1beta1 contains API Schema definitions for the source v1beta1 API group</p>
|
<p>Package v1beta2 contains API Schema definitions for the source v1beta2 API group</p>
|
||||||
Resource Types:
|
Resource Types:
|
||||||
<ul class="simple"><li>
|
<ul class="simple"><li>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.Bucket">Bucket</a>
|
<a href="#source.toolkit.fluxcd.io/v1beta2.Bucket">Bucket</a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepository">GitRepository</a>
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepository">GitRepository</a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmChart">HelmChart</a>
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmChart">HelmChart</a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmRepository">HelmRepository</a>
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmRepository">HelmRepository</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.Bucket">Bucket
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.Bucket">Bucket
|
||||||
</h3>
|
</h3>
|
||||||
<p>Bucket is the Schema for the buckets API</p>
|
<p>Bucket is the Schema for the buckets API</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -35,7 +35,7 @@ Resource Types:
|
||||||
<code>apiVersion</code><br>
|
<code>apiVersion</code><br>
|
||||||
string</td>
|
string</td>
|
||||||
<td>
|
<td>
|
||||||
<code>source.toolkit.fluxcd.io/v1beta1</code>
|
<code>source.toolkit.fluxcd.io/v1beta2</code>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -65,7 +65,7 @@ Refer to the Kubernetes API documentation for the fields of the
|
||||||
<td>
|
<td>
|
||||||
<code>spec</code><br>
|
<code>spec</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.BucketSpec">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.BucketSpec">
|
||||||
BucketSpec
|
BucketSpec
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -221,7 +221,7 @@ github.com/fluxcd/pkg/apis/acl.AccessFrom
|
||||||
<td>
|
<td>
|
||||||
<code>status</code><br>
|
<code>status</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.BucketStatus">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.BucketStatus">
|
||||||
BucketStatus
|
BucketStatus
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -233,7 +233,7 @@ BucketStatus
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.GitRepository">GitRepository
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.GitRepository">GitRepository
|
||||||
</h3>
|
</h3>
|
||||||
<p>GitRepository is the Schema for the gitrepositories API</p>
|
<p>GitRepository is the Schema for the gitrepositories API</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -251,7 +251,7 @@ BucketStatus
|
||||||
<code>apiVersion</code><br>
|
<code>apiVersion</code><br>
|
||||||
string</td>
|
string</td>
|
||||||
<td>
|
<td>
|
||||||
<code>source.toolkit.fluxcd.io/v1beta1</code>
|
<code>source.toolkit.fluxcd.io/v1beta2</code>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -281,7 +281,7 @@ Refer to the Kubernetes API documentation for the fields of the
|
||||||
<td>
|
<td>
|
||||||
<code>spec</code><br>
|
<code>spec</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositorySpec">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositorySpec">
|
||||||
GitRepositorySpec
|
GitRepositorySpec
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -350,7 +350,7 @@ Kubernetes meta/v1.Duration
|
||||||
<td>
|
<td>
|
||||||
<code>ref</code><br>
|
<code>ref</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositoryRef">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositoryRef">
|
||||||
GitRepositoryRef
|
GitRepositoryRef
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -365,7 +365,7 @@ master branch.</p>
|
||||||
<td>
|
<td>
|
||||||
<code>verify</code><br>
|
<code>verify</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositoryVerification">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositoryVerification">
|
||||||
GitRepositoryVerification
|
GitRepositoryVerification
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -432,7 +432,7 @@ This option is available only when using the ‘go-git’ GitImplementat
|
||||||
<td>
|
<td>
|
||||||
<code>include</code><br>
|
<code>include</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositoryInclude">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositoryInclude">
|
||||||
[]GitRepositoryInclude
|
[]GitRepositoryInclude
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -462,7 +462,7 @@ github.com/fluxcd/pkg/apis/acl.AccessFrom
|
||||||
<td>
|
<td>
|
||||||
<code>status</code><br>
|
<code>status</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositoryStatus">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositoryStatus">
|
||||||
GitRepositoryStatus
|
GitRepositoryStatus
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -474,7 +474,7 @@ GitRepositoryStatus
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.HelmChart">HelmChart
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.HelmChart">HelmChart
|
||||||
</h3>
|
</h3>
|
||||||
<p>HelmChart is the Schema for the helmcharts API</p>
|
<p>HelmChart is the Schema for the helmcharts API</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -492,7 +492,7 @@ GitRepositoryStatus
|
||||||
<code>apiVersion</code><br>
|
<code>apiVersion</code><br>
|
||||||
string</td>
|
string</td>
|
||||||
<td>
|
<td>
|
||||||
<code>source.toolkit.fluxcd.io/v1beta1</code>
|
<code>source.toolkit.fluxcd.io/v1beta2</code>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -522,7 +522,7 @@ Refer to the Kubernetes API documentation for the fields of the
|
||||||
<td>
|
<td>
|
||||||
<code>spec</code><br>
|
<code>spec</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmChartSpec">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmChartSpec">
|
||||||
HelmChartSpec
|
HelmChartSpec
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -559,7 +559,7 @@ and Bucket sources. Defaults to latest when omitted.</p>
|
||||||
<td>
|
<td>
|
||||||
<code>sourceRef</code><br>
|
<code>sourceRef</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.LocalHelmChartSourceReference">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.LocalHelmChartSourceReference">
|
||||||
LocalHelmChartSourceReference
|
LocalHelmChartSourceReference
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -659,7 +659,7 @@ github.com/fluxcd/pkg/apis/acl.AccessFrom
|
||||||
<td>
|
<td>
|
||||||
<code>status</code><br>
|
<code>status</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmChartStatus">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmChartStatus">
|
||||||
HelmChartStatus
|
HelmChartStatus
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -671,7 +671,7 @@ HelmChartStatus
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.HelmRepository">HelmRepository
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.HelmRepository">HelmRepository
|
||||||
</h3>
|
</h3>
|
||||||
<p>HelmRepository is the Schema for the helmrepositories API</p>
|
<p>HelmRepository is the Schema for the helmrepositories API</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -689,7 +689,7 @@ HelmChartStatus
|
||||||
<code>apiVersion</code><br>
|
<code>apiVersion</code><br>
|
||||||
string</td>
|
string</td>
|
||||||
<td>
|
<td>
|
||||||
<code>source.toolkit.fluxcd.io/v1beta1</code>
|
<code>source.toolkit.fluxcd.io/v1beta2</code>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -719,7 +719,7 @@ Refer to the Kubernetes API documentation for the fields of the
|
||||||
<td>
|
<td>
|
||||||
<code>spec</code><br>
|
<code>spec</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmRepositorySpec">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmRepositorySpec">
|
||||||
HelmRepositorySpec
|
HelmRepositorySpec
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -835,7 +835,7 @@ github.com/fluxcd/pkg/apis/acl.AccessFrom
|
||||||
<td>
|
<td>
|
||||||
<code>status</code><br>
|
<code>status</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmRepositoryStatus">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmRepositoryStatus">
|
||||||
HelmRepositoryStatus
|
HelmRepositoryStatus
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -847,14 +847,14 @@ HelmRepositoryStatus
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.Artifact">Artifact
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.Artifact">Artifact
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.BucketStatus">BucketStatus</a>,
|
<a href="#source.toolkit.fluxcd.io/v1beta2.BucketStatus">BucketStatus</a>,
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositoryStatus">GitRepositoryStatus</a>,
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositoryStatus">GitRepositoryStatus</a>,
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmChartStatus">HelmChartStatus</a>,
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmChartStatus">HelmChartStatus</a>,
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmRepositoryStatus">HelmRepositoryStatus</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmRepositoryStatus">HelmRepositoryStatus</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>Artifact represents the output of a source synchronisation.</p>
|
<p>Artifact represents the output of a source synchronisation.</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -933,11 +933,11 @@ artifact.</p>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.BucketSpec">BucketSpec
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.BucketSpec">BucketSpec
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.Bucket">Bucket</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.Bucket">Bucket</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>BucketSpec defines the desired state of an S3 compatible bucket</p>
|
<p>BucketSpec defines the desired state of an S3 compatible bucket</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -1094,11 +1094,11 @@ github.com/fluxcd/pkg/apis/acl.AccessFrom
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.BucketStatus">BucketStatus
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.BucketStatus">BucketStatus
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.Bucket">Bucket</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.Bucket">Bucket</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>BucketStatus defines the observed state of a bucket</p>
|
<p>BucketStatus defines the observed state of a bucket</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -1153,7 +1153,7 @@ string
|
||||||
<td>
|
<td>
|
||||||
<code>artifact</code><br>
|
<code>artifact</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.Artifact">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.Artifact">
|
||||||
Artifact
|
Artifact
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -1182,11 +1182,11 @@ github.com/fluxcd/pkg/apis/meta.ReconcileRequestStatus
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.GitRepositoryInclude">GitRepositoryInclude
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.GitRepositoryInclude">GitRepositoryInclude
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositorySpec">GitRepositorySpec</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositorySpec">GitRepositorySpec</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>GitRepositoryInclude defines a source with a from and to path.</p>
|
<p>GitRepositoryInclude defines a source with a from and to path.</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -1240,11 +1240,11 @@ string
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.GitRepositoryRef">GitRepositoryRef
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.GitRepositoryRef">GitRepositoryRef
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositorySpec">GitRepositorySpec</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositorySpec">GitRepositorySpec</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>GitRepositoryRef defines the Git ref used for pull and checkout operations.</p>
|
<p>GitRepositoryRef defines the Git ref used for pull and checkout operations.</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -1309,11 +1309,11 @@ string
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.GitRepositorySpec">GitRepositorySpec
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.GitRepositorySpec">GitRepositorySpec
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepository">GitRepository</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepository">GitRepository</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>GitRepositorySpec defines the desired state of a Git repository.</p>
|
<p>GitRepositorySpec defines the desired state of a Git repository.</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -1386,7 +1386,7 @@ Kubernetes meta/v1.Duration
|
||||||
<td>
|
<td>
|
||||||
<code>ref</code><br>
|
<code>ref</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositoryRef">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositoryRef">
|
||||||
GitRepositoryRef
|
GitRepositoryRef
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -1401,7 +1401,7 @@ master branch.</p>
|
||||||
<td>
|
<td>
|
||||||
<code>verify</code><br>
|
<code>verify</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositoryVerification">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositoryVerification">
|
||||||
GitRepositoryVerification
|
GitRepositoryVerification
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -1468,7 +1468,7 @@ This option is available only when using the ‘go-git’ GitImplementat
|
||||||
<td>
|
<td>
|
||||||
<code>include</code><br>
|
<code>include</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositoryInclude">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositoryInclude">
|
||||||
[]GitRepositoryInclude
|
[]GitRepositoryInclude
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -1495,11 +1495,11 @@ github.com/fluxcd/pkg/apis/acl.AccessFrom
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.GitRepositoryStatus">GitRepositoryStatus
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.GitRepositoryStatus">GitRepositoryStatus
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepository">GitRepository</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepository">GitRepository</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>GitRepositoryStatus defines the observed state of a Git repository.</p>
|
<p>GitRepositoryStatus defines the observed state of a Git repository.</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -1555,7 +1555,7 @@ sync.</p>
|
||||||
<td>
|
<td>
|
||||||
<code>artifact</code><br>
|
<code>artifact</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.Artifact">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.Artifact">
|
||||||
Artifact
|
Artifact
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -1569,8 +1569,8 @@ Artifact
|
||||||
<td>
|
<td>
|
||||||
<code>includedArtifacts</code><br>
|
<code>includedArtifacts</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.*github.com/fluxcd/source-controller/api/v1beta1.Artifact">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.*github.com/fluxcd/source-controller/api/v1beta2.Artifact">
|
||||||
[]*github.com/fluxcd/source-controller/api/v1beta1.Artifact
|
[]*github.com/fluxcd/source-controller/api/v1beta2.Artifact
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
</td>
|
</td>
|
||||||
|
@ -1598,11 +1598,11 @@ github.com/fluxcd/pkg/apis/meta.ReconcileRequestStatus
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.GitRepositoryVerification">GitRepositoryVerification
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.GitRepositoryVerification">GitRepositoryVerification
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.GitRepositorySpec">GitRepositorySpec</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.GitRepositorySpec">GitRepositorySpec</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>GitRepositoryVerification defines the OpenPGP signature verification process.</p>
|
<p>GitRepositoryVerification defines the OpenPGP signature verification process.</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -1643,11 +1643,11 @@ github.com/fluxcd/pkg/apis/meta.LocalObjectReference
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.HelmChartSpec">HelmChartSpec
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.HelmChartSpec">HelmChartSpec
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmChart">HelmChart</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmChart">HelmChart</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>HelmChartSpec defines the desired state of a Helm chart.</p>
|
<p>HelmChartSpec defines the desired state of a Helm chart.</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -1688,7 +1688,7 @@ and Bucket sources. Defaults to latest when omitted.</p>
|
||||||
<td>
|
<td>
|
||||||
<code>sourceRef</code><br>
|
<code>sourceRef</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.LocalHelmChartSourceReference">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.LocalHelmChartSourceReference">
|
||||||
LocalHelmChartSourceReference
|
LocalHelmChartSourceReference
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -1785,11 +1785,11 @@ github.com/fluxcd/pkg/apis/acl.AccessFrom
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.HelmChartStatus">HelmChartStatus
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.HelmChartStatus">HelmChartStatus
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmChart">HelmChart</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmChart">HelmChart</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>HelmChartStatus defines the observed state of the HelmChart.</p>
|
<p>HelmChartStatus defines the observed state of the HelmChart.</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -1844,7 +1844,7 @@ string
|
||||||
<td>
|
<td>
|
||||||
<code>artifact</code><br>
|
<code>artifact</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.Artifact">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.Artifact">
|
||||||
Artifact
|
Artifact
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -1873,11 +1873,11 @@ github.com/fluxcd/pkg/apis/meta.ReconcileRequestStatus
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.HelmRepositorySpec">HelmRepositorySpec
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.HelmRepositorySpec">HelmRepositorySpec
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmRepository">HelmRepository</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmRepository">HelmRepository</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>HelmRepositorySpec defines the reference to a Helm repository.</p>
|
<p>HelmRepositorySpec defines the reference to a Helm repository.</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -1994,11 +1994,11 @@ github.com/fluxcd/pkg/apis/acl.AccessFrom
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.HelmRepositoryStatus">HelmRepositoryStatus
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.HelmRepositoryStatus">HelmRepositoryStatus
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmRepository">HelmRepository</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmRepository">HelmRepository</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>HelmRepositoryStatus defines the observed state of the HelmRepository.</p>
|
<p>HelmRepositoryStatus defines the observed state of the HelmRepository.</p>
|
||||||
<div class="md-typeset__scrollwrap">
|
<div class="md-typeset__scrollwrap">
|
||||||
|
@ -2053,7 +2053,7 @@ string
|
||||||
<td>
|
<td>
|
||||||
<code>artifact</code><br>
|
<code>artifact</code><br>
|
||||||
<em>
|
<em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.Artifact">
|
<a href="#source.toolkit.fluxcd.io/v1beta2.Artifact">
|
||||||
Artifact
|
Artifact
|
||||||
</a>
|
</a>
|
||||||
</em>
|
</em>
|
||||||
|
@ -2082,11 +2082,11 @@ github.com/fluxcd/pkg/apis/meta.ReconcileRequestStatus
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.LocalHelmChartSourceReference">LocalHelmChartSourceReference
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.LocalHelmChartSourceReference">LocalHelmChartSourceReference
|
||||||
</h3>
|
</h3>
|
||||||
<p>
|
<p>
|
||||||
(<em>Appears on:</em>
|
(<em>Appears on:</em>
|
||||||
<a href="#source.toolkit.fluxcd.io/v1beta1.HelmChartSpec">HelmChartSpec</a>)
|
<a href="#source.toolkit.fluxcd.io/v1beta2.HelmChartSpec">HelmChartSpec</a>)
|
||||||
</p>
|
</p>
|
||||||
<p>LocalHelmChartSourceReference contains enough information to let you locate
|
<p>LocalHelmChartSourceReference contains enough information to let you locate
|
||||||
the typed referenced object at namespace level.</p>
|
the typed referenced object at namespace level.</p>
|
||||||
|
@ -2139,7 +2139,7 @@ string
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="source.toolkit.fluxcd.io/v1beta1.Source">Source
|
<h3 id="source.toolkit.fluxcd.io/v1beta2.Source">Source
|
||||||
</h3>
|
</h3>
|
||||||
<p>Source interface must be supported by all API types.</p>
|
<p>Source interface must be supported by all API types.</p>
|
||||||
<div class="admonition note">
|
<div class="admonition note">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2020 The Flux authors
|
Copyright 2022 The Flux authors
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
|
Loading…
Reference in New Issue