NooBaa and Pelorus Quickstart
NooBaa is a software-driven data service that provides S3 object-storage interface that we use for testing and development of Pelorus project.
The following is a walkthrough for deploying NooBaa Operator on OpenShift and then configuring Pelorus to consume it as a Long Term Storage solution.
Install NooBaa Operator CLI
NooBaa Operator installation may be done using noobaa
CLI that helps to easy most management tasks.
To install noobaa
CLI please refer to the NooBaa README or simply install it as part of our dev-env from the pelorus git folder:
make dev-env
source .venv/bin/activate
noobaa --help
Configure Namespace
NooBaa can be deployed in the same namespace as Pelorus or a separate one.
oc create namespace pelorus
Install NooBaa
To retain Pelorus dashboard data in the long-term, we'll deploy an instance of NooBaa operator and create a bucket called thanos
.
Deploy NooBaa
To deploy NooBaa simply run:
noobaa install --namespace pelorus
At this stage it's important to store S3 Credentials, that they appeared during noobaa install --namespace pelorus
step.
They will be used later in the Update Pelorus Configuration step. Credentials can be always received using noobaa status
command:
#------------------#
#- S3 Credentials -#
#------------------#
AWS_ACCESS_KEY_ID : <s3 access key>
AWS_SECRET_ACCESS_KEY : <s3 secred access key>
After running noobaa install --namespace pelorus
step, you may confirm that installation went fine by checking the System Status output and ensuring that ll the services are marked with ✅:
$ noobaa status --namespace pelorus
[...]
INFO[0004] System Status:
INFO[0004] ✅ Exists: NooBaa "noobaa"
INFO[0004] ✅ Exists: StatefulSet "noobaa-core"
INFO[0004] ✅ Exists: ConfigMap "noobaa-config"
INFO[0004] ✅ Exists: Service "noobaa-mgmt"
INFO[0005] ✅ Exists: Service "s3"
INFO[0005] ✅ Exists: Secret "noobaa-db"
INFO[0005] ✅ Exists: ConfigMap "noobaa-postgres-config"
INFO[0005] ✅ Exists: ConfigMap "noobaa-postgres-initdb-sh"
INFO[0005] ✅ Exists: StatefulSet "noobaa-db-pg"
INFO[0005] ✅ Exists: Service "noobaa-db-pg"
INFO[0005] ✅ Exists: Secret "noobaa-server"
INFO[0005] ✅ Exists: Secret "noobaa-operator"
INFO[0005] ✅ Exists: Secret "noobaa-endpoints"
INFO[0005] ✅ Exists: Secret "noobaa-admin"
INFO[0005] ✅ Exists: StorageClass "noobaa.noobaa.io"
INFO[0005] ✅ Exists: BucketClass "noobaa-default-bucket-class"
INFO[0005] ✅ Exists: Deployment "noobaa-endpoint"
INFO[0006] ✅ Exists: HorizontalPodAutoscaler "noobaa-endpoint"
INFO[0006] ✅ (Optional) Exists: BackingStore "noobaa-default-backing-store"
INFO[0006] ✅ (Optional) Exists: CredentialsRequest "noobaa-aws-cloud-creds"
INFO[0006] ⬛ (Optional) Not Found: CredentialsRequest "noobaa-azure-cloud-creds"
INFO[0006] ⬛ (Optional) Not Found: Secret "noobaa-azure-container-creds"
INFO[0006] ⬛ (Optional) Not Found: Secret "noobaa-gcp-bucket-creds"
INFO[0006] ⬛ (Optional) Not Found: CredentialsRequest "noobaa-gcp-cloud-creds"
INFO[0006] ✅ (Optional) Exists: PrometheusRule "noobaa-prometheus-rules"
INFO[0006] ✅ (Optional) Exists: ServiceMonitor "noobaa-mgmt-service-monitor"
INFO[0006] ✅ (Optional) Exists: ServiceMonitor "s3-service-monitor"
INFO[0006] ✅ (Optional) Exists: Route "noobaa-mgmt"
INFO[0006] ✅ (Optional) Exists: Route "s3"
INFO[0007] ✅ Exists: PersistentVolumeClaim "db-noobaa-db-pg-0"
INFO[0007] ✅ System Phase is "Ready"
INFO[0007] ✅ Exists: "noobaa-admin"
Create NooBaa bucket
We use default thanos
bucket name. User may choose any bucket name.
To create thanos
NooBaa bucket:
noobaa bucket create thanos --namespace pelorus
At any time to check if the bucket was created succesfully and it's healthy run the command:
noobaa bucket status thanos --namespace pelorus
Update Pelorus Configuration
To update our Pelorus stack, follow the instructions provided in the Long Term Storage.
Ensure that <s3 access key>
, <s3 secred access key>
and the <bucket name>
are used from the Deploy NooBaa
step and s3.pelorus.svc:443
, which is an S3 InternalDNS Address
from the noobaa status --namespace pelorus
command, as bucket access point as in example:
# Thanos / S3 Storage with noobaa
thanos_bucket_name: thanos
bucket_access_point: s3.pelorus.svc:443
bucket_access_key: <s3 access key>
bucket_secret_access_key: <s3 secred access key>
exporters:
instances:
- app_name: committime-exporter
exporter_type: committime
env_from_secrets:
- github-secret
env_from_configmaps:
- pelorus-config
- committime-config