Skip to main content
Version: 3.2

Portworx Object Service Reference

Environment Variables

Various settings are available for setting up the Portworx Object Service controller and further configuring how it operates. This reference page includes all possible configurations.

Portworx Operator

In the StorageCluster Stork spec, the following argument enables the Portworx Object Service:

spec:
...
stork:
enabled: true
args:
px-object-controller: "true"

Portworx Enterprise

Set the following environment variables in the StorageCluster spec.env to customize the Portworx Object Service credentials:

  • OBJECT_SERVICE_S3_ACCESS_KEY_ID: An AWS S3 Access Key ID credential generated in the AWS Portal.
  • OBJECT_SERVICE_S3_SECRET_ACCESS_KEY: An AWS S3 Secret Access Key credential generated in the AWS Portal.
  • OBJECT_SERVICE_FB_ACCESS_KEY_ID: A Pure FlashBlade Access Key ID credential provided by the FlashBlade admin.
  • OBJECT_SERVICE_FB_SECRET_ACCESS_KEY: A Pure FlashBlade Secret Access Key credential provided by the FlashBlade admin.

Stork

Set the following environment variables in the StorageCluster spec.stork.env to customize the Portworx Object Service controller:

  • WORKER_THREADS: The number of worker threads to use in the Portworx Object Service Stork controller. Default is 4.
  • RETRY_INTERVAL_START: Initial retry interval of failed bucket creation/access or deletion/revoke. It doubles with each failure, up to retry-interval-max. Default is 1 second.
  • RETRY_INTERVAL_MAX: Maximum retry interval of failed bucket/access creation or deletion/revoke. Default is 5 minutes.

CustomResourceDefinitions

The Portworx Object Service introduces multiple new Kubernetes objects to allow for easy provisioning and access to object backends:

PXBucketClass

The PXBucketClass serves as a template for creating new BucketClaim and BucketAccess objects. It contains the necessary metadata for interacting with different backends.

Example

apiVersion: object.portworx.io/v1alpha1
kind: PXBucketClass
metadata:
name: <name>
region: <region>
deletionPolicy: [ Delete | Retain ]
parameters:
object.portworx.io/backend-type: [ S3Driver | PureFBDriver ]
object.portworx.io/endpoint: <S3-endpoint>
object.portworx.io/clear-bucket: [ true | false ]

Schema

FieldDescriptionTypeDefault
regionThe region to be used for your backend object provider.stringNone
deletionPolicyIndicates whether the bucket should be deleted in the backend object provider or not. Available options are only Delete or RetainstringNone
parameters[object.portworx.io/backend-type]The backend object provider to use for this PXBucketClass. Supported options are S3Driver or PureFBDriverstringNone
parameters[object.portworx.io/endpoint]The endpoint to use for connecting to the backend object provider.stringDetected based on region
parameters[object.portworx.io/clear-bucket]Indicates whether or not to delete all objects when a bucket is being deleted. If objects exist in a bucket and this is set to false, the deletion may fail.string"false"

PXBucketClaim

The PXBucketClaim object represents a new bucket in the backend object system.

Example

apiVersion: object.portworx.io/v1alpha1
kind: PXBucketClaim
metadata:
name: <name>
namespace: <namespace>
spec:
bucketClassName: <bucket-class-name>

Schema

FieldDescriptionTypeDefault
spec.bucketClassNameThe name of the PXBucketClass to use when provisioning a new bucketstringNone

PXBucketAccess

The PXBucketAccess object controls how access is provisioned to a PXBucketClaim or a pre-existing bucketId in the backend system.

Example

apiVersion: object.portworx.io/v1alpha1
kind: PXBucketAccess
metadata:
name: <name>
namespace: <namespace>
spec:
bucketClassName: <bucket-class-name>
bucketClaimName: <bucket-claim-name>
existingBucketId: <pre-existing-bucket-id>

Schema

FieldDescriptionTypeDefault
spec.bucketClassNameThe name of the PXBucketClass to use when provisioning a new bucketstringNone
spec.bucketClaimNameThe name of the PXBucketClaim to reference when providing access to a new bucketstringNone
spec.existingBucketIdThe optional bucket ID in the backend object provider for providing access to an existing bucketstringNone