Skip to content

Velero AWS plugin with Swift S3 Endpoint #47

@mikeruu

Description

@mikeruu

Describe the bug
Using the Velero AWS plugin with Openstack Flex Swift S3 endpoint wont work because the AWS plugin will use chunking which is not currently supported in the Swift S3 API.

 error putting object backups/test2/test2-logs.gz: operation error S3: PutObject, │
│  https response error StatusCode: 501, RequestID: tx96521862886b424c917ab-006931e1eeiad3, HostID: tx96521862886b424c917ab-006931e1eeiad3, api error NotImplemented: Transfering payloads in multiple chunks using aws-chunked is not sup ││ ported."

To Reproduce
Steps to reproduce the behavior:

velero helm override-values.yaml

---
credentials:
  existingSecret: "cloud-credentials"
configuration:
  backupStorageLocation:
    - name: iad3-flex-3de44c83-aa83-4a92-a992-a266c3811556
      default: true
      bucket: k8s-dr-velero
      provider: aws

      objectStorage:
        bucket: k8s-dr-velero
        prefix: k8s-dr

      config:
        region: IAD3
        s3ForcePathStyle: "true"
        s3Url: https://swift.api.iad3.rackspacecloud.com

  volumeSnapshotLocation:
    - name: aws
      provider: aws
      config:
        # optional Cloud:
        #   in case clouds.yaml is used as authentication method, cloud allows
        #   user to select which cloud from the clouds.yaml to use for volume backups
        cloud: ""
        # optional Region:
        #   in case multiple regions exist in a single cloud, select which region
        #   will be used for cinder volume backups.
        region: "IAD3"
        enableSharedConfig: true
        # optional snapshot method:
        # * "snapshot" is a default cinder snapshot method
        # * "clone" is for a full volume clone instead of a snapshot allowing the
        # source volume to be deleted
        # * "backup" is for a full volume backup uploaded to a Cinder backup
        # allowing the source volume to be deleted (EXPERIMENTAL)
        # * "image" is for a full volume backup uploaded to a Glance image
        # allowing the source volume to be deleted (EXPERIMENTAL)
        # requires the "enable_force_upload" Cinder option to be enabled on the server
        method: snapshot
        # optional resource readiness timeouts in Golang time format: https://pkg.go.dev/time#ParseDuration
        # (default: 5m)
        volumeTimeout: 5m
        snapshotTimeout: 5m
        cloneTimeout: 5m
        backupTimeout: 5m
        imageTimeout: 5m
        # ensures that the Cinder volume/snapshot is removed
        # if an original snapshot volume was marked to be deleted, the volume may
        # end up in "error_deleting" status.
        # if the volume/snapshot is in "error_deleting" status, the plugin will try to reset
        # its status (usually extra admin permissions are required) and delete it again
        # within the defined "snapshotTimeout" or "cloneTimeout"
        ensureDeleted: "true"
        # a delay to wait between delete/reset actions when "ensureDeleted" is enabled
        ensureDeletedDelay: 10s
        # deletes all dependent volume resources (i.e. snapshots) before deleting
        # the clone volume (works only, when a snapshot method is set to clone)
        cascadeDelete: "true"
        # backups will be created incrementally (works only when snapshot method is set to backup)
        backupIncremental: "true"
  
  features: EnableCSI

initContainers:
  - name: velero-plugin-aws
    image: velero/velero-plugin-for-aws:v1.13.0
    imagePullPolicy: IfNotPresent
    volumeMounts:
      - mountPath: /target
        name: plugins
snapshotsEnabled: true
backupsEnabled: true
extraObjects:
  - apiVersion: snapshot.storage.k8s.io/v1
    kind: VolumeSnapshotClass
    metadata:
      name: vsphere-snapshot-class
      labels:
        velero.io/csi-volumesnapshot-class: "true"
    driver: csi.vsphere.vmware.com
    deletionPolicy: Delete
[default] 
aws_access_key_id =  
aws_secret_access_key = 

apiVersion: v1
data:
  cloud: W2RlZmF1bHRdIAp
kind: Secret
metadata:
  creationTimestamp: null
  name: cloud-credentials
  namespace: velero


Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Server (please complete the following information):

  • OS: [e.g. Ubuntu]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions