From dbe1690f880c51600b18543bdd1d237bc484f980 Mon Sep 17 00:00:00 2001 From: lgtm <1gtm@users.noreply.github.com> Date: Fri, 17 Jun 2022 02:56:55 -0700 Subject: [PATCH] Prepare for release v0.3.0 (#14) ProductLine: Stash Release: v2022.06.21 Release-tracker: https://github.com/stashed/CHANGELOG/pull/49 Signed-off-by: 1gtm <1gtm@appscode.com> Signed-off-by: Tamal Saha --- go.mod | 2 +- go.sum | 4 +- pkg/registry/ui/backups/backupoverview.go | 2 +- vendor/modules.txt | 2 +- .../stash/v1beta1/backup_blueprint_types.go | 7 + .../apis/stash/v1beta1/openapi_generated.go | 15 +- .../stash/v1beta1/zz_generated.deepcopy.go | 5 + .../stash.appscode.com_backupblueprints.yaml | 310 ++++++++++++++++++ 8 files changed, 341 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 16c39231..96aea7d6 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( kmodules.xyz/custom-resources v0.24.0 kmodules.xyz/resource-metrics v0.10.1 sigs.k8s.io/controller-runtime v0.12.1 - stash.appscode.dev/apimachinery v0.20.2-0.20220603214858-b90c85f4fd8c + stash.appscode.dev/apimachinery v0.21.0 ) require ( diff --git a/go.sum b/go.sum index 8641c733..1740d01f 100644 --- a/go.sum +++ b/go.sum @@ -1176,5 +1176,5 @@ sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZa sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= -stash.appscode.dev/apimachinery v0.20.2-0.20220603214858-b90c85f4fd8c h1:PTOrFNN26IZwIEWbKNTfXh6SdOdiRyDKMettJ05gjlc= -stash.appscode.dev/apimachinery v0.20.2-0.20220603214858-b90c85f4fd8c/go.mod h1:mtxrytXCX8271F5xVMKTwVPoERs6XbhLZlhRKJU08uI= +stash.appscode.dev/apimachinery v0.21.0 h1:uK4IAuT3+V7b2/sQAWslQ3iT8agN6qgy58gg9W51rhk= +stash.appscode.dev/apimachinery v0.21.0/go.mod h1:mtxrytXCX8271F5xVMKTwVPoERs6XbhLZlhRKJU08uI= diff --git a/pkg/registry/ui/backups/backupoverview.go b/pkg/registry/ui/backups/backupoverview.go index 01adc071..e7e1ab05 100644 --- a/pkg/registry/ui/backups/backupoverview.go +++ b/pkg/registry/ui/backups/backupoverview.go @@ -220,7 +220,7 @@ func (r *BackupOverviewStorage) getBackupOverview(ctx context.Context, cfg *stas result.Spec.Status = uiapi.BackupStatusActive } result.UID = "bkovw-" + cfg.GetUID() - result.SelfLink = "" + // result.SelfLink = "" result.ManagedFields = nil result.OwnerReferences = nil result.Finalizers = nil diff --git a/vendor/modules.txt b/vendor/modules.txt index 0fe8392a..42572a52 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1313,7 +1313,7 @@ sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.3.0 ## explicit; go 1.12 sigs.k8s.io/yaml -# stash.appscode.dev/apimachinery v0.20.2-0.20220603214858-b90c85f4fd8c +# stash.appscode.dev/apimachinery v0.21.0 ## explicit; go 1.18 stash.appscode.dev/apimachinery/apis/stash stash.appscode.dev/apimachinery/apis/stash/install diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_blueprint_types.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_blueprint_types.go index 24480cab..6805c10d 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_blueprint_types.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/backup_blueprint_types.go @@ -77,11 +77,18 @@ type BackupBlueprintSpec struct { // Don't specify it in sidecar model. // +optional InterimVolumeTemplate *ofst.PersistentVolumeClaim `json:"interimVolumeTemplate,omitempty"` + // Hooks specifies the actions Stash should execute before or after backup. + // +optional + Hooks *BackupHooks `json:"hooks,omitempty"` // BackupHistoryLimit specifies the number of BackupSession and it's associate resources to keep. // This is helpful for debugging purpose. // Default: 1 // +optional BackupHistoryLimit *int32 `json:"backupHistoryLimit,omitempty"` + // TimeOut specifies the maximum duration of backup. BackupSession will be considered Failed + // if backup does not complete within this time limit. By default, Stash don't set any timeout for backup. + // +optional + TimeOut string `json:"timeOut,omitempty"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go index 392d4365..f1da526d 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/openapi_generated.go @@ -20056,6 +20056,12 @@ func schema_apimachinery_apis_stash_v1beta1_BackupBlueprintSpec(ref common.Refer Ref: ref("kmodules.xyz/offshoot-api/api/v1.PersistentVolumeClaim"), }, }, + "hooks": { + SchemaProps: spec.SchemaProps{ + Description: "Hooks specifies the actions Stash should execute before or after backup.", + Ref: ref("stash.appscode.dev/apimachinery/apis/stash/v1beta1.BackupHooks"), + }, + }, "backupHistoryLimit": { SchemaProps: spec.SchemaProps{ Description: "BackupHistoryLimit specifies the number of BackupSession and it's associate resources to keep. This is helpful for debugging purpose. Default: 1", @@ -20063,12 +20069,19 @@ func schema_apimachinery_apis_stash_v1beta1_BackupBlueprintSpec(ref common.Refer Format: "int32", }, }, + "timeOut": { + SchemaProps: spec.SchemaProps{ + Description: "TimeOut specifies the maximum duration of backup. BackupSession will be considered Failed if backup does not complete within this time limit. By default, Stash don't set any timeout for backup.", + Type: []string{"string"}, + Format: "", + }, + }, }, Required: []string{"retentionPolicy"}, }, }, Dependencies: []string{ - "kmodules.xyz/objectstore-api/api/v1.Backend", "kmodules.xyz/offshoot-api/api/v1.PersistentVolumeClaim", "kmodules.xyz/offshoot-api/api/v1.RuntimeSettings", "stash.appscode.dev/apimachinery/apis/stash/v1alpha1.RetentionPolicy", "stash.appscode.dev/apimachinery/apis/stash/v1alpha1.UsagePolicy", "stash.appscode.dev/apimachinery/apis/stash/v1beta1.EmptyDirSettings", "stash.appscode.dev/apimachinery/apis/stash/v1beta1.TaskRef"}, + "kmodules.xyz/objectstore-api/api/v1.Backend", "kmodules.xyz/offshoot-api/api/v1.PersistentVolumeClaim", "kmodules.xyz/offshoot-api/api/v1.RuntimeSettings", "stash.appscode.dev/apimachinery/apis/stash/v1alpha1.RetentionPolicy", "stash.appscode.dev/apimachinery/apis/stash/v1alpha1.UsagePolicy", "stash.appscode.dev/apimachinery/apis/stash/v1beta1.BackupHooks", "stash.appscode.dev/apimachinery/apis/stash/v1beta1.EmptyDirSettings", "stash.appscode.dev/apimachinery/apis/stash/v1beta1.TaskRef"}, } } diff --git a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go index fb1eb783..ac9c81fd 100644 --- a/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go +++ b/vendor/stash.appscode.dev/apimachinery/apis/stash/v1beta1/zz_generated.deepcopy.go @@ -229,6 +229,11 @@ func (in *BackupBlueprintSpec) DeepCopyInto(out *BackupBlueprintSpec) { *out = new(apiv1.PersistentVolumeClaim) (*in).DeepCopyInto(*out) } + if in.Hooks != nil { + in, out := &in.Hooks, &out.Hooks + *out = new(BackupHooks) + (*in).DeepCopyInto(*out) + } if in.BackupHistoryLimit != nil { in, out := &in.BackupHistoryLimit, &out.BackupHistoryLimit *out = new(int32) diff --git a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupblueprints.yaml b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupblueprints.yaml index d3e4f5a3..4704bf8e 100644 --- a/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupblueprints.yaml +++ b/vendor/stash.appscode.dev/apimachinery/crds/stash.appscode.com_backupblueprints.yaml @@ -1653,6 +1653,311 @@ spec: etc.) will be created. If you don't provide this field, then the backup resources will be created in the target namespace. type: string + hooks: + description: Hooks specifies the actions Stash should execute before + or after backup. + properties: + postBackup: + description: PostBackup is called immediately after a backup session + is complete. + properties: + containerName: + description: ContainerName specifies the name of the container + where to execute the commands for Exec probe or where to + find the port for HTTP or TCP probe + type: string + exec: + description: One and only one of the following should be specified. + Exec specifies the action to take. + properties: + command: + description: Command is the command line to execute inside + the container, the working directory for the command is + root ('/') in the container's filesystem. The command + is simply exec'd, it is not run inside a shell, so traditional + shell instructions ('|', etc) won't work. To use a shell, + you need to explicitly call out to that shell. Exit + status of 0 is treated as live/healthy and non-zero + is unhealthy. + items: + type: string + type: array + type: object + httpGet: + description: HTTPGet specifies the http Get request to perform. + properties: + host: + description: Host name to connect to, defaults to the + pod IP. You probably want to set "Host" in httpHeaders + instead. + type: string + httpHeaders: + description: Custom headers to set in the request. HTTP + allows repeated headers. + items: + description: HTTPHeader describes a custom header to + be used in HTTP probes + properties: + name: + description: The header field name + type: string + value: + description: The header field value + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + anyOf: + - type: integer + - type: string + description: Name or number of the port to access on the + container. Number must be in the range 1 to 65535. Name + must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. + Defaults to HTTP. + type: string + required: + - port + type: object + httpPost: + description: HTTPPost specifies the http Post request to perform. + properties: + body: + description: Body to set in the request. + type: string + form: + description: Form to set in the request body. + items: + properties: + key: + type: string + values: + items: + type: string + type: array + type: object + type: array + host: + description: Host name to connect to, defaults to the + pod IP. You probably want to set "Host" in httpHeaders + instead. + type: string + httpHeaders: + description: Custom headers to set in the request. HTTP + allows repeated headers. + items: + description: HTTPHeader describes a custom header to + be used in HTTP probes + properties: + name: + description: The header field name + type: string + value: + description: The header field value + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + anyOf: + - type: integer + - type: string + description: Name or number of the port to access on the + container. Number must be in the range 1 to 65535. Name + must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. + Defaults to HTTP. + type: string + required: + - port + type: object + tcpSocket: + description: 'TCPSocket specifies an action involving a TCP + port. TCP hooks not yet supported TODO: implement a realistic + TCP lifecycle hook' + properties: + host: + description: 'Optional: Host name to connect to, defaults + to the pod IP.' + type: string + port: + anyOf: + - type: integer + - type: string + description: Number or name of the port to access on the + container. Number must be in the range 1 to 65535. Name + must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preBackup: + description: PreBackup is called immediately before a backup session + is initiated. + properties: + containerName: + description: ContainerName specifies the name of the container + where to execute the commands for Exec probe or where to + find the port for HTTP or TCP probe + type: string + exec: + description: One and only one of the following should be specified. + Exec specifies the action to take. + properties: + command: + description: Command is the command line to execute inside + the container, the working directory for the command is + root ('/') in the container's filesystem. The command + is simply exec'd, it is not run inside a shell, so traditional + shell instructions ('|', etc) won't work. To use a shell, + you need to explicitly call out to that shell. Exit + status of 0 is treated as live/healthy and non-zero + is unhealthy. + items: + type: string + type: array + type: object + httpGet: + description: HTTPGet specifies the http Get request to perform. + properties: + host: + description: Host name to connect to, defaults to the + pod IP. You probably want to set "Host" in httpHeaders + instead. + type: string + httpHeaders: + description: Custom headers to set in the request. HTTP + allows repeated headers. + items: + description: HTTPHeader describes a custom header to + be used in HTTP probes + properties: + name: + description: The header field name + type: string + value: + description: The header field value + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + anyOf: + - type: integer + - type: string + description: Name or number of the port to access on the + container. Number must be in the range 1 to 65535. Name + must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. + Defaults to HTTP. + type: string + required: + - port + type: object + httpPost: + description: HTTPPost specifies the http Post request to perform. + properties: + body: + description: Body to set in the request. + type: string + form: + description: Form to set in the request body. + items: + properties: + key: + type: string + values: + items: + type: string + type: array + type: object + type: array + host: + description: Host name to connect to, defaults to the + pod IP. You probably want to set "Host" in httpHeaders + instead. + type: string + httpHeaders: + description: Custom headers to set in the request. HTTP + allows repeated headers. + items: + description: HTTPHeader describes a custom header to + be used in HTTP probes + properties: + name: + description: The header field name + type: string + value: + description: The header field value + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + anyOf: + - type: integer + - type: string + description: Name or number of the port to access on the + container. Number must be in the range 1 to 65535. Name + must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. + Defaults to HTTP. + type: string + required: + - port + type: object + tcpSocket: + description: 'TCPSocket specifies an action involving a TCP + port. TCP hooks not yet supported TODO: implement a realistic + TCP lifecycle hook' + properties: + host: + description: 'Optional: Host name to connect to, defaults + to the pod IP.' + type: string + port: + anyOf: + - type: integer + - type: string + description: Number or name of the port to access on the + container. Number must be in the range 1 to 65535. Name + must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object interimVolumeTemplate: description: InterimVolumeTemplate specifies a template for a volume to hold targeted data temporarily before uploading to backend or @@ -4390,6 +4695,11 @@ spec: pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: object + timeOut: + description: TimeOut specifies the maximum duration of backup. BackupSession + will be considered Failed if backup does not complete within this + time limit. By default, Stash don't set any timeout for backup. + type: string usagePolicy: description: UsagePolicy specifies a policy of how this Repository will be used. For example, you can use `allowedNamespaces` policy