Versions objects in a Swift container, by pattern-matching filenames to identify version numbers.
This resource is heavily inspired by the official S3 resource
To use the Swift Resource, you must declare it in your pipeline as a resource type:
resource_types:
- name: swift
type: docker-image
source:
repository: databus23/concourse-swift-resource
In your bosh deployment manifest, add to the following to the groundcrew.additional_resource_types
:
- image: docker:///databus23/concourse-swift-resource
type: swift
-
auth_url
: Required. The url for authentication (Keystone) -
username
: Required. The username to use when accessing the container. -
api_key
: Required. The password of the given user. -
domain
: Required. The domain of the user -
tenant_id
: Required. The project id -
container
: Required The swift container -
regex
: Required The pattern to match filenames against. The first grouped match is used to extract the version. The extracted version needs to be parseable by go-version -
disable_tls_verify
: Disable certificate verification for https connections to keystone and swift. Default: false
Objects will be found via the pattern configured by regex
. The versions
will be used to order them (using semver). Each
object's filename is the resulting version.
Places the following files in the destination:
$objectname
: The object fetched from the container.filename
: Contains the filename of the fetched object ($objectname).version
: Contains the version extracted from the file name.
None.
Given a path specified by from
, upload it to the Swift container. The path must identify a single file. The filename must conform to the regex
specified in the resource.
-
from
: Required. A regexp specifying the file to upload. -
segment_container
: Optional Name of the container where segments should be stored. Segments will be created for files larger than 1 GB. (Default: ${container}_segments) -
segment_size
: Optional Size of segments (Default: 1073741824 Byte) (1 GB) -
delete_after
: Optional Instruct Swift to schedule automatic deletion of the Object inn
seconds (Default: disabled). Useful to define Object retention policies.
- name: myapp
type: swift
source:
username: user
api_key: secret
auth_url: http://somewhere.at.keystone:5000/v3
domain: somedomain
container: mycontainer
regex: myapp-([.0-9])+\.tgz
tenant_id: tenantid
- get: myapp
- put: myapp
params:
from: a-task/build/path/file-(.*).tgz
segment_container: mysegmentcontainer
segment_size: 1073741824
delete_after: 3600