From 133904d025e0791bb060c85a1107bcab6a080472 Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Fri, 18 Sep 2020 14:01:28 +0300 Subject: [PATCH] Add Bucket type to source API spec --- docs/diagrams/source-controller-overview.png | Bin 33983 -> 45175 bytes docs/spec/v1alpha1/README.md | 3 +- docs/spec/v1alpha1/buckets.md | 232 +++++++++++++++++++ 3 files changed, 234 insertions(+), 1 deletion(-) create mode 100644 docs/spec/v1alpha1/buckets.md diff --git a/docs/diagrams/source-controller-overview.png b/docs/diagrams/source-controller-overview.png index 6d4f4c7abd4a9ab4aaba76cdb1989acaba687583..554c005403e01d12cee25bc10f5db17107e50aad 100644 GIT binary patch literal 45175 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 literal 33983 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 diff --git a/docs/spec/v1alpha1/README.md b/docs/spec/v1alpha1/README.md index accb209e..bdb5b519 100644 --- a/docs/spec/v1alpha1/README.md +++ b/docs/spec/v1alpha1/README.md @@ -9,7 +9,8 @@ This is the v1alpha1 API specification for defining the desired state sources of + [GitRepository](gitrepositories.md) + [HelmRepository](helmrepositories.md) + [HelmChart](helmcharts.md) - + + [Bucket](buckets.md) + ## Implementation * [source-controller](https://github.com/fluxcd/source-controller/) diff --git a/docs/spec/v1alpha1/buckets.md b/docs/spec/v1alpha1/buckets.md new file mode 100644 index 00000000..fe1c8a05 --- /dev/null +++ b/docs/spec/v1alpha1/buckets.md @@ -0,0 +1,232 @@ +# Object storage buckets + +The `Bucket` API defines a source for artifacts coming from S3 compatible storage +such as Minio, Amazon S3, Google Cloud Storage, Alibaba Cloud OSS and others. + +## Specification + +Bucket: + +```go +type BucketSpec struct { + // The S3 compatible storage provider name, default ('generic'). + // +kubebuilder:validation:Enum=generic;aws + // +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 secret name containing the bucket accesskey and secretkey. + // +optional + SecretRef *corev1.LocalObjectReference `json:"secretRef,omitempty"` + + // The interval at which to check for bucket updates. + // +required + Interval metav1.Duration `json:"interval"` + + // The timeout for download operations, default ('20s'). + // +optional + Timeout *metav1.Duration `json:"timeout,omitempty"` + + // Ignore overrides the set of excluded patterns in the .sourceignore + // format (which is the same as .gitignore). + // +optional + Ignore *string `json:"ignore,omitempty"` +} +``` + +Supported providers: + +```go +const ( + GenericBucketProvider string = "generic" + AmazonBucketProvider string = "aws" +) +``` + +### Status + +```go +// 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 []SourceCondition `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"` +} +``` + +### Condition reasons + +```go +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" +) +``` + +## Artifact + +The resource exposes the latest synchronized state from S3 as an artifact +in a gzip compressed TAR archive (`.tar.gz`). + +### Excluding files + +Git files (`.git/`, `.gitignore`, `.gitmodules`, and `.gitattributes`) are +excluded from the archive by default, as well as some extensions (`.jpg, .jpeg, +.gif, .png, .wmv, .flv, .tar.gz, .zip`) + +Excluding additional files from the archive is possible by adding a +`.sourceignore` file in the root of the bucket. The `.sourceignore` file +follows [the `.gitignore` pattern +format](https://git-scm.com/docs/gitignore#_pattern_format), pattern +entries may overrule default exclusions. + +Another option is to use the `spec.ignore` field, for example: + +```yaml +apiVersion: source.toolkit.fluxcd.io/v1alpha1 +kind: Bucket +metadata: + name: podinfo +spec: + ignore: | + # exclude all + /* + # include deploy dir + !/deploy + # exclude file extensions from deploy dir + /deploy/**/*.md + /deploy/**/*.txt +``` + +When specified, `spec.ignore` overrides the default exclusion list. + +## Spec examples + +### Static authentication + +Authentication credentials can be provided with a Kubernetes secret that contains +`accesskey` and `secretkey` fields: + +```yaml +apiVersion: source.toolkit.fluxcd.io/v1alpha1 +kind: Bucket +metadata: + name: podinfo + namespace: gitops-system +spec: + interval: 1m + provider: generic + bucketName: podinfo + endpoint: minio.minio.svc.cluster.local:9000 + insecure: true + secretRef: + name: minio-credentials +--- +apiVersion: v1 +kind: Secret +metadata: + name: minio-credentials + namespace: gitops-system +type: Opaque +data: + accesskey: + secretkey: +``` + +> **Note:** that for Google Cloud Storage you have to enable +> S3 compatible access in your GCP project. + +### AWS IAM authentication + +When the provider is `aws` and the `secretRef` is not specified, +the credentials are retrieve from the EC2 service: + +```yaml +apiVersion: source.toolkit.fluccd.io/v1alpha1 +kind: Bucket +metadata: + name: podinfo + namespace: gitops-system +spec: + interval: 5m + provider: aws + bucketName: podinfo + endpoint: s3.amazonaws.com + region: us-east-1 + timeout: 30s +``` + +> **Note:** that on EKS you have to create an IAM role for the source-controller +> service account that grants access to the bucket. + +## Status examples + +Successful download: + +```yaml + status: + artifact: + checksum: b249024b8544521792a079c4037d0a06dd0497a9 + lastUpdateTime: "2020-09-18T08:34:49Z" + path: bucket/gitops-system/podinfo/aeaba8b6dd51c53084f99b098cfae4f5148ad410.tar.gz + revision: aeaba8b6dd51c53084f99b098cfae4f5148ad410 + url: http://localhost:9090/bucket/gitops-system/podinfo/aeaba8b6dd51c53084f99b098cfae4f5148ad410.tar.gz + conditions: + - lastTransitionTime: "2020-09-18T08:34:49Z" + message: 'Fetched revision: aeaba8b6dd51c53084f99b098cfae4f5148ad410' + reason: BucketOperationSucceed + status: "True" + type: Ready + observedGeneration: 2 + url: http://localhost:9090/bucket/gitops-system/podinfo/latest.tar.gz +``` + +Failed download: + +```yaml +status: + conditions: + - lastTransitionTime: "2020-09-18T08:34:49Z" + message: "bucket 'test' not found" + reason: BucketOperationFailed + status: "False" + type: Ready +``` + +Wait for ready condition: + +```bash +kubectl -n gitios-system wait bucket/podinfo --for=condition=ready --timeout=1m +```