From ddd7d7f379d8e25b4d22a461bc023c0ded648f44 Mon Sep 17 00:00:00 2001 From: 1gtm <1gtm@appscode.com> Date: Fri, 17 Jun 2022 09:04:34 +0000 Subject: [PATCH] Prepare for release v0.21.0 ProductLine: Stash Release: v2022.06.21 Release-tracker: https://github.com/stashed/CHANGELOG/pull/49 Signed-off-by: 1gtm <1gtm@appscode.com> --- go.mod | 2 +- go.sum | 4 +- 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 ++++++++++++++++++ 7 files changed, 340 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 586641ea9..898456c1c 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( kmodules.xyz/openshift v0.24.0 kmodules.xyz/prober v0.24.0 kmodules.xyz/webhook-runtime v0.24.0 - 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 b99086d9f..c6b3e38af 100644 --- a/go.sum +++ b/go.sum @@ -1627,5 +1627,5 @@ sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= 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/vendor/modules.txt b/vendor/modules.txt index 827838317..0bc74d358 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1719,7 +1719,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.appscode.dev/apimachinery/apis/repositories 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 24480cab9..6805c10d6 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 392d4365c..f1da526d2 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 fb1eb7839..ac9c81fd4 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 d3e4f5a3a..4704bf8ec 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