provider-ceph
is a minimal Crossplane Provider
that reconciles Bucket
CRs with multiple external S3 backends such as Ceph. It comes
with the following features:
ProviderConfig
type that represents a single S3 backend (such as Ceph) and points to a credentials Secret
for access to that backend.ProviderConfig
objects which represent S3 backends and stores client details for each backend.Bucket
resource type that represents an S3 bucket.Bucket
objects and reconciles these objects with the S3 backends.Install Crossplane in you Kubernetes cluster
Install the provider by using the Upbound CLI after changing the image tag to the latest release:
up ctp provider install xpkg.upbound.io/linode/provider-ceph:v1.0.2-rc.0.1.g4c96fcc
Alternatively, you can use declarative installation:
cat <<EOF | kubectl apply -f -
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: linode-provider-ceph
spec:
package: xpkg.upbound.io/linode/provider-ceph:v1.0.2-rc.0.1.g4c96fcc
EOF
See WEBHOOKS.md for instructions on how to enable webhooks.
Crossplane uses DeploymentRuntimeConfig
object to apply customizations on the provider.
Here are a few examples:
apiVersion: pkg.crossplane.io/v1beta1
kind: DeploymentRuntimeConfig
metadata:
name: provider-ceph
spec:
deploymentTemplate:
spec:
selector: {}
template:
spec:
containers:
- name: package-runtime
args:
- --kube-client-rate=80000
- --reconcile-timeout=5s
- --max-reconcile-rate=600
- --reconcile-concurrency=160
- --poll=30m
- --sync=1h
- --assume-role-arn=[ASSUME_ROLE_ARN]
You have to attach DeploymentRuntimeConfig
to the Provider
object.
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-ceph
spec:
runtimeConfigRef:
name: provider-ceph
Refer to Crossplane's CONTRIBUTING.md file for more information on how the Crossplane community prefers to work. The guide-provider-development.md guide may also be of use. For more information about how to setup your development environment, please follow our DEVELOPMENT.md page.