Skip to content

canonical/s3-integrator

Repository files navigation

S3-integrator

Charmhub Release Tests

Description

An operator charm providing an integrator for connecting to S3 provides.

Usage

Warning

This README uses Juju 3 commands.

If you are using Juju <= 2.9, check the collapsible sections below code blocks.

Deploying the S3 Integrator

Charmhub

juju deploy s3-integrator --channel edge

From source

git clone https://github.com/canonical/s3-integrator.git
cd s3-integrator/
lxd init --auto
lxc network set lxdbr0 ipv6.address none
sudo snap install charmcraft --classic
charmcraft pack

Then,

juju deploy ./s3-integrator_ubuntu-22.04-amd64.charm

Adding your S3 Credentials

To deploy your S3 credentials to the application, run the following action:

juju run s3-integrator/leader sync-s3-credentials access-key=<your_key> secret-key=<your_secret_key>
juju <= 2.9
juju run-action s3-integrator/leader sync-s3-credentials access-key=<your_key> secret-key=<your_secret_key>

Configuring the Integrator

To configure the S3 integrator charm, you may provide the following configuration options:

  • endpoint: the endpoint used to connect to the object storage.
  • bucket: the bucket/container name delivered by the provider (the bucket name can be specified also on the requirer application).
  • region: the region used to connect to the object storage.
  • path: the path inside the bucket/container to store objects.
  • attributes: the custom metadata (HTTP headers).
  • s3-uri-style: the S3 protocol specific bucket path lookup type.
  • storage-class:the storage class for objects uploaded to the object storage.
  • tls-ca-chain: the complete CA chain, which can be used for HTTPS validation.
  • s3-api-version: the S3 protocol specific API signature.
  • experimental-delete-older-than-days: the amount of day after which backups going to be deleted. EXPERIMENTAL option.

The only mandatory fields for the integrator are access-key secret-key and bucket.

In order to set ca-chain certificate use the following command:

juju config s3-integrator tls-ca-chain="$(base64 -w0 your_ca_chain.pem)"

Attributes needs to be specified in comma-separated format.

Configuring the Integrator

To retrieve the S3 credentials, run the following action:

juju run s3-integrator/leader get-s3-credentials
juju <= 2.9
juju run-action s3-integrator/leader get-s3-credentials --wait

If the credentials are not set, the action will fail.

To retrieve the set of connection parameters, run the following command:

juju run s3-integrator/leader get-s3-connection-info
juju <= 2.9
juju run-action s3-integrator/leader get-s3-connection-info --wait

Relations

Relations are supported via the s3 interface. To create a relation:

juju integrate s3-integrator application
juju <= 2.9
juju relate s3-integrator application

To remove relation a relation:

juju remove-relation s3-integrator application

Security

Security issues in the Charmed S3 Integrator Operator can be reported through LaunchPad. Please do not file GitHub issues about security issues.

Contributing

Please see the Juju SDK docs for guidelines on enhancements to this charm following best practice guidelines, and CONTRIBUTING.md for developer guidance.