0% found this document useful (0 votes)
51 views59 pages

Objs Install Redhat

Uploaded by

604597
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views59 pages

Objs Install Redhat

Uploaded by

604597
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 59

Dell ObjectScale Application 1.3.

x Installation
Guide for Red Hat OpenShift

October 2023
Rev. 1.0
Notes, cautions, and warnings

NOTE: A NOTE indicates important information that helps you make better use of your product.

CAUTION: A CAUTION indicates either potential damage to hardware or loss of data and tells you how to avoid
the problem.

WARNING: A WARNING indicates a potential for property damage, personal injury, or death.

© 2023 Dell Inc. or its subsidiaries. All rights reserved. Dell Technologies, Dell, and other trademarks are trademarks of Dell Inc. or its
subsidiaries. Other trademarks may be trademarks of their respective owners.
Contents
About using this guide..............................................................................................................................................................5

Chapter 1: Introduction................................................................................................................. 6
Revision history.................................................................................................................................................................... 6
Document feedback...................................................................................................................................................... 6
About Dell ObjectScale ..................................................................................................................................................... 6
Product Description............................................................................................................................................................ 7
About installation and user access.................................................................................................................................. 7

Chapter 2: Prerequisites .............................................................................................................. 9


Deployment prerequisites for ObjectScale on Red Hat OpenShift ........................................................................ 9
Change Process ID Limits (podPidsLimit)....................................................................................................... 11
Preparing OpenShift namespaces and users for ObjectScale................................................................................ 12
About setting up end-users on OpenShift................................................................................................................... 13

Chapter 3: Install ObjectScale on an online, externally-connected cluster....................................14


Prepare the OpenShift cluster........................................................................................................................................14
Download the charts .tgz and signature verification files from Dell Support..................................................... 15
(Optional) Verify downloaded files and the online image signatures pulled from DockerHub........................ 16
Create and prepare the necessary namespaces in Red Hat OpenShift............................................................... 19
Deploy the Bare-Metal CSI Driver for ObjectScale................................................................................................... 21
Install ObjectScale onto the OpenShift cluster..........................................................................................................23
Complete the initial setup of ObjectScale...................................................................................................................24
Access the ObjectScale Portal on an OpenShift cluster................................................................................... 24
Apply an ObjectScale license....................................................................................................................................25
Connect to Dell support services through SupportAssist................................................................................. 26
Next steps with ObjectScale.......................................................................................................................................... 27

Chapter 4: Install ObjectScale on an offline cluster..................................................................... 28


Prerequisites to install ObjectScale on an offline OpenShift cluster....................................................................28
Prepare the OpenShift cluster....................................................................................................................................... 28
Download the charts, software images, and signature verification files from Dell Support........................... 29
Verify the downloaded files needed to install ObjectScale on an offline cluster...............................................30
Upload ObjectScale images to the private registry................................................................................................... 31
Create and prepare the necessary namespaces in Red Hat OpenShift...............................................................32
Deploy CSI bare-metal driver and ObjectScale..........................................................................................................34
Complete the initial setup of ObjectScale................................................................................................................... 37
Access the ObjectScale Portal on an OpenShift cluster................................................................................... 37
Apply an ObjectScale license.................................................................................................................................... 38
Connect to Dell support services through SupportAssist................................................................................. 39
Next steps with ObjectScale..........................................................................................................................................40

Chapter 5: Getting started with ObjectScale............................................................................... 41


Set up initial identity and access accounts .................................................................................................................41
New Accounts...............................................................................................................................................................41

Contents 3
Create an IAM user within an account................................................................................................................... 42
Create a new customer-managed policy............................................................................................................... 43
Attach a policy to an account entity.......................................................................................................................44
Create your first object store and bucket(s)............................................................................................................. 45
Create an object store............................................................................................................................................... 45
Associate an account with an object store........................................................................................................... 47
Create a bucket........................................................................................................................................................... 48
Run S3 workloads using the ObjectScale resources................................................................................................ 50
View the certificates for an object store............................................................................................................... 51
Record S3 endpoint values........................................................................................................................................ 51
Perform an S3 workload using the S3 Browser................................................................................................... 52
View ObjectScale Health................................................................................................................................................. 52
ObjectScale Performance Dashboard ......................................................................................................................... 52
Delete the object store and bucket(s).........................................................................................................................53
Delete a bucket............................................................................................................................................................ 54
Delete an object store................................................................................................................................................ 54
View the Metrics dashboards for an object store.....................................................................................................54
Grafana Dashboards................................................................................................................................................... 55

Chapter 6: Upgrades................................................................................................................... 56
About ObjectScale upgrades..........................................................................................................................................56

Chapter 7: Uninstall ObjectScale................................................................................................. 57


Uninstall ObjectScale from the Red Hat OpenShift cluster....................................................................................57

4 Contents
About using this guide
CAUTION: Many PDF viewers add a line break to the end of each line of text in a PDF. Adobe Acrobat (Reader,
Standard, and Pro) and other common PDF viewers, including Google Chrome and Microsoft Edge, insert these
line breaks. As a result, when you copy commands that wrap across multiple lines in a PDF, the copied command
is in the wrong format. (It contains erroneous line breaks.) If you copy and paste commands, the line breaks
cause issues during the installation and administration of ObjectScale.

To address this known limitation and ensure that copied commands do not contain unintentional line breaks, do
one of the following:

● Paste the copied commands into a text editor and remove the line breaks.
● Use the HTML version of this document when you are copying commands.

About using this guide 5


1
Introduction
This chapter contains:
Topics:
• Revision history
• About Dell ObjectScale
• Product Description
• About installation and user access

Revision history
Table 1. Revision history
Revision Date Revision Number Description of change
May 16, 2023 1.0 Initial release for ObjectScale 1.2.0
October 11, 2023 2.0 Updated release for ObjectScale 1.3.0

Document feedback
Submit feedback or suggestions about this document to [email protected].

About Dell ObjectScale


ObjectScale uses a software-defined, containerized architecture to deliver enterprise-class, high-performance object storage in
a native Kubernetes package. ObjectScale empowers organizations to move faster and respond more effectively to rapidly
changing business needs. This next generation of object storage software is lighter, faster, and deployable on existing
infrastructure. You can deploy ObjectScale on your Kubernetes (Red Hat OpenShift Container Platform) or SUSE Linux
Enterprise Server (SLES) infrastructure. ObjectScale is also available as a preconfigured Appliance (ObjectScale XF960).
ObjectScale supports the storage, manipulation, and analysis of unstructured data on a massive scale.
With rich S3 compatibility and self-service APIs, you can quickly spin up object storage containers. These containers can service
many types of applications, from big data and analytics to ephemeral development or test sandboxes.
ObjectScale allows any organization to deliver scalable cloud services with the reliability and control of a private cloud
infrastructure. ObjectScale enables convenient management for a globally distributed storage infrastructure.
ObjectScale is built with certain design principles, such as:
● Global namespace with eventual consistency
● Scale-out capabilities
● Secure multitenancy
● Superior performance for small, large, and huge objects
The platform was built as a distributed system following the microservices principle of cloud applications. ObjectScale has a
layered architecture, with every function in the system built as an independent layer, making them horizontally scalable across
all nodes and enabling high availability. The S3-compatible ObjectScale software forms the underlying cloud storage service,
providing protection, geo-replication, and data access.

6 Introduction
Product Description
ObjectScale is an enterprise-grade object storage system from Dell that runs efficiently on shared infrastructure and in multi-
tenant environments.
ObjectScale gives organizations the power to put data closer to the applications they support, reducing latency and improving
the user experience. In addition, object storage from disparate platforms can cross-replicate for greater access, reliability, and
redundancy.
ObjectScale offers the following major functionality:
● Simple, S3-compatible enterprise-grade object storage
● Kubernetes-based, customer-deployable
● Scaled-out, software-defined architecture
Other important features of ObjectScale include:
● Improved data protection with new erasure coding schemes
● New replication model with eventual consistency for greater availability during hardware failure
● Integrated management of bucket or object events, enabling bucket notifications, ObjectScale replication, and metering
● A complete multi-tenant IAM service with IAM accounts, with each account supporting IAM entities such as users, groups,
roles, policies, and service providers
ObjectScale runs in Kubernetes. Building ObjectScale for Kubernetes allowed Dell to deliver a simplified product where
Kubernetes handles the OS- and hardware-level layers. ObjectScale handles the storage and storage management.
With this underlying Kubernetes architecture, ObjectScale gives you segmented control of the storage, compute, and network
services. The architecture allows for dynamic provisioning of resources. You can control when new services are started on an as
needed basis. These new resources are tied to the underlying resources upon creation.
Here are some of the benefits Kubernetes provides for ObjectScale:
● Predictable application deployment using a declarative method
● Dynamic scaling of application resources
● Deployment using only required resources
● Highly portable across deployment models
● Self-healing: Autoplacement, auto restart, and autoreplication
In Kubernetes, each resource can be affinitized to run on one host. Affinization of resources to hosts allows ObjectScale to
behave as its own fault domain.
Flexible deployment environments support customer-built and maintained object storage systems. ObjectScale deployment
platforms are:
● ObjectScale Appliance
● ObjectScale Software Bundle
● ObjectScale for Red Hat OpenShift
ObjectScale performance and maintenance tasks benefit from the collocation of the compute and storage infrastructure.

About installation and user access


Your cluster administrator installs and, by default, can manage all aspects of the ObjectScale instance. The cluster administrator
user can set up end-user namespaces and/or users with specialized permissions for access to object stores deployed within an
end-user namespace.
The administrator users have access to all of the ObjectScale instance, Identity and Access Management, object stores, and
Grafana dashboards, by default. Depending on the user permissions within the cluster, object stores are created and managed
by end-users and administrators. User roles can be configured to allow end-users and administrators to monitor the resource
usage associated with object stores and the ObjectScale instance using the ObjectScale UI.

User access roles


ObjectScale provides a user interface (UI) for all users interacting with object stores and the ObjectScale instance.

Introduction 7
Access roles control the views and actions available to each user. User accounts must be set up in the cluster for users to
access the ObjectScale Portal user interface.

Table 2. User access roles


Role Persona Activities
ObjectScale ObjectScale Instance ● Create namespaces and users
Administrator Administrator ● Create object stores and buckets
● Create and maintain IAM entities
● Manage the federation of ObjectScale instances and
replication
● Monitor ObjectScale performance, storage, and resource
allocation
● Monitor ObjectScale instance and object store Grafana
dashboards
● Perform ObjectScale upgrade and maintenance activities
ObjectScale ObjectScale User with edit ● Edit access to ObjectScale default namespace (or
Administrator access to ObjectScale and other ObjectScale manager namespace) and other namespaces
namespaces which they can access
● Create object stores and buckets
● Create and maintain IAM entities
● Manage the federation of ObjectScale instances and
replication
● Monitor ObjectScale performance, storage, and resource
allocation
● Monitor ObjectScale instance and object store Grafana
dashboards
End-User with Edit role Object store user ● Create object stores and buckets in the namespace which
they can access
● Monitor performance, storage, and resource allocation in
the namespace where the permissions were given to the
user
● Monitor object store Grafana dashboards
End-User with view or Cluster or ObjectScale monitor ● View performance, storage, and resource allocation in the
read-only namespace where the permissions were given to the user
● Monitor object store Grafana dashboards

8 Introduction
2
Prerequisites
Topics:
• Deployment prerequisites for ObjectScale on Red Hat OpenShift
• Preparing OpenShift namespaces and users for ObjectScale
• About setting up end-users on OpenShift

Deployment prerequisites for ObjectScale on Red Hat


OpenShift
To install ObjectScale, ensure that the following prerequisites are met.
ObjectScale requires a Linux workstation to apply the ObjectScale resources to the OpenShift cluster.
The Linux workstation must have these software versions installed:
● Helm v3.7.x or greater (https://helm.sh/docs/intro/install/)
● Kubectl v1.25 or 1.26 (https://kubernetes.io/docs/tasks/tools/#kubectl)
● Docker for Linux (when deploying ObjectScale onto an offline OpenShift cluster)
You should also have active accounts with:
● https://www.dell.com/support/home/en-us/product-support/product/objectscale/
● https://hub.docker.com/

Software requirements for the OpenShift cluster


ObjectScale 1.3 supports Red Hat OpenShift Container Platform (OCP) versions 4.12.x and 4.13.x.

NOTE: Dell recommends installing the OpenShift control plane nodes on separate physical servers to ensure HA operation.

Hardware requirements for the OpenShift cluster


● Dell recommends a minimum of four nodes with 192 GiB RAM each to support the HA features and for the best overall
performance. ObjectScale and the initial object store require at least ~400 GiB RAM in total. Then, for each additional object
store, another 350 GiB RAM is required.
● Each node requires a minimum of:
○ Twenty physical CPU cores are recommended.
○ 1 x 500 GB (~465 GiB) unused SSD.
○ 128 GiB RAM for ObjectScale to run one object store and approximately 11 GiB for the OCP.
○ At least 200 GB of free space in /var/lib/kubelet.
○ At least five unused disks per node of an identical storage class (minimum for a single object store), preferably the same
size.
● A minimum of five disks are required per node for a four-node cluster with the 12+4 EC scheme. This configuration allows
for one disk failure from a single node or a single node failure. In a four-node cluster, three of the nodes must have the
controlplane role.
● A minimum of five disks are required per node for a 10-node cluster with the 12+4 EC scheme. This configuration allows for
two node failures, a disk failure from two different nodes, or a single disk failure and a single node failure. In a 10-node or
larger cluster, at least five of the nodes must have the controlplane role.

Prerequisites 9
For offline deployments, additional requirements for are documented at: Prerequisites to install ObjectScale on an offline
OpenShift cluster.
NOTE: If you are deploying ObjectScale on to a VxRail HCI configuration, the HCI configuration must meet the ObjectScale
hardware requirements that are listed above. Also, VxRail Manager 7.0.320 or higher is required.

Other requirements and recommendations for OpenShift clusters


● The OpenShift Kubernetes cluster has Internet access to hub.docker.com
● At least seven IP addresses available to be assigned to ObjectScale and object store services as external IP addresses.
Each additional object store that you create within ObjectScale requires three additional IP addresses.
● Before deploying ObjectScale on to the OpenShift clusters, you must modify the default podPidsLimits to 16384 on all
Kubernetes nodes. See the Change podPidsLimit topic below for detailed steps.
● To enable all services to save the crash dump files in pods into the expected place, log in as root and issue the following
command on all cluster nodes. Do this step before ObjectScale deployment.

$ sudo su -
# echo /crash-dump/core-%e > /proc/sys/kernel/core_pattern

● OpenShift nodes must be synchronized with an NTP server. ObjectScale requires all the clocks on the nodes to be within 30
s of each other to avoid time synchronization problems.
● The cluster should not have a non- Dell Bare-Metal CSI Driver scheduler policy that is configured in Kubernetes.
● Internet access to the Kubernetes cluster (or to a Linux workstation for an offline cluster) required for pulling the
ObjectScale software container images.
● It is recommended to install the OpenShift control plane nodes on separate physical servers to ensure HA operation.
Dell recommends using the open-source Kubernetes load balancer MetalLB with ObjectScale. See https://metallb.org/ for more
details on MetalLB.

Run the ObjectScale Qualification Tool


Dell created the ObjectScale Qualification Tool to evaluate a cluster for possible ObjectScale installations. The ObjectScale
Qualification Tool ensures that the target cluster meets the requirements.
You must run the ObjectScale Qualification Tool before installing the ObjectScale Software Bundle to verify that the target
cluster meets all the requirements. See the Readme file for the ObjectScale Qualification Tool (readme.md) file at https://
www.dell.com/support/home/en-us/product-support/product/objectscale/drivers. The Readme contains details on obtaining
and running the ObjectScale Qualification Tool.
NOTE: Ignore the SecondarySchedulerPolicy warning if you get it before the deployment of Secondary Scheduler
and CSI; these checks can be validated after both are deployed.

ObjectScale license file required


A valid ObjectScale license is required. The license is one of the following types:
● A Permanent or Subscription, with or without encryption, purchased from Dell.
● An Evaluation license provided by your Dell representative.
● The Community Edition capacity-limited license file that is downloaded from https://www.dell.com/support/home/en-us/
product-support/product/objectscale/drivers.

Activate the purchased ObjectScale license before deployment


After purchasing an ObjectScale license, Dell sends a License Activation Code (LAC) letter to the customer-provided email
address associated with the Dell Support account. This email contains the necessary information and steps to follow to activate
the ObjectScale license.
Follow the online process to generate license files or keys from their entitlements. License activation occurs after Customers or
Partners receive a LAC letter and the LAC number that is listed on their LAC letter is redeemed.

10 Prerequisites
● When Dell issues new license entitlements to a customer based on a purchase, evaluation, or other event, the entitlements
are associated to a unique LAC.
● A LAC can have one or more entitlements that are associated to it. A LAC is the primary identifier of one or more
entitlements, used by the customer or partner to locate and activate licenses.
● At the time an LAC is generated, it is emailed to the customer, but this is not always the case for evaluation licenses or for
purchases of certain products.
When your software order is fulfilled, you receive an email or letter that includes the LAC for your order and instructions for
activating entitlements online.
If you have any questions about your Dell order, contact your Dell Sales Account Representative or your Authorized Reseller.
If you have any questions about Dell software licensing, contact our Licensing Support team.
After activating the license, Dell Licensing sends the software license activation notification email to notify you that software
licenses associated with your Dell account have been activated.
Review the details within the email and contact Dell if you think this license activation is erroneous or unintended.
The activated ObjectScale license .xml file is attached to this email notification. Use this license .xml file within the
ObjectScale UI to activate the product. For more information, see Apply an ObjectScale license.

Change Process ID Limits (podPidsLimit)


Steps to modify the default podPidsLimit on all Kubernetes nodes.

About this task


You must modify the default podPidsLimit before deploying ObjectScale to the OpenShift clusters.

Steps
1. Log in to the service node in a cluster.

[root@servicenode ~]# oc label machineconfigpool master custom-kubelet=larger-pid-


limit

[root@servicenode ~]# oc label machineconfigpool worker custom-kubelet=larger-pid-


limit

2. Create a set_limit.yaml file.

apiVersion: machineconfiguration.openshift.io/v1
kind: KubeletConfig
metadata:
name: set-max-pod-pids
spec:
machineConfigPoolSelector:
matchLabels:
custom-kubelet: larger-pid-limit
kubeletConfig:
podPidsLimit: 16384

3. Apply the set_limit.yaml file.

[root@master0 ~]# kubectl apply -f set_limit.yaml

4. Validate podPidsLimit.

[root@master0 ~]#oc get kubeletconfig


NAME AGE
set-max-pod-pids 137m
[root@master0 ~]# oc describe kubeletconfig set-max-pod-pids |grep Pid
f:podPidsLimit:
Pod Pids Limit: 16384

Prerequisites 11
5. Reboot all nodes after the changes are completed.
a. Communicate to all nodes from the service node through SSH.
b. Run sudo reboot.

Preparing OpenShift namespaces and users for


ObjectScale
Your OpenShift cluster must be prepared to install Dell Bare-Metal CSI Driver and ObjectScale using the following
recommendations.

CSI Secondary scheduler and its namespace


Also, ObjectScale requires the use of a CSI secondary-scheduler operator. During the installation process that follows you
deploy the secondary-scheduler operator into a separate secondary-scheduler operator namespace.

Bare-Metal CSI Driver and its namespace


ObjectScale on OpenShift requires the use of the Bare-Metal CSI Driver. During the installation process that follows you deploy
the Bare-Metal CSI Driver into a separate CSI Bare-Metal namespace.

ObjectScale and object store namespaces


ObjectScale and its object store can either both be deployed in the same or in separate nondefault OpenShift namespaces.
During the installation process that follows you deploy ObjectScale into its own namespace.
NOTE: Dell recommends that you do not deploy ObjectScale in the default OpenShift namespace and that instead you use
or create a different namespace for ObjectScale. Also, for this release it is recommended that you create any object stores
within the same namespace as ObjectScale.
● If you are deploying ObjectScale and the object stores in different namespaces within the Kubernetes cluster, here is one
way of naming and organizing the cluster namespaces:
○ Create a project objectscale-system for the ObjectScale namespace.
○ Create one or more object-store- x projects as other namespaces where you can deploy all the object store resources.
● As the Admin user, assign RBAC roles to the users so that they can manage the specified namespace and the object stores.
NOTE: When creating end users, only assign these users namespace-level role bindings. ObjectScale on OpenShift only
supports Kubernetes-level namespace bindings and does not support cluster-level role bindings.

OpenShift users and ObjectScale


An OpenShift user with the cluster-admin role, who has access to all the namespaces in the OpenShift cluster, can log in to the
OpenShift UI and create projects, namespaces for ObjectScale installation, and the end users for ObjectScale. These end users
cannot be assigned the cluster-admin role. Rather, they need the admin role for the namespaces where ObjectScale and object
stores are deployed.
The cluster-admin user can also optionally create a separate, end-user namespace, where end users can create and manage
end-user object stores.
NOTE: For an end-user to create an object store in their namespace, that user must have edit permission to the object
store namespace.
Before deploying ObjectScale on the OpenShift cluster, you can complete the following actions within the OpenShift UI
following the Red Hat OpenShift documentation:
● Log in to the OpenShift UI as kubeadmin.
● As the kubeadmin user, create users and groups by configuring one of the identity providers that is supported on the
OpenShift platform.

12 Prerequisites
● Then, assign the cluster-admin role to one of the users so that it can manage the cluster as admin while logged in as a user.
● As the Admin user, create the necessary projects (namespaces) in the Kubernetes cluster to manage the ObjectScale
deployment. You have the option of deploying the ObjectScale instance and the object stores within the same or different
namespaces.
● As the Admin user, assign RBAC roles to ObjectScale and object store users in OpenShift so that they can manage the
specified namespace and object stores.
NOTE: When creating end users, only assign these users namespace-level role bindings. ObjectScale on OpenShift only
supports Kubernetes-level namespace bindings and does not support cluster-level role bindings.

About setting up end-users on OpenShift


In OpenShift you need to configure an identity provider in order to allow for OpenShift end-users to log in to ObjectScale.
ObjectScale supports the HTPasswd identity provider. HTPasswd Identity Provider is one of the simplest identity providers to
use with OpenShift environments.
When deploying ObjectScale for end-users on an OpenShift cluster, create HTPasswd IDP users on
the OpenShift cluster. Refer to https://docs.openshift.com/container-platform/4.12/authentication/identity_providers/
configuring-htpasswd-identity-provider.html for more information.
NOTE: When creating end-users, only assign these users namespace-level role bindings. ObjectScale on OpenShift only
supports Kubernetes-level namespace bindings and does not support cluster-level role bindings.

Prerequisites 13
3
Install ObjectScale on an online, externally-
connected cluster
Follow these tasks to install ObjectScale on an online, externally-connected cluster.
Topics:
• Prepare the OpenShift cluster
• Download the charts .tgz and signature verification files from Dell Support
• (Optional) Verify downloaded files and the online image signatures pulled from DockerHub
• Create and prepare the necessary namespaces in Red Hat OpenShift
• Deploy the Bare-Metal CSI Driver for ObjectScale
• Install ObjectScale onto the OpenShift cluster
• Complete the initial setup of ObjectScale
• Next steps with ObjectScale

Prepare the OpenShift cluster


In order to run kubectl and/or Helm commands from a Linux system against OpenShift cluster, obtain the kube config file
from the OpenShift cluster.

About this task


A Linux workstation is used to execute the helm and kubectl commands needed to install and manage ObjectScale on OpenShift.
Examples in this document use the default location for the kubectl (Kubernetes control binary) configuration file. The default
location for the Kubernetes configuration file is $HOME/.kube/config.
Commands may be run from either a Linux system with kubectl/helm or the OpenShift cluster service node.

Steps
1. On your Linux workstation, create the kube directory.

mkdir -p ~/.kube

2. Using SCP copy the kubeconfig file from the service node to the Linux workstation. Command syntax is:

scp root@<SERVICE_NODE_IP>:/root/ocp4/auth/kubeconfig ~/.kube/config

You will need to provide the password for the service node to complete this step.

3. Edit the /etc/hosts to add the service node name to local hosts file.
a. Locate the service node name in the config file

grep server ~/.kube/config

server: https://api.ocp4.myhost.com:6443

b. Add the service node entry obtained above to the /etc/hosts file:

<SERVICE_NODE_IP> <SERVICE_NODE_NAME> api.ocp4

For example:

14 Install ObjectScale on an online, externally-connected cluster


10.55.66.100 api.ocp4.myhost.com api.ocp4

4. Verify accessibility to the service node by running this command on the Linux workstation:
a. Get a list of all of the nodes in your cluster:

kubectl get nodes

b. Get a list of the Pods in the current namespace:

kubectl get pods

c. List deployments in the current namespace:


NOTE: If ObjectScale has not yet been deployed to the cluster, there will be no ObjectScale related deployments
listed in the default namespace.

kubectl get deployments

Download the charts .tgz and signature verification


files from Dell Support
Download the files for the release of ObjectScale to install.

Steps
1. On a local Linux workstation create, and then open, a directory to place the downloaded files needed for the version of
ObjectScale.
a. Create a directory for the files for this version of ObjectScale:

mkdir <DIR>

b. Go to the directory:

cd <DIR>

2. Open a browser and go the ObjectScale 1.3.0 Software Series page.


a. Select your Model.
b. Click the Drivers & Downloads tab for your ObjectScale model.
3. On the Drivers & Downloads tab for your model, filter the available files for your model by selecting a version. The list of
available software for the selected ObjectScale model and version are shown.
4. Download the ObjectScale helm charts objectscale-helm-charts-1.3.0.tgz file to the directory you created on
the local Linux workstation.
This .tgz file contains all of the required helm charts for the release of ObjectScale.
5. Download the Dell Bare-Metal CSI Driver helm charts dellemc-csi-helm-charts-1.3.0-121.2e006fb.tgz file to
the directory you created on the local Linux workstation.
This .tgz file contains all of the required helm charts for the release of Dell Bare-Metal CSI Driver.
6. Download the files needed for online signature verification for this version to the directory you created on the local Linux
workstation.
● objectscale-online-image-digests-1.3.0.txt
● objectscale-signatures-1.3.0.tgz
● objectscale-signatures-1.3.0.tgz.signed.bin
● objectscale-verify-online-digests-1.3.0.sh
● obs-public-1.3.0.pem

Install ObjectScale on an online, externally-connected cluster 15


(Optional) Verify downloaded files and the online
image signatures pulled from DockerHub
When deploying ObjectScale, you can verify downloaded signature verification files and the image signatures of the software
images to be pulled from DockerHub.

Steps
1. On a local Linux workstation, verify the signatures file.

openssl dgst -sha256 -verify obs-public-1.3.0.pem -signature ./objectscale-


signatures-1.3.0.tgz.signed.bin objectscale-signatures-1.3.0.tgz

When successful, the signature validation returns Verified OK.


2. Expand the signature bundle files into a signatures subdirectory:
a. Make a new subdirectory names signatures.

mkdir signatures

b. Expand the objectscale-signatures-1.3.0.tgz into this subdirectory.

tar xvf objectscale-signatures-1.3.0.tgz -C signatures

As an example, the output for the 1.3.0 ObjectScale release is shown:

./objectscale-images-1.3.0.tgz.02.signed.bin
./OBJECTSCALE_CE_30TB.xml.signed.bin
./objectscale-images-mgt-1.3.0.sh.signed.bin
./objectscale-images-1.3.0.tgz.05.signed.bin
./obs-public-1.3.0.pem.signed.bin
./objectscale-images-1.3.0.tgz.06.signed.bin
./objectscale-online-image-digests-1.3.0.txt.signed.bin
./dellemc-csi-helm-charts-1.3.0-121.2e006fb.tgz.signed.bin
./objectscale-verify-online-digests-1.3.0.sh.signed.bin
./objectscale-images-1.3.0.tgz.03.signed.bin
./objectscale-images-1.3.0.tgz.04.signed.bin
./objectscale-helm-charts-1.3.0.tgz.signed.bin
./objectscale-manifest-1.3.0.json.signed.bin
./objectscale-images-1.3.0.tgz.00.signed.bin
./objectscale-images-1.3.0.tgz.01.signed.bin

3. Verify the public key file:

openssl dgst -sha256 -verify obs-public-1.3.0.pem -signature signatures/obs-


public-1.3.0.pem.signed.bin obs-public-1.3.0.pem

When successful, the signature validation returns Verified OK.


4. Once you have validated that the obs-public-1.3.0.pem is valid, you can use that file to verify each of the other
downloaded files:

openssl dgst -sha256 -verify obs-public-1.3.0.pem -signature signatures/


<SIGNED.BIN_FILENAME> <DOWNLOADED_FILENAME>

For example, to verify the OBJECTSCALE_CE_30TB.xml file, you would use the following command:

openssl dgst -sha256 -verify obs-public-1.3.0.pem -signature signatures/


OBJECTSCALE_CE_30TB.xml.signed.bin OBJS_FREE_30TB_5307094_18-Oct-2021.xml

Repeat this process for all other downloaded files.

16 Install ObjectScale on an online, externally-connected cluster


5. After verifying the downloaded files, including the public key, verify the image signatures of the software images to be pulled
from DockerHub.
6. Create the netrc file with the required entries in the following format with your DockerHub username and password.

machine auth.docker.io
login <DOCKERHUB-USERNAME>
password <PASSWORD>

7. Set perform permissions in the script:

chmod +x objectscale-verify-online-digests-1.3.0.sh

8. Verify the images to be downloaded from DockerHub by running the command:

./objectscale-verify-online-digests-1.3.0.sh <netrc-file>

When successful, the successful signature validation returns MATCHED.

As an example, the command and output for the ObjectScale 1.3.0 release is shown:

./objectscale-verify-online-digests-1.3.0.sh netrc

objectscale/atlas:2.0.1-24.gdc2ce0c - MATCHED
objectscale/atlas-operator:1.1.0-215.196feb4 - MATCHED
objectscale/csi-baremetal-node:1.3.0-648.59a295a - MATCHED
objectscale/csi-baremetal-node-kernel-5.4:1.3.0-648.59a295a - MATCHED
objectscale/csi-baremetal-controller:1.3.0-648.59a295a - MATCHED
objectscale/csi-baremetal-halmgr:1.3.0-648.59a295a - MATCHED
objectscale/csi-baremetal-basemgr:1.3.0-648.59a295a - MATCHED
objectscale/csi-baremetal-loopbackmgr:1.3.0-648.59a295a - MATCHED
objectscale/csi-baremetal-scheduler-extender:1.3.0-648.59a295a - MATCHED
objectscale/csi-baremetal-scheduler-patcher:1.3.0-648.59a295a - MATCHED
objectscale/csi-baremetal-node-controller:1.3.0-648.59a295a - MATCHED
objectscale/csi-provisioner:v3.1.0 - MATCHED
objectscale/csi-node-driver-registrar:v2.5.0 - MATCHED
objectscale/livenessprobe:v2.6.0 - MATCHED
objectscale/csi-resizer:v1.4.0 - MATCHED
objectscale/kube-scheduler:v0.23.10 - MATCHED
objectscale/csi-baremetal-operator:1.3.0-121.2e006fb - MATCHED
objectscale/csi-baremetal-pre-upgrade-crds:1.3.0-121.2e006fb - MATCHED
objectscale/secondary-scheduler-operator:1.3.0-121.2e006fb - MATCHED
objectscale/dcm:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/decks:3.0.2-406.31bbcb7 - MATCHED
objectscale/supportassist-ese-notifier:3.0.2-406.31bbcb7 - MATCHED
objectscale/ese-callback:3.0.2-406.31bbcb7 - MATCHED
objectscale/decks-support-store:3.0.2-406.31bbcb7 - MATCHED
objectscale/telemetry-upload:3.0.2-406.31bbcb7 - MATCHED
objectscale/dell-supportassist-ese:3.0.2-406.31bbcb7 - MATCHED
objectscale/base-service-tools:3.0.2-406.31bbcb7 - MATCHED
objectscale/ecs-flex-graphql:1.3.0-1174.2e6d1085 - MATCHED
objectscale/objectscale-portal:1.3.0-310.74d790a2 - MATCHED
objectscale/fabric-proxy:1.3.1-53.0a30b8c - MATCHED
objectscale/iamsvc:3.8.5.0-p3.139574.ac3145de1f6 - MATCHED
objectscale/kahm:2.113.2-265.4a07fa1 - MATCHED
objectscale/kahm-testapp:2.113.2-265.4a07fa1 - MATCHED
objectscale/mock-notifier:2.113.2-265.4a07fa1 - MATCHED
objectscale/snmp-notifier:2.113.2-265.4a07fa1 - MATCHED
objectscale/management-gateway:1.3.0-388.a27f3b4 - MATCHED
objectscale/influxdb:3.8.5.0-1633.83a83598 - MATCHED
objectscale/telegraf:3.8.5.0-1633.83a83598 - MATCHED
objectscale/fluxd:3.8.5.0-1633.83a83598 - MATCHED
objectscale/grafana:3.8.5.0-1633.83a83598 - MATCHED
objectscale/throttler:3.8.5.0-1633.83a83598 - MATCHED
objectscale/rsyslog:3.8.5.0-1633.83a83598 - MATCHED
objectscale/nginx:3.8.5.0-1633.83a83598 - MATCHED
objectscale/prometheus:3.8.5.0-1633.83a83598 - MATCHED
objectscale/statefuldaemonset-operator:3.8.5.0-1633.83a83598 - MATCHED
objectscale/logging-injector:3.8.5.0-1633.83a83598 - MATCHED
objectscale/influxdb-operator:3.8.5.0-1633.83a83598 - MATCHED

Install ObjectScale on an online, externally-connected cluster 17


objectscale/fluent-bit:3.8.5.0-1633.83a83598 - MATCHED
objectscale/confd-sidecar:3.8.5.0-1633.83a83598 - MATCHED
objectscale/dellmon-pre-upgrade-crds:3.8.5.0-1633.83a83598 - MATCHED
objectscale/blob-service:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/chunk-manager:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/storageserver:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/storageserver-manager:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/event-service:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/object-heads:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/diagnostic-service:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/geo-receiver:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/geoservice:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/object-control:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/record-manager:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/rep:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/resource-service:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/metering:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/space-reclaimer:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/control-service:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/storagemanagement-service:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/ons:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/nds:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/objmt:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/vnest:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/dtsm:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/nvmeengine:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/nvmetargetviewer:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/targetmgr:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/targetcfg:3.8.5.0-p3.139575.5eee936b537 - MATCHED
objectscale/fedsvc:3.7.0.0-394.c64e8f82 - MATCHED
objectscale/objectscale-gateway:3.7.0.0-394.c64e8f82 - MATCHED
objectscale/objectscale-component-pre-update:1.3.0-351.adb9679 - MATCHED
objectscale/objectscale-manager-pre-update:1.3.0-351.adb9679 - MATCHED
objectscale/objectstore-connectivity:1.3.0-351.adb9679 - MATCHED
objectscale/objectstore-pre-update:1.3.0-351.adb9679 - MATCHED
objectscale/objectscale-inventory:1.3.0-351.adb9679 - MATCHED
objectscale/objectscale-insideiq:1.3.0-351.adb9679 - MATCHED
objectscale/objectscale-health:1.3.0-351.adb9679 - MATCHED
objectscale/objectscale-capacity:1.3.0-351.adb9679 - MATCHED
objectscale/objectscale-performance:1.3.0-351.adb9679 - MATCHED
objectscale/objectscale-license-usage:1.3.0-351.adb9679 - MATCHED
objectscale/objectscale-lcm:1.3.0-254.437c960 - MATCHED
objectscale/objectscale-operator:1.3.0-1188.f06d298d - MATCHED
objectscale/objectscale-restapi:1.3.0-144.697e704 - MATCHED
objectscale/object-service:3.8.5.0-p3.3524.1ea669c90 - MATCHED
objectscale/pravega-operator:0.5.7-309-5fc87406 - MATCHED
objectscale/crunchy-upgrade:ubi8-5.1.2-0 - MATCHED
objectscale/crunchy-pgbackrest:ubi8-2.38-2 - MATCHED
objectscale/crunchy-pgadmin4:ubi8-4.30-2 - MATCHED
objectscale/crunchy-postgres:ubi8-14.4-0 - MATCHED
objectscale/crunchy-pgbouncer:ubi8-1.16-4 - MATCHED
objectscale/crunchy-postgres-exporter:ubi8-5.1.2-0 - MATCHED
objectscale/postgres-operator:ubi8-5.2.0-114.c95664e-226 - MATCHED
objectscale/postgres-operator-upgrade:ubi8-5.1.2-0 - MATCHED
objectscale/objectscale-service-tools:2.96.0-389.6795989 - MATCHED
objectscale/cmf-switch:0.6.0-389.6795989 - MATCHED
objectscale/kubectl:v1.25.7 - MATCHED
objectscale/zookeeper:0.2.14-256-adadecf - MATCHED
objectscale/zookeeper-operator:0.2.14-256-adadecf - MATCHED
objectscale/install-controller:1.3.0-4196 - MATCHED
objectscale/objs-pre-upgrade-crds:1.3.0-4196 - MATCHED
objectscale/install-controller:1.3.0 - MATCHED

Results
Image signature validation is completed.

18 Install ObjectScale on an online, externally-connected cluster


Create and prepare the necessary namespaces in Red
Hat OpenShift
ObjectScale and certain CSI components require their own namespaces (an OpenShift project) to properly function. You can
create namespaces for each object store.

Prerequisites
● If the ObjectScale Qualification Tool precheck report showed another scheduler extender on the cluster, follow the
OpenShift steps of Manual Kubernetes Scheduler Configuration from https://github.com/dell/csi-baremetal-
operator/blob/master/docs/MANUAL_SCHEDULER_CONFIGURATION.md. These steps ensure that the current
scheduler extender is NOT overwritten. Do these steps before you deploy the Bare-Metal CSI Driver.

About this task


Complete these steps to create and prepare the required namespaces.

Steps
1. Set these environment variables:

export CSI_NS=<CSI_NAMESPACE>

export SSO_NS=openshift-secondary-scheduler-operator

export OBJECTSCALE_NS=<OBJECTSCALE_PROJECT_NAMESPACE>

2. Create a namespace where you can install the secondary scheduler operator.
Red Hat provides this secondary scheduler operator, which is Kubernetes-level software like the default scheduler. You must
install the secondary scheduler on its own namespace.

kubectl create ns $SSO_NS

3. Create a namespace where you can install the CSI Bare-Metal components.

kubectl create ns $CSI_NS

4. Create a namespace where you can install ObjectScale.

kubectl create ns $OBJECTSCALE_NS

5. Optional: Create a namespace for one or more object stores.


You can deploy object stores within the same namespaces as ObjectScale or within their own, separate namespaces.

kubectl create ns <OBJECT_STORE_NAMESPACE>

6. Add privileges for pod security for the namespaces.


a. Apply the privileges for pod security to the secondary-scheduler operator namespace.

# kubectl label --overwrite ns


$SSO_NS pod-security.kubernetes.io/enforce=privileged pod-security.kubernetes.io/
audit=privileged pod-security.kubernetes.io/warn=privileged security.openshift.io/
scc.podSecurityLabelSync="false"

b. Apply the privileges for pod security to the CSI namespace.

# kubectl label --overwrite ns

Install ObjectScale on an online, externally-connected cluster 19


$CSI_NS pod-security.kubernetes.io/enforce=privileged pod-security.kubernetes.io/
audit=privileged pod-security.kubernetes.io/warn=privileged security.openshift.io/
scc.podSecurityLabelSync="false"

c. Apply the privileges for pod security to the ObjectScale namespace.

OpenShift 4.12:
# kubectl label --overwrite ns
$OBJECTSCALE_NS pod-security.kubernetes.io/enforce=privileged pod-
security.kubernetes.io/audit=privileged pod-security.kubernetes.io/warn=privileged
security.openshift.io/scc.podSecurityLabelSync="false"

OpenShift 4.13:
# kubectl label --overwrite ns $OBJECTSCALE_NS pod-security.kubernetes.io/
audit=privileged pod-security.kubernetes.io/warn=privileged security.openshift.io/
scc.podSecurityLabelSync="false"

7. Create the following role and rolebinding in the $CSI_NS namespace.


a. Set the context to the $CSI_NS.

kubectl config set-context --current --namespace=$CSI_NS

b. Create the role.yaml for CSI in this namespace.


Contents of role.yaml. Ensure that this yaml file is properly formatted and contains the values that are shown here:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-csi
namespace: <CSI_NAMESPACE>
rules:
- apiGroups:
- security.openshift.io
resourceNames:
- privileged
resources:
- securitycontextconstraints
verbs:
- use

Where: <CSI_NAMESPACE> is the name of your CSI namespace.

c. Create the rolebinding.yaml for CSI in this namespace.


Contents of rolebinding.yaml. Ensure that this yaml file is properly formatted and contains the values that are
shown here:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: role-binding
namespace: <CSI_NAMESPACE>
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: pod-csi
subjects:
- kind: ServiceAccount
name: csi-baremetal-extender-sa
namespace: <CSI_NAMESPACE>
- kind: ServiceAccount
name: csi-node-sa
namespace: <CSI_NAMESPACE>

Where: <CSI_NAMESPACE> is the name of your CSI namespace.

8. Apply these yaml files.

20 Install ObjectScale on an online, externally-connected cluster


a. Apply the role.yaml.

kubectl apply -f role.yaml -n $CSI_NS

b. Apply the rolebinding.yaml.

kubectl apply -f rolebinding.yaml -n $CSI_NS

9. You should ensure that the OCP cluster global registry pull secret includes the registry pull secret for the docker.io registry
server. If the registry pull secret for docker.io is already in the global cluster pull secret, you may skip the steps below. If the
registry pull secret must be added or updated, follow the steps below.
a. Download the current OCP global pull secrets to a temporary file.

oc get secret/pull-secret -n openshift-config --template='{{index .data


".dockerconfigjson" | base64decode}}' > ocp_cluster_pull_secret

b. Enter the following command to add or update the registry secret for the registry server which hosts the ObjectScale
images to the temporary file.

oc registry login --registry="docker.io/objectscale" --auth-


basic="<username>:<password>" --to=ocp_cluster_pull_secret
<username>:<password> - registry user name and password

c. Enter the following command to update the global registry pull secret.

oc set data secret/pull-secret -n openshift-config --from-


file=.dockerconfigjson=ocp_cluster_pull_secret

d. Delete the temporary file.

rm -f ocp_cluster_pull_secret

The update to registry pull secret is rolled out to all nodes in the cluster. This update can take some time, depending on the
size of the cluster.

Deploy the Bare-Metal CSI Driver for ObjectScale


Install the Bare-Metal CSI driver into a nondefault namespace in the OpenShift cluster.

Steps
1. Set these additional environment variables:

export REGISTRY=docker.io/objectscale

export CSI_VERSION=1.3.0-648.59a295a

export CSI_OPERATOR_VERSION=1.3.0-121.2e006fb

export CHARTS_DIR=<CHARTS_DIRECTORY>

NOTE: <CHARTS_DIRECTORY> is the directory that you created and where you downloaded the ObjectScale
charts .tgz files.

2. Extract the CSI helm charts .tgz file.

tar zxf dellemc-csi-helm-charts-1.3.0-121.2e006fb.tgz

Install ObjectScale on an online, externally-connected cluster 21


3. Install the Secondary Scheduler Operator.

helm install secondary-scheduler-operator $CHARTS_DIR/dellemc-csi-helm-charts/


secondaryscheduleroperator-$CSI_OPERATOR_VERSION.tgz -n $SSO_NS --set
global.registry=$REGISTRY --set image.tag=$CSI_OPERATOR_VERSION --set
csv.version=secondaryscheduleroperator.v1.1.2

Wait for the Secondary Scheduler Operator to start.

4. Verify that the Secondary Scheduler Operator pods are in Running status.

kubectl get pod -n $SSO_NS

5. Install the CSI Bare-Metal Operator.

helm install csi-baremetal-operator $CHARTS_DIR/dellemc-csi-helm-charts/csi-baremetal-


operator-$CSI_OPERATOR_VERSION.tgz --set global.registry=$REGISTRY --set
image.tag=$CSI_OPERATOR_VERSION --namespace $CSI_NS

Wait for CSI Bare-Metal Operator to start.

6. Use helm to install the CSI Bare-Metal deployment:

helm install csi-baremetal $CHARTS_DIR/dellemc-csi-helm-charts/csi-baremetal-


deployment-$CSI_OPERATOR_VERSION.tgz --set image.tag=$CSI_VERSION --set
global.registry=$REGISTRY --set scheduler.patcher.enable=true --set
platform=openshift --set driver.drivemgr.type=halmgr --namespace $CSI_NS

Wait for approximately five minutes for CSI Bare-Metal Deployment to start.

7. After completing the installation process:


a. Verify that the new CSI storage classes have been created:

kubectl get storageclasses -n $CSI_NS

NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE


csi-baremetal-sc (default) csi-baremetal Delete WaitForFirstConsumer false 70m
csi-baremetal-sc-hdd csi-baremetal Delete WaitForFirstConsumer false 70m
csi-baremetal-sc-hddlvg csi-baremetal Delete WaitForFirstConsumer true 70m
csi-baremetal-sc-nvme csi-baremetal Delete WaitForFirstConsumer false 70m
csi-baremetal-sc-ssd csi-baremetal Delete WaitForFirstConsumer false 70m
csi-baremetal-sc-ssdlvg csi-baremetal Delete WaitForFirstConsumer true 70m
csi-baremetal-sc-syslvg csi-baremetal Delete WaitForFirstConsumer true 70m

b. Wait for the new CSI Pods to be Running status and the count of pods in the Ready column is matched (for example,
3/3), before continuing:

kubectl -n $CSI_NS get pods |grep csi-baremetal

csi-baremetal-controller-5cc46bcc74-np6dd 4/4 Running 0 6m17s


csi-baremetal-node-279hd 4/4 Running 0 6m17s
csi-baremetal-node-2ktc7 4/4 Running 0 6m17s
csi-baremetal-node-4zrd9 4/4 Running 0 6m17s
csi-baremetal-node-56bpx 4/4 Running 0 6m17s
csi-baremetal-node-7z9xp 4/4 Running 0 6m17s
csi-baremetal-node-controller-5796d96fcb-55g4s 1/1 Running 0 6m18s
csi-baremetal-node-s66sc 4/4 Running 0 6m17s
csi-baremetal-node-sk95x 4/4 Running 0 6m17s
csi-baremetal-operator-5ff49885bd-8zqxq 1/1 Running 0 6m42s
csi-baremetal-se-9gzs2 1/1 Running 0 6m17s
csi-baremetal-se-btpgr 1/1 Running 0 6m17s
csi-baremetal-se-xg8g2 1/1 Running 0 6m17s

22 Install ObjectScale on an online, externally-connected cluster


Install ObjectScale onto the OpenShift cluster
Install of the necessary ObjectScale components onto the OpenShift cluster.

Steps
1. Ensure that the Bare-Metal CSI storage classes are available on the OpenShift cluster for the installation:

kubectl get sc

NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUME... AGE


csi-baremetal-sc (default) csi-baremetal Delete WaitForFirstConsumer false 7d1h
csi-baremetal-sc-hdd csi-baremetal Delete WaitForFirstConsumer false 7d1h
csi-baremetal-sc-hddlvg csi-baremetal Delete WaitForFirstConsumer true 7d1h
csi-baremetal-sc-nvme csi-baremetal Delete WaitForFirstConsumer false 7d1h
csi-baremetal-sc-ssd csi-baremetal Delete WaitForFirstConsumer false 7d1h
csi-baremetal-sc-ssdlvg csi-baremetal Delete WaitForFirstConsumer true 7d1h
csi-baremetal-sc-syslvg csi-baremetal Delete WaitForFirstConsumer true 7d1h

2. Extract the ObjectScale helm charts .tgz file.

tar zxf objectscale-helm-charts-1.3.0.tgz

3. Display the Dell End User License Agreement (EULA):

helm show readme $CHARTS_DIR/objectscale-portal-1.3.0.tgz | more

4. Set an environment variable for the EULA Revision Date value shown in the last line of the readme file.
You must use this value in the helm install command to deploy ObjectScale. The date is in the format: ddMMMYYYY.

export EULA_DATE=<ddMMMYYYY>

5. Install Postgres.

# helm install postgres $CHARTS_DIR/postgres-ha-1.3.0.tgz --set


global.storageClass=csi-baremetal-sc-ssdlvg --namespace=$OBJECTSCALE_NS --set
global.registry=$REGISTRY

6. Deploy ObjectScale within your OpenShift cluster, using a cluster-admin user:


This step installs the ObjectScale Portal UI, ObjectScale Manager, DECKS, and KAHM on the OpenShift cluster.
NOTE: You can modify these commands to tailor the storage resources that are used for the storageClassName and
secondaryStorageClass by using your preferred csi-baremetal Storage Class.
storageClassName
The storage class used for the ObjectScale components that require high performance storage
(csi-baremetal-sc-ssdlvg is used in the command provided below).
secondaryStorageClass
The storage class used for all other ObjectScale components that do not require high
performance storage (csi-baremetal-sc-ssdlvg is used in the command provided below).

helm install objs $CHARTS_DIR/objectscale-portal-1.3.0.tgz --set


global.registry=docker.io/objectscale --set global.storageClassName=csi-baremetal-
sc-ssdlvg --set global.secondaryStorageClass=csi-baremetal-sc-ssdlvg --set
global.platform=OpenShift --set global.schedulerName=csi-baremetal-scheduler
--namespace $OBJECTSCALE_NS --set accept_eula=$EULA_DATE --set
global.deploymentmodel=application:openshift

Installation of ObjectScale begins. Wait at least 10 minutes for all the services to completely start before completing the next
steps.

Install ObjectScale on an online, externally-connected cluster 23


7. Get a list of all the Kubernetes applications to ensure that all the ObjectScale components are present.

kubectl -n $OBJECTSCALE_NS get app

NAME TYPE VERSION


decks decks 3.0.2
dellemc-objectscale-license dellemc-license 3.0.2
kahm kahm 2.3.0
objectscale-manager objectscale-manager 1.3.0
objectscale-monitoring
supportassist-objectscale supportassist-objectscale 3.0.2

8. After a few minutes, verify that the ObjectScale components are in Deployed status.

helm list --all-namespaces

NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION


csi-baremetal csi-ns 1 2023-04-20... deployed csi-baremetal-... 1.3.0
csi-baremetal-op... csi-ns 1 2023-04-20... deployed csi-baremetal-... 1.3.0
decks objectscale 1 2023-04-20... deployed decks-3.0.2-41... 3.0.2-...
dellemc-objectsc... objectscale 1 2023-04-20... deployed dellemc-licens... 3.0.2-...
kahm objectscale 1 2023-04-20... deployed kahm-2.3.0-417... 2.3.0-...
objectscale objectscale 1 2023-04-20... deployed objectscale-po... 1.3.0-...
objectscale-mana... objectscale 9 2023-04-21... deployed objectscale-ma... 1.3.0-...
secondary-schedu... openshift-sec... 1 2023-04-20... deployed secondarysched... 1.1.2
supportassist-ob... objectscale 1 2023-04-20... deployed supportassist-... 3.0.2-...

9. Now that the KAHM app has been deployed, install the csi-baremetal-alerts chart into the default namespace:

helm install csi-baremetal-alerts --namespace $CSI_NS $CHARTS_DIR/csi-baremetal-


alerts-1.3.0.tgz

Complete the initial setup of ObjectScale


Now that you have deployed ObjectScale, continue the initial set up by applying a valid ObjectScale license and then, optionally,
configuring SupportAssist.
NOTE: Applying the ObjectScale license enables your licensed capacity and other features, such as SupportAssist remote
support.
● Apply an ObjectScale license
● Connect to Dell support services through SupportAssist

Access the ObjectScale Portal on an OpenShift cluster


To access the ObjectScale on an OpenShift cluster, follow these steps to connect to the ObjectScale Portal with a supported
internet browser.

Prerequisites
If you have not already done so, obtain the network address (EXTERNAL-IP) of the ObjectScale Portal user interface:

kubectl -n <OBJECTSCALE_NAMESPACE> get svc objectscale-portal-external

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE


objectscale-portal-external LoadBalancer 10.55.66.100 10.x.y.z 4443:30436/TCP 9m2s

Steps
1. Open a supported web browser and enter the External IP address and port for the objectscale-portal service:
https://<EXTERNAL_IP_ADDRESS>:4443

The ObjectScale Portal login page appears.

24 Install ObjectScale on an online, externally-connected cluster


2. Use your Username and Password credentials to log in to the ObjectScale Portal user interface.
For OpenShift, obtain your credentials using the OpenShift identity provider user that is configured for accessing the
ObjectScale instance or object store.
● You can log in as kubeadmin or an OpenShift Identity Provider User cluster-admin and can have access to the
entire ObjectScale instance and you can create object stores in any namespace you have configured.
● You can log in as an OpenShift Identity Provider User end user and can access only the namespaces to which you have
permissions.
○ If you log in as an end user who has edit permissions to a specific namespace, you can manage the object store in that
namespace. All other ObjectScale features will not be available.
○ If you log in as an end user who has view permissions to a specific namespace, you can view the Object Store in that
namespace. All other ObjectScale features will not be available.

ObjectScale Portal user interface


When launched, the ObjectScale Portal user interface Dashboard page appears.

Navigating within ObjectScale Portal


You can view different portions of the ObjectScale Portal user interface by selecting a section from the left-side navigation
panel. ObjectScale only presents users with the sections of the interface that they can view or edit based on their assigned
permissions.
After selecting a section of ObjectScale Portal, you can move to another section by clicking its name within the ObjectScale
navigation panel. ObjectScale also creates a clickable breadcrumb navigation, which is presented at the top of the ObjectScale
Portal user interface.

Notifications for completed user actions


ObjectScale Portal displays ephemeral notifications at the top of the Internet browser window after completing certain actions.
These notifications are temporary alerts to the current user. They provide information about recently completed user actions or
anything that needs the attention of the user within the ObjectScale Portal user interface.
These notifications are not stored elsewhere within ObjectScale Portal. More detailed messages on these actions can be found
on the Alerts and Logs pages.

Apply an ObjectScale license


Use the ObjectScale Portal user interface to activate an ObjectScale license and apply the license file to the ObjectScale
instance.

Prerequisites
To obtain the XML license file from the Dell license management website, you must have the License Authorization Code (LAC),
which is emailed from Dell. If you have not received the LAC, contact your Customer Support representative.

About this task


Activating ObjectScale with a valid license allows you to create object stores.
● Subscription and Permanent licenses allow you to create object stores with an overall capacity greater than 30 TiB, within
the licensed capacity.
● The Community Edition license allows you to create object stores up to an overall capacity no larger than 30 TiB, and limits
SupportAssist features.
To add a license:

Steps
1. From the ObjectScale Portal user interface, click Administration.
The Administration sections that the user is authorized to view are displayed.
2. Click Licensing.

Install ObjectScale on an online, externally-connected cluster 25


3. Click Apply.
The Apply License box appears.
4. Click Select to browse and upload the ObjectScale license file. Once uploaded, click Apply.
5. Expand the license in the Licensing table to display details about the ObjectScale license and its enabled features and
capacities.

Connect to Dell support services through SupportAssist


Use the ObjectScale Portal user interface to establish a connection through SupportAssist to ensure access to Customer
Support. SupportAssist enables ObjectScale to connect to Dell support services directly or through a gateway server.

Prerequisites
1. For SupportAssist connectivity you can connect directly with access to the Dell-maintained FQDN: esrs3-
core.emc.com:443.
2. You have applied a valid license to the ObjectScale instance.
3. You are an active Dell customer with login access to https://www.dell.com/support/home/.
4. You must obtain an access key and pin from Dell in order to configure SupportAssist for the first time. This access key and
pin ensure the accuracy of contact and other customer values and access to Dell Support. To obtain an access key and
pin, go to https://www.dell.com/support/home/en-us/product-support/product/objectscale/overview and click Generate
Access key. After completing the required form, Dell sends an email to the email address they have set up for the Dell portal
login. The email is from the "Dell | ServicesConnectivity Team" and contains the site ID, access key, and pin for the selected
customer.
NOTE: The generated access key is valid for seven days.
5. See "SupportAssist port requirements" listed in the ObjectScale Administration Guide and validate that the required ports
are configured properly before configuring SupportAssist.
6. If you are planning on connecting using a Gateway server, ensure that a Dell Secure Connect Gateway (SCG 5.1x) server is
configured on site.

Steps
1. From the ObjectScale Portal user interface, click Administration.
The Administration sections that the user is authorized to view are displayed.
2. Click the SupportAssist tab.
3. Accept the Connect to SupportAssist End User License Agreement.
4. On the Connect to SupportAssist page, select the Select Connection Type to determine which SupportAssist connectivity
type to deploy:
● Select Connect Directly to Dell Support services to connect ObjectScale directly to Dell.
NOTE: Dell highly recommends deploying ObjectScale SupportAssist using a Secure Connect Gateway.
● Select Connect via Gateway Server to connect ObjectScale to Dell through a Secure Connect Gateway (SCG) server.
You must add the Priority, Gateway IP/Host, and Gateway Port values for the gateway server in the Connect via
Gateway Server option.

5. On the Access Key Portal page, select the Model and Software Instance.
6. Configure the Access Key value for Site ID in the Party Number field, and then click Submit. The Access Key is generated,
and the details of the Access Key is emailed to the registered email address.
7. On the Access Key & PIN SupportAssist page, enter the Access Key and PIN SupportAssist values for SiteID, Access Key,
and PIN, and then click Next.
8. Select the Support Contacts tab to add existing Primary or Secondary contacts.
a. Provide the listed values for the Primary contact.
● First Name
● Last Name
● Email address
● Phone number
● Preferred Language
b. Click Add Secondary Contact and provide the required values to configure the contact.

26 Install ObjectScale on an online, externally-connected cluster


9. Click Apply.
10. In the Connection tab verify that the SupportAssist connection was successful and matches the example.

Figure 1. Successfully configure SupportAssist

If a Failed Status is shown, view the Status Message to determine the failure details.
11. Click Test Connectivity to validate the SupportAssist connection. When successful, the value that is shown in the Last
Connected column is updated with a newer date and time.
As required, use the panel refresh icon to update the screen before automatic updates.
12. Remote support allows authorized Remote Support engineers to troubleshoot your ObjectScale instance. Enable Remote
Support on the SupportAssist page, Connection tab. You can also click the EDIT button and enable Remote Support on the
Connect to SupportAssist page.

Next steps with ObjectScale


You have successfully installed and activated Dell ObjectScale with your licensed capabilities, performance, and serviceability.
You can begin using ObjectScale. For an overview of the workflows and capabilities of ObjectScale, go to Getting started with
ObjectScale.

Install ObjectScale on an online, externally-connected cluster 27


4
Install ObjectScale on an offline cluster
Complete these tasks to deploy ObjectScale onto an Openshift cluster with NodePort service types (no external access to the
cluster) using the packaging files.
Topics:
• Prerequisites to install ObjectScale on an offline OpenShift cluster
• Prepare the OpenShift cluster
• Download the charts, software images, and signature verification files from Dell Support
• Verify the downloaded files needed to install ObjectScale on an offline cluster
• Upload ObjectScale images to the private registry
• Create and prepare the necessary namespaces in Red Hat OpenShift
• Deploy CSI bare-metal driver and ObjectScale
• Complete the initial setup of ObjectScale
• Next steps with ObjectScale

Prerequisites to install ObjectScale on an offline


OpenShift cluster
Ensure that the following prerequisites are met before beginning:
● A Linux system with sufficient free space (at least 150 GB) and network connectivity to the local repository. The Linux
system is used to download, extract, and push the ObjectScale software to the local repository.
● kubectl 1.25 and 1.26
● Dell recommends using a virtual machine with Docker, with:
NOTE: If you are using a private docker registry with no HTTPS: Enable insecure registries.

○ Login credentials for the local docker registry


○ All Certificates applied to push and pull docker images
○ Running private docker registry (address:port)

Prepare the OpenShift cluster


In order to run kubectl and/or Helm commands from a Linux system against OpenShift cluster, obtain the kube config file
from the OpenShift cluster.

About this task


A Linux workstation is used to execute the helm and kubectl commands needed to install and manage ObjectScale on OpenShift.
Examples in this document use the default location for the kubectl (Kubernetes control binary) configuration file. The default
location for the Kubernetes configuration file is $HOME/.kube/config.
Commands may be run from either a Linux system with kubectl/helm or the OpenShift cluster service node.

Steps
1. On your Linux workstation, create the kube directory.

mkdir -p ~/.kube

28 Install ObjectScale on an offline cluster


2. Using SCP copy the kubeconfig file from the service node to the Linux workstation. Command syntax is:

scp root@<SERVICE_NODE_IP>:/root/ocp4/auth/kubeconfig ~/.kube/config

You will need to provide the password for the service node to complete this step.

3. Edit the /etc/hosts to add the service node name to local hosts file.
a. Locate the service node name in the config file

grep server ~/.kube/config

server: https://api.ocp4.myhost.com:6443

b. Add the service node entry obtained above to the /etc/hosts file:

<SERVICE_NODE_IP> <SERVICE_NODE_NAME> api.ocp4

For example:

10.55.66.100 api.ocp4.myhost.com api.ocp4

4. Verify accessibility to the service node by running this command on the Linux workstation:
a. Get a list of all of the nodes in your cluster:

kubectl get nodes

b. Get a list of the Pods in the current namespace:

kubectl get pods

c. List deployments in the current namespace:


NOTE: If ObjectScale has not yet been deployed to the cluster, there will be no ObjectScale related deployments
listed in the default namespace.

kubectl get deployments

Download the charts, software images, and signature


verification files from Dell Support
You will need to download the version of these files for this ObjectScale release to install on an offline OpenShift cluster.

Steps
1. On a local Linux workstation create, and then open, a directory with at least 150 GB of free space for downloading and
extracting the files needed for the version of ObjectScale.
a. Create a directory for the files for this version of ObjectScale:

mkdir <DIR>

b. Go to the directory:

cd <DIR>

2. Open a browser and go the ObjectScale 1.3.0 Software Series page.


a. Select your Model.
b. Click the Drivers & Downloads tab for your ObjectScale model.

Install ObjectScale on an offline cluster 29


3. On the Drivers & Downloads tab for your model, filter the available files for your model by selecting a version. The list of
available software for the selected ObjectScale model and version are shown.
4. Download the Dell Bare-Metal CSI Driver helm charts dellemc-csi-helm-charts-1.3.0-121.2e006fb.tgz file to
the directory you created on the local Linux workstation.
This .tgz file contains all of the required helm charts for the release of Dell Bare-Metal CSI Driver.
5. Download the ObjectScale helm charts objectscale-helm-charts-1.3.0.tgz file to the directory you created on
the local Linux workstation.
This .tgz file contains all of the required helm charts for the release of ObjectScale.
6. Download the seven ObjectScale software image .tgz files 00-06 and the unpacker script, objectscale-images-
mgt-1.3.0.sh.
● objectscale-images-1.3.0.tgz.00
● objectscale-images-1.3.0.tgz.01
● objectscale-images-1.3.0.tgz.02
● objectscale-images-1.3.0.tgz.03
● objectscale-images-1.3.0.tgz.04
● objectscale-images-1.3.0.tgz.05
● objectscale-images-1.3.0.tgz.06
● objectscale-images-mgt-1.3.0.sh
7. Download the files needed for offline signature verification for this version to the directory you created on the local Linux
workstation.
● objectscale-signatures-1.3.0.tgz
● objectscale-signatures-1.3.0.tgz.signed.bin
● obs-public-1.3.0.pem

Verify the downloaded files needed to install


ObjectScale on an offline cluster
Steps
1. On a local Linux workstation, verify the signatures file.

openssl dgst -sha256 -verify obs-public-1.3.0.pem -signature ./objectscale-


signatures-1.3.0.tgz.signed.bin objectscale-signatures-1.3.0.tgz

When successful, the signature validation returns Verified OK.


2. Expand the signature bundle files into a signatures subdirectory:
a. Make a new subdirectory names signatures.

mkdir signatures

b. Expand the objectscale-signatures-1.3.0.tgz into this subdirectory.

tar xvf objectscale-signatures-1.3.0.tgz -C signatures

As an example, the output for the 1.3.0 ObjectScale release is shown:

./objectscale-images-1.3.0.tgz.02.signed.bin
./OBJECTSCALE_CE_30TB.xml.signed.bin
./objectscale-images-mgt-1.3.0.sh.signed.bin
./objectscale-images-1.3.0.tgz.05.signed.bin
./obs-public-1.3.0.pem.signed.bin
./objectscale-images-1.3.0.tgz.06.signed.bin
./objectscale-online-image-digests-1.3.0.txt.signed.bin
./dellemc-csi-helm-charts-1.3.0-121.2e006fb.tgz.signed.bin
./objectscale-verify-online-digests-1.3.0.sh.signed.bin
./objectscale-images-1.3.0.tgz.03.signed.bin

30 Install ObjectScale on an offline cluster


./objectscale-images-1.3.0.tgz.04.signed.bin
./objectscale-helm-charts-1.3.0.tgz.signed.bin
./objectscale-manifest-1.3.0.json.signed.bin
./objectscale-images-1.3.0.tgz.00.signed.bin
./objectscale-images-1.3.0.tgz.01.signed.bin

3. Verify the public key file:

openssl dgst -sha256 -verify obs-public-1.3.0.pem -signature signatures/obs-


public-1.3.0.pem.signed.bin obs-public-1.3.0.pem

When successful, the signature validation returns Verified OK.


4. Once you have validated that the obs-public-1.3.0.pem is valid, you can use that file to verify each of the other
downloaded files:

openssl dgst -sha256 -verify obs-public-1.3.0.pem -signature signatures/


<SIGNED.BIN_FILENAME> <DOWNLOADED_FILENAME>

For example, to verify the OBJECTSCALE_CE_30TB.xml file, you would use the following command:

openssl dgst -sha256 -verify obs-public-1.3.0.pem -signature signatures/


OBJECTSCALE_CE_30TB.xml.signed.bin OBJS_FREE_30TB_5307094_18-Oct-2021.xml

Repeat this process for all other downloaded files.

5. After validating the downloaded files, move the objectscale-signatures-1.3.0.tgz.signed.bin into the
signatures directory.

mv objectscale-signatures-1.3.0.tgz.signed.bin ./signatures

Upload ObjectScale images to the private registry


Steps
1. At the Linux workstation CLI, use the following syntax to connect to the local registry using Docker:

docker login <REPOSITORY>

2. Make the provided unpacker script executable:

chmod +x ./objectscale-images-mgt-1.3.0.sh

3. Then, run the unpacker script to push the files to the registry:

./objectscale-images-mgt-1.3.0.sh <REPOSITORY>

Pushing the images to the repository may take as long as twenty minutes.

Install ObjectScale on an offline cluster 31


Create and prepare the necessary namespaces in Red
Hat OpenShift
ObjectScale and certain CSI components require their own namespaces (an OpenShift project) to properly function. You can
create namespaces for each object store.

Prerequisites
● If the ObjectScale Qualification Tool precheck report showed another scheduler extender on the cluster, follow the
OpenShift steps of Manual Kubernetes Scheduler Configuration from https://github.com/dell/csi-baremetal-
operator/blob/master/docs/MANUAL_SCHEDULER_CONFIGURATION.md. These steps ensure that the current
scheduler extender is NOT overwritten. Do these steps before you deploy the Bare-Metal CSI Driver.

About this task


Complete these steps to create and prepare the required namespaces.

Steps
1. Set these environment variables:

export CSI_NS=<CSI_NAMESPACE>

export SSO_NS=openshift-secondary-scheduler-operator

export OBJECTSCALE_NS=<OBJECTSCALE_PROJECT_NAMESPACE>

2. Create a namespace where you can install the secondary scheduler operator.
Red Hat provides this secondary scheduler operator, which is Kubernetes-level software like the default scheduler. You must
install the secondary scheduler on its own namespace.

kubectl create ns $SSO_NS

3. Create a namespace where you can install the CSI Bare-Metal components.

kubectl create ns $CSI_NS

4. Create a namespace where you can install ObjectScale.

kubectl create ns $OBJECTSCALE_NS

5. Optional: Create a namespace for one or more object stores.


You can deploy object stores within the same namespaces as ObjectScale or within their own, separate namespaces.

kubectl create ns <OBJECT_STORE_NAMESPACE>

6. Add privileges for pod security for the namespaces.


a. Apply the privileges for pod security to the secondary-scheduler operator namespace.

# kubectl label --overwrite ns


$SSO_NS pod-security.kubernetes.io/enforce=privileged pod-security.kubernetes.io/
audit=privileged pod-security.kubernetes.io/warn=privileged security.openshift.io/
scc.podSecurityLabelSync="false"

b. Apply the privileges for pod security to the CSI namespace.

# kubectl label --overwrite ns

32 Install ObjectScale on an offline cluster


$CSI_NS pod-security.kubernetes.io/enforce=privileged pod-security.kubernetes.io/
audit=privileged pod-security.kubernetes.io/warn=privileged security.openshift.io/
scc.podSecurityLabelSync="false"

c. Apply the privileges for pod security to the ObjectScale namespace.

OpenShift 4.12:
# kubectl label --overwrite ns
$OBJECTSCALE_NS pod-security.kubernetes.io/enforce=privileged pod-
security.kubernetes.io/audit=privileged pod-security.kubernetes.io/warn=privileged
security.openshift.io/scc.podSecurityLabelSync="false"

OpenShift 4.13:
# kubectl label --overwrite ns $OBJECTSCALE_NS pod-security.kubernetes.io/
audit=privileged pod-security.kubernetes.io/warn=privileged security.openshift.io/
scc.podSecurityLabelSync="false"

7. Create the following role and rolebinding in the $CSI_NS namespace.


a. Set the context to the $CSI_NS.

kubectl config set-context --current --namespace=$CSI_NS

b. Create the role.yaml for CSI in this namespace.


Contents of role.yaml. Ensure that this yaml file is properly formatted and contains the values that are shown here:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-csi
namespace: <CSI_NAMESPACE>
rules:
- apiGroups:
- security.openshift.io
resourceNames:
- privileged
resources:
- securitycontextconstraints
verbs:
- use

Where: <CSI_NAMESPACE> is the name of your CSI namespace.

c. Create the rolebinding.yaml for CSI in this namespace.


Contents of rolebinding.yaml. Ensure that this yaml file is properly formatted and contains the values that are
shown here:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: role-binding
namespace: <CSI_NAMESPACE>
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: pod-csi
subjects:
- kind: ServiceAccount
name: csi-baremetal-extender-sa
namespace: <CSI_NAMESPACE>
- kind: ServiceAccount
name: csi-node-sa
namespace: <CSI_NAMESPACE>

Where: <CSI_NAMESPACE> is the name of your CSI namespace.

8. Apply these yaml files.

Install ObjectScale on an offline cluster 33


a. Apply the role.yaml.

kubectl apply -f role.yaml -n $CSI_NS

b. Apply the rolebinding.yaml.

kubectl apply -f rolebinding.yaml -n $CSI_NS

9. You should ensure that the OCP cluster global registry pull secret includes the registry pull secret for the docker.io registry
server. If the registry pull secret for docker.io is already in the global cluster pull secret, you may skip the steps below. If the
registry pull secret must be added or updated, follow the steps below.
a. Download the current OCP global pull secrets to a temporary file.

oc get secret/pull-secret -n openshift-config --template='{{index .data


".dockerconfigjson" | base64decode}}' > ocp_cluster_pull_secret

b. Enter the following command to add or update the registry secret for the registry server which hosts the ObjectScale
images to the temporary file.

oc registry login --registry="docker.io/objectscale" --auth-


basic="<username>:<password>" --to=ocp_cluster_pull_secret
<username>:<password> - registry user name and password

c. Enter the following command to update the global registry pull secret.

oc set data secret/pull-secret -n openshift-config --from-


file=.dockerconfigjson=ocp_cluster_pull_secret

d. Delete the temporary file.

rm -f ocp_cluster_pull_secret

The update to registry pull secret is rolled out to all nodes in the cluster. This update can take some time, depending on the
size of the cluster.

Deploy CSI bare-metal driver and ObjectScale


Steps
1. Set these additional environment variables:

export REGISTRY=<PRIVATE-REGISTRY>:<PRIVATE-REGISTRY_PORT>

export CSI_VERSION=1.3.0-648.59a295a

export CSI_OPERATOR_VERSION=1.3.0-121.2e006fb

export CHARTS_DIR=<CHARTS_DIRECTORY>

NOTE: <CHARTS_DIRECTORY> is the directory that you created and where you downloaded the ObjectScale
charts .tgz files.

2. Extract the CSI helm charts .tgz file.

tar zxf dellemc-csi-helm-charts-1.3.0-121.2e006fb.tgz

34 Install ObjectScale on an offline cluster


3. Install the Secondary Scheduler Operator.

helm install secondary-scheduler-operator $CHARTS_DIR/dellemc-csi-helm-charts/


secondaryscheduleroperator-$CSI_OPERATOR_VERSION.tgz -n $SSO_NS --set
global.registry=$REGISTRY --set csv.version=secondaryscheduleroperator.v1.1.2 --set
image.tag=$CSI_OPERATOR_VERSION

Wait for the Secondary Scheduler Operator to start.

4. Verify that the Secondary Scheduler Operator pods are in Running status.

kubectl get pod -n $SSO_NS

5. Install CSI Bare-Metal Operator.

helm install csi-baremetal-operator $CHARTS_DIR/dellemc-csi-helm-charts/csi-baremetal-


operator-$CSI_OPERATOR_VERSION.tgz --set image.tag=$CSI_OPERATOR_VERSION --set
global.registry=$REGISTRY --namespace $CSI_NS

Wait for CSI Bare-Metal Operator to start.

6. Use helm to install the CSI Bare-Metal deployment:

helm install csi-baremetal $CHARTS_DIR/dellemc-csi-helm-charts/csi-baremetal-


deployment-$CSI_OPERATOR_VERSION.tgz --set image.tag=$CSI_VERSION --set
global.registry=$REGISTRY --set scheduler.patcher.enable=true --set
platform=openshift --set driver.drivemgr.type=halmgr --namespace $CSI_NS

Wait for approximately five minutes for CSI Bare-Metal Deployment to start.

7. After completing the installation process:


a. Verify that the new CSI storage classes have been created:

kubectl get storageclasses -n $CSI_NS

NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE


csi-baremetal-sc (default) csi-baremetal Delete WaitForFirstConsumer false 70m
csi-baremetal-sc-hdd csi-baremetal Delete WaitForFirstConsumer false 70m
csi-baremetal-sc-hddlvg csi-baremetal Delete WaitForFirstConsumer true 70m
csi-baremetal-sc-nvme csi-baremetal Delete WaitForFirstConsumer false 70m
csi-baremetal-sc-ssd csi-baremetal Delete WaitForFirstConsumer false 70m
csi-baremetal-sc-ssdlvg csi-baremetal Delete WaitForFirstConsumer true 70m
csi-baremetal-sc-syslvg csi-baremetal Delete WaitForFirstConsumer true 70m

b. Wait for the new CSI Pods to be Running status and the count of pods in the Ready column is matched (for example,
3/3), before continuing:

kubectl -n $CSI_NS get pods |grep csi-baremetal

csi-baremetal-controller-5cc46bcc74-np6dd 4/4 Running 0 6m17s


csi-baremetal-node-279hd 4/4 Running 0 6m17s
csi-baremetal-node-2ktc7 4/4 Running 0 6m17s
csi-baremetal-node-4zrd9 4/4 Running 0 6m17s
csi-baremetal-node-56bpx 4/4 Running 0 6m17s
csi-baremetal-node-7z9xp 4/4 Running 0 6m17s
csi-baremetal-node-controller-5796d96fcb-55g4s 1/1 Running 0 6m18s
csi-baremetal-node-s66sc 4/4 Running 0 6m17s
csi-baremetal-node-sk95x 4/4 Running 0 6m17s
csi-baremetal-operator-5ff49885bd-8zqxq 1/1 Running 0 6m42s
csi-baremetal-se-9gzs2 1/1 Running 0 6m17s
csi-baremetal-se-btpgr 1/1 Running 0 6m17s
csi-baremetal-se-xg8g2 1/1 Running 0 6m17s

8. Extract the ObjectScale helm charts .tgz file.

tar zxf objectscale-helm-charts-1.3.0.tgz

Install ObjectScale on an offline cluster 35


9. Display the Dell End User License Agreement (EULA):

helm show readme $CHARTS_DIR/objectscale-portal-1.3.0.tgz | more

10. Set an environment variable for the EULA Revision Date value shown in the last line of the readme file.
You must use this value in the helm install command to deploy ObjectScale. The date is in the format: ddMMMYYYY.

export EULA_DATE=<ddMMMYYYY>

11. Install Postgres.

helm install postgres $CHARTS_DIR/postgres-ha-{keyref: objectscale_version}.tgz --


set global.storageClass=csi-baremetal-sc-ssdlvg --set global.registry=$REGISTRY --
namespace=$OBJECTSCALE_NS

12. Install ObjectScale.


This step installs the ObjectScale UI, ObjectScale Manager, DECKS, and KAHM on the OpenShift cluster.
NOTE: You can modify these commands to tailor the storage resources that are used for the storageClassName and
secondaryStorageClass by using your preferred csi-baremetal Storage Class.
storageClassName
The storage class used for the ObjectScale components that require high performance storage
(csi-baremetal-sc-ssdlvg is used in the command provided below).
secondaryStorageClass
The storage class used for all other ObjectScale components that do not require high
performance storage (csi-baremetal-sc-ssdlvg is used in the command provided below).

helm install objs $CHARTS_DIR/objectscale-portal-{keyref: objectscale_version}.tgz --


set global.watchAllNamespaces=true
--set global.registry=$REGISTRY --set global.storageClassName=csi-baremetal-sc-ssdlvg
--set global.secondaryStorageClass=csi-baremetal-sc-ssdlvg
--set global.platform=OpenShift --set global.schedulerName=csi-baremetal-
scheduler --namespace $OBJECTSCALE_NS --set accept_eula=$EULA_DATE --set
global.deploymentmodel=application:openshift

13. Get a list of all the Kubernetes applications to ensure that all the ObjectScale components are present.

kubectl -n $OBJECTSCALE_NS get app

NAME TYPE VERSION


decks decks 3.0.2
dellemc-objectscale-license dellemc-license 3.0.2
kahm kahm 2.3.0
objectscale-manager objectscale-manager 1.3.0
objectscale-monitoring
supportassist-objectscale supportassist-objectscale 3.0.2

14. After a few minutes, verify that the ObjectScale components are in Deployed status.

helm list --all-namespaces

NAME NAMESPACE REVISION


UPDATED STATUS CHART
APP VERSION
csi-baremetal csi-ns 1
2023-09-30 07:27:41.343043396 +0000 UTC deployed csi-baremetal-
deployment-1.3.0-121.2e006fb 1.3.0
csi-baremetal-operator csi-ns 1
2023-09-30 07:27:17.85109974 +0000 UTC deployed csi-baremetal-
operator-1.3.0-121.2e006fb 1.3.0
decks objectscale 1

36 Install ObjectScale on an offline cluster


2023-09-30 10:08:50.813194581 +0000 UTC deployed decks-3.0.2
3.0.2
dellemc-objectscale-license objectscale 1
2023-09-30 10:12:49.410034042 +0000 UTC deployed dellemc-license-3.0.2
3.0.2
jake-str1 objstr-ns 1
2023-09-30 10:19:17.618885416 +0000 UTC deployed ecs-cluster-1.3.0
1.3.0
kahm objectscale 1
2023-09-30 10:08:46.107519914 +0000 UTC deployed kahm-2.3.0
2.3.0
objectscale objectscale 1
2023-09-30 09:57:58.85858592 +0000 UTC deployed objectscale-portal-1.3.0
1.3.0
objectscale-manager objectscale 1
2023-09-30 09:58:09.947126415 +0000 UTC deployed objectscale-manager-1.3.0
1.3.0
postgres objectscale 1
2023-09-30 08:58:19.52372846 +0000 UTC deployed postgres-ha-1.3.0
1.3.0
secondary-scheduler-operator openshift-secondary-scheduler-operator 1
2023-09-30 07:25:55.222338019 +0000 UTC deployed
secondaryscheduleroperator-1.3.0-121.2e006fb 1.1.0
snmp-notifier objectscale 1
2023-09-30 10:14:05.448733759 +0000 UTC deployed snmp-notifier-2.3.0
2.3.0
supportassist-objectscale objectscale 1
2023-09-30 10:15:13.361602021 +0000 UTC deployed supportassist-3.0.2
3.0.2

15. Now that the KAHM app has been deployed, install the csi-baremetal-alerts chart into the default namespace:

helm install csi-baremetal-alerts --namespace $CSI_NS $CHARTS_DIR/csi-baremetal-


alerts-1.3.0.tgz

Complete the initial setup of ObjectScale


Now that you have deployed ObjectScale, continue the initial set up by applying a valid ObjectScale license and then, optionally,
configuring SupportAssist.
NOTE: Applying the ObjectScale license enables your licensed capacity and other features, such as SupportAssist remote
support.
● Apply an ObjectScale license
● Connect to Dell support services through SupportAssist

Access the ObjectScale Portal on an OpenShift cluster


To access the ObjectScale on an OpenShift cluster, follow these steps to connect to the ObjectScale Portal with a supported
internet browser.

Prerequisites
If you have not already done so, obtain the network address (EXTERNAL-IP) of the ObjectScale Portal user interface:

kubectl -n <OBJECTSCALE_NAMESPACE> get svc objectscale-portal-external

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE


objectscale-portal-external LoadBalancer 10.55.66.100 10.x.y.z 4443:30436/TCP 9m2s

Steps
1. Open a supported web browser and enter the External IP address and port for the objectscale-portal service:

Install ObjectScale on an offline cluster 37


https://<EXTERNAL_IP_ADDRESS>:4443

The ObjectScale Portal login page appears.


2. Use your Username and Password credentials to log in to the ObjectScale Portal user interface.
For OpenShift, obtain your credentials using the OpenShift identity provider user that is configured for accessing the
ObjectScale instance or object store.
● You can log in as kubeadmin or an OpenShift Identity Provider User cluster-admin and can have access to the
entire ObjectScale instance and you can create object stores in any namespace you have configured.
● You can log in as an OpenShift Identity Provider User end user and can access only the namespaces to which you have
permissions.
○ If you log in as an end user who has edit permissions to a specific namespace, you can manage the object store in that
namespace. All other ObjectScale features will not be available.
○ If you log in as an end user who has view permissions to a specific namespace, you can view the Object Store in that
namespace. All other ObjectScale features will not be available.

ObjectScale Portal user interface


When launched, the ObjectScale Portal user interface Dashboard page appears.

Navigating within ObjectScale Portal


You can view different portions of the ObjectScale Portal user interface by selecting a section from the left-side navigation
panel. ObjectScale only presents users with the sections of the interface that they can view or edit based on their assigned
permissions.
After selecting a section of ObjectScale Portal, you can move to another section by clicking its name within the ObjectScale
navigation panel. ObjectScale also creates a clickable breadcrumb navigation, which is presented at the top of the ObjectScale
Portal user interface.

Notifications for completed user actions


ObjectScale Portal displays ephemeral notifications at the top of the Internet browser window after completing certain actions.
These notifications are temporary alerts to the current user. They provide information about recently completed user actions or
anything that needs the attention of the user within the ObjectScale Portal user interface.
These notifications are not stored elsewhere within ObjectScale Portal. More detailed messages on these actions can be found
on the Alerts and Logs pages.

Apply an ObjectScale license


Use the ObjectScale Portal user interface to activate an ObjectScale license and apply the license file to the ObjectScale
instance.

Prerequisites
To obtain the XML license file from the Dell license management website, you must have the License Authorization Code (LAC),
which is emailed from Dell. If you have not received the LAC, contact your Customer Support representative.

About this task


Activating ObjectScale with a valid license allows you to create object stores.
● Subscription and Permanent licenses allow you to create object stores with an overall capacity greater than 30 TiB, within
the licensed capacity.
● The Community Edition license allows you to create object stores up to an overall capacity no larger than 30 TiB, and limits
SupportAssist features.
To add a license:

38 Install ObjectScale on an offline cluster


Steps
1. From the ObjectScale Portal user interface, click Administration.
The Administration sections that the user is authorized to view are displayed.
2. Click Licensing.
3. Click Apply.
The Apply License box appears.
4. Click Select to browse and upload the ObjectScale license file. Once uploaded, click Apply.
5. Expand the license in the Licensing table to display details about the ObjectScale license and its enabled features and
capacities.

Connect to Dell support services through SupportAssist


Use the ObjectScale Portal user interface to establish a connection through SupportAssist to ensure access to Customer
Support. SupportAssist enables ObjectScale to connect to Dell support services directly or through a gateway server.

Prerequisites
1. For SupportAssist connectivity you can connect directly with access to the Dell-maintained FQDN: esrs3-
core.emc.com:443.
2. You have applied a valid license to the ObjectScale instance.
3. You are an active Dell customer with login access to https://www.dell.com/support/home/.
4. You must obtain an access key and pin from Dell in order to configure SupportAssist for the first time. This access key and
pin ensure the accuracy of contact and other customer values and access to Dell Support. To obtain an access key and
pin, go to https://www.dell.com/support/home/en-us/product-support/product/objectscale/overview and click Generate
Access key. After completing the required form, Dell sends an email to the email address they have set up for the Dell portal
login. The email is from the "Dell | ServicesConnectivity Team" and contains the site ID, access key, and pin for the selected
customer.
NOTE: The generated access key is valid for seven days.
5. See "SupportAssist port requirements" listed in the ObjectScale Administration Guide and validate that the required ports
are configured properly before configuring SupportAssist.
6. If you are planning on connecting using a Gateway server, ensure that a Dell Secure Connect Gateway (SCG 5.1x) server is
configured on site.

Steps
1. From the ObjectScale Portal user interface, click Administration.
The Administration sections that the user is authorized to view are displayed.
2. Click the SupportAssist tab.
3. Accept the Connect to SupportAssist End User License Agreement.
4. On the Connect to SupportAssist page, select the Select Connection Type to determine which SupportAssist connectivity
type to deploy:
● Select Connect Directly to Dell Support services to connect ObjectScale directly to Dell.
NOTE: Dell highly recommends deploying ObjectScale SupportAssist using a Secure Connect Gateway.
● Select Connect via Gateway Server to connect ObjectScale to Dell through a Secure Connect Gateway (SCG) server.
You must add the Priority, Gateway IP/Host, and Gateway Port values for the gateway server in the Connect via
Gateway Server option.

5. On the Access Key Portal page, select the Model and Software Instance.
6. Configure the Access Key value for Site ID in the Party Number field, and then click Submit. The Access Key is generated,
and the details of the Access Key is emailed to the registered email address.
7. On the Access Key & PIN SupportAssist page, enter the Access Key and PIN SupportAssist values for SiteID, Access Key,
and PIN, and then click Next.
8. Select the Support Contacts tab to add existing Primary or Secondary contacts.
a. Provide the listed values for the Primary contact.
● First Name
● Last Name

Install ObjectScale on an offline cluster 39


● Email address
● Phone number
● Preferred Language
b. Click Add Secondary Contact and provide the required values to configure the contact.
9. Click Apply.
10. In the Connection tab verify that the SupportAssist connection was successful and matches the example.

Figure 2. Successfully configure SupportAssist

If a Failed Status is shown, view the Status Message to determine the failure details.
11. Click Test Connectivity to validate the SupportAssist connection. When successful, the value that is shown in the Last
Connected column is updated with a newer date and time.
As required, use the panel refresh icon to update the screen before automatic updates.
12. Remote support allows authorized Remote Support engineers to troubleshoot your ObjectScale instance. Enable Remote
Support on the SupportAssist page, Connection tab. You can also click the EDIT button and enable Remote Support on the
Connect to SupportAssist page.

Next steps with ObjectScale


You have successfully installed and activated Dell ObjectScale with your licensed capabilities, performance, and serviceability.
You can begin using ObjectScale. For an overview of the workflows and capabilities of ObjectScale, go to Getting started with
ObjectScale.

40 Install ObjectScale on an offline cluster


5
Getting started with ObjectScale
Topics:
• Set up initial identity and access accounts
• Create your first object store and bucket(s)
• Run S3 workloads using the ObjectScale resources
• View ObjectScale Health
• ObjectScale Performance Dashboard
• Delete the object store and bucket(s)
• View the Metrics dashboards for an object store

Set up initial identity and access accounts


Before you can create new object stores within ObjectScale, you must configure identities within ObjectScale for IAM-based
accounts and users with the necessary permissions and policies, including S3 permissions.
To set up an account and user with the appropriate policy to run S3, you must:
1. Create a new IAM account for the new user
2. Create a new user within the IAM account
Ensure that you download and save the .csv containing the secret key for this new user. This is the only time that the .csv
file can be downloaded.
3. Create a new policy
For the user to have S3 access, ensure that you create a S3 Service-type policy with the appropriate Action permissions
allowed.
4. Attach the policy to the user permissions

New Accounts
This task describes how to create an account with the ObjectScale Portal user interface.

Steps
1. From the ObjectScale Portal user interface, click Accounts.
The list of Accounts that the user is authorized to view is displayed.
2. Select NEW ACCOUNT.
New Account window opens.
3. Fill all the required fields in the New Account page.

Field Description
Alias An informal name for the new account.
Description Enter details about the new account.
Encryption Encryption is disabled by default.
Click to enable or disable encryption.

Labels Optionally, enter up to five labels on the account.

4. Click SAVE.

Getting started with ObjectScale 41


The new Account is saved with added authorization for buckets.

Create an IAM user within an account


Use the ObjectScale Portal user interface to create an IAM user within the selected account.

Steps
1. From the ObjectScale Portal user interface, click Accounts.
The list of Accounts that the user is authorized to view is displayed.
2. Select an account from the account list and then select the Users tab.
The Users list appears.
3. Click New User.
The New User window opens.
4. Fill all the required fields in the New User window.

Field Descriptions
Name a. Enter name of the user.
b. To go to Permissions tab, click Next.
Permissions a. You can add permissions to the new user in one of the following ways:
● Permission boundary and copy permission from an existing user to the current account.
● Add existing group of current account and permission boundary.
● Add existing policies of current account and permission boundary.
b. To go to Tags tab, click Next.
Tags You can add one or more tags to a User.
(Optional) a. Enter the details for Key and Value for a tag.
b. To go to Review tab, click Next.
Review a. Review details of the user.
b. Click CREATE USER.
Secret Keys The Secret Keys tab consists of:
● A list of users that are created along with permission, Access Key ID, and Access Secret keys.
● To download the user table in CSV format, click DOWNLOAD.CSV button.
NOTE: This is the only time that you will be able to download this CSV for this user.

If this access secret key is lost, delete and create a new secret key.

42 Getting started with ObjectScale


Figure 3. New User - Secret Keys tab

5. Click Complete.
A new IAM user is added in ObjectScale.

Create a new customer-managed policy


This task describes how to add policies to an account with the ObjectScale Portal user interface.

Steps
1. From the ObjectScale Portal user interface, click Accounts.
The list of Accounts that the user is authorized to view is displayed.
2. Select an account from the account list and then select the Policies tab.
The Policies list appears.
3. Click NEW POLICY.
The New Policy window opens.
4. Create the policy using the New Policy wizard.
a. On the General tab, add Name and Description for the new policy.
b. On the Editor tab, click Visual or JSON to fill out the policy editor.
Click ADD POLICY STATEMENT to add additional statements.

Getting started with ObjectScale 43


Figure 4. New Policy - Editor tab

c. On the Review tab, verify that the previewed policy statement is accurate and then click SAVE.
New policy is created for the account.

Attach a policy to an account entity


Use the ObjectScale Portal user interface to attach policies to an account entity.

Steps
1. From the ObjectScale Portal user interface, click Accounts.
The list of Accounts that the user is authorized to view is displayed.
2. Select an account from the account list and then select the Policies tab.
The Policies list appears.
3. Select a policy, and click Usage and then select Permissions.
4. Click ATTACH
● The Attach Policy window opens, and consists of:
○ The User tab opens by default and lists all the Users in the Account.
○ The Group tab lists all the Groups in the Account.
○ The Role tab lists all the Roles in the Account.
● Any User, Group, or Role that are attached to policy are pre-selected.
5. Select one or more Users, Groups, or Roles, and click SAVE.
The selected User, Group, and Roles are added to the policy.

44 Getting started with ObjectScale


Create your first object store and bucket(s)
After setting up the initial account and user with the necessary policy for S3, create your first object store. After creating the
object store, associate it with the account created earlier. Finally, create a bucket within that object store.
To set up an object store and bucket to prepare to run S3 activities:
● Create an object store
● Associate an account with an object store
● Create a bucket

Create an object store


About this task
Each object store is a unique and independent storage system with an individualized lifecycle. One or more object stores are
deployed by each ObjectScale instance. Object stores are created, updated, and deleted independently from all other object
stores managed by the shared ObjectScale instance.
From ObjectScale Portal, use the New Object Store wizard to set the initial object store resource requirements based on the
information collected to satisfy the demands specified by the administrator.

Steps
1. From the ObjectScale Portal user interface, click Administration > ObjectScale.
The list of Object Stores in the selected namespace that the user is authorized to view is displayed.
2. Select the appropriate namespace from the namespace drop-down on the upper right the ObjectScale Portal user interface.
3. Click New Object Store.
The New Object Store wizard appears.
4. In the General configuration page complete the required fields.

Option Description
Name Enter the Name for the object store. You must verify the name by clicking the VERIFY button next to
the name.
Namespace Verify that you are creating the object store in the correct namespace.
Version Select the Version. This logically tags the object store to allow filtering via a group.
Group Enter the Group value(s) to apply to the object store. Use the version to logically group the object
stores and to filter the object stores with the group.
The Group field is optional.

My Templates If previously created, select a template to populate the configuration values for the new object store.
The My Templates field is optional.

Data protection ObjectScale is the only supported data protection type.


type
User Storage Select the storage class to be used to provision the user storage for object store and bucket metadata.
Class
System Storage Select the storage class to be used to provision the management service storage for metadata, service
Class registration, and metrics data.
It is recommended to choose System Disk Logical Volumes for System Storage Class. Select other
options only if there is an extra disk available to hold the System meta data. Please note that one whole
disk of the selected storage type will be utilized for LVG allocation.

5. Click Quick or Advanced to continue with the creation of the new object store.
● Click Quick and set the Requested Raw Capacity for the new object store in the Storage And Review section of the
wizard.

Getting started with ObjectScale 45


ObjectScale will make workload selections based on this requested value. Optionally, expand and review the selected
values, and set any optional labels or other values, at this time.
Afterwards, click Save to create the object store, which will take approximately 15 to 20 minutes to become complete.
● Click Advanced and go through the next steps to manually create the object store.
6. Optional: Complete the Labels page.
● Type the label name in the Name field. The name can be 63 characters or less. It must begin and end with an
alphanumeric character. Names can contain dashes (-), underscores (_), dots (.) and alphanumeric values in between.
● Value is an optional field and can be 63 characters or less. It must begin and end with an alphanumeric character. Values
can contain dashes (-), underscores (_), dots (.) and alphanumeric values in between.
When adding more than one label, click ADD LABEL. You can add up to five labels to an object store.

7. Complete the Topology configuration page.


Review the available resources and select the desired topology scheduling to apply.
To enable node exclusion using topology labels, select Advanced and select the nodes to exclude while creating the object
store. You can filter the nodes by selecting the Source, Key, and Value of the desired nodes to exclude.

8. In the Storage configuration page, set desired Storage values and click Next to continue.
In this step define the following storage values for the new object store:
● Requested Raw Capacity for the object store. In software defined storage, Requested Raw capacity can be greater
than currently licensed capacity but cannot be greater than total cluster capacity.
● Storage Server Replica(s) for the object store. The number of storage server replicas should be less than or equal
to maximum storage server replica count and available storage server replicas count. When capacity is incremented, the
storage server replica count may increase.
● Volumes per Storage Server Replica for the object store.
Based on these values, ObjectScale will configure the remaining fields within the Storage tab.

9. Optional: Complete the Connectivity configuration page and click Next.


● Select Automatic Network Configuration to allow ObjectScale to automatically configure networking with Kubernetes
internally signed certifications.
● Select Advanced Network Configuration to customize the network interface types and TLS certificate generation
details.
Complete the required connectivity values for the object store S3, Management, and Replication tabs.
For each object store connectivity service, set the Service type and then the associated connectivity values.
Additionally for the S3 and Management services, define the certificate type that each service will use.
NOTE: An object store will not support Bucket Replication features if ClusterIP is selected as the Service type for
the Replication Service.
10. NOTE: If necessary, click Edit to modify any of the values for the object store that have been incorrectly set.

NOTE: Additionally, if you wish to save a portion of the object store settings as a template for future use, simply add a
name to the Save as template field at the bottom of this page of the wizard.
Finally, use the Review page to review the values to be used for configuring the new object store and click Save.
The object store creation process begins and will take approximately 15 to 20 minutes to become available.
11. Optional: Refresh the UI to observe the various states of Health for the object store during the creation process such as
Initializing, Starting, and Provisioning. The process is complete when the Health of the object store becomes Avaliable.
During object store creation, new pods for the object store become visible in the selected namespace.

Results
The new object store has been created. Before you can create buckets or use this object store, you must associate this object
store with an IAM account. See Associate an account with an object store for more information.

46 Getting started with ObjectScale


View the Summary of an object store
About this task
The object store Summary page in the ObjectScale Portal user interface displays an at-a-glance view of the details about the
configuration of the selected object store.

Steps
1. From the ObjectScale Portal user interface, click Administration > ObjectScale.
The list of Object Stores in the selected namespace that the user is authorized to view is displayed.
2. Select the appropriate namespace from the namespace drop-down on the upper right the ObjectScale Portal user interface.
3. Click the name of the object store that you want to review.
The Object Store Summary page is displayed. Here you can review the high-level details about the select object store:
● General details
● Storage Classes
● Storage details
● S3 Service details
● Management Service details
● Replication Service details

Associate an account with an object store


This task describes how to associate an account with an object store in the ObjectScale Portal user interface.

About this task


After adding an account to an object store that account becomes a tenant within that object store. A tenant is a logical
construct resulting from the binding of an account to an object store.

Steps
1. From the ObjectScale Portal user interface, click Administration > ObjectScale.
The list of Object Stores in the selected namespace that the user is authorized to view is displayed.
2. Select the appropriate namespace from the namespace drop-down on the upper right the ObjectScale Portal user interface.
3. Select the object store to add the tenant account to by clicking the object store name.
4. Select the Accounts tab.
The Accounts list appears displaying the accounts currently associated with the object store.
5. Click Add.
The Add Account to Object Store: <OBJECT_STORE_NAME> wizard is displayed.

Getting started with ObjectScale 47


Figure 5. Add an account to an object store
6. Complete the Add Account to Object Store wizard and click Save.
This process consists of:
● Select the Account ID, which will be the tenant to this account to be added to the object store.
● Type an Alias for this account.
● Enable/disable Encryption, as desired. By default the encryption status will show the account's encryption status.
● Default Bucket Quota limit for the account in the object store.
● Set the Block writes at Quota limits for which writes must be blocked.
● Set the Notification at Quota. This is the quota at which a notification should be sent out. This can be set by providing
a quota value in the input box or as percentage of block writes at quota by selecting appropriate % from the drop-down.
The selected tenant account is now associated with the object store and is a tenant of the object store.

Create a bucket
This section describes how to set up a new bucket using the ObjectScale Portal user interface.

Steps
1. From the ObjectScale Portal user interface, click Buckets.
The list of Buckets that the user is authorized to view is displayed.
2. Use the Namespace and Object store fields at the top of the Buckets page to locate the object store in which you want
to create the bucket.
a. Select the namespace from the namespace drop-down on the top of the Buckets page.
b. Select the name of the object store that contains the bucket.
3. Click New Bucket.

48 Getting started with ObjectScale


The New Bucket wizard appears.
4. In the General page, complete the required fields and then click Next:

Option Description
Name Type a name for the new bucket. Bucket names can consist only of lowercase letters, numbers, dots
(.), and hyphens (-).
Namespace Select the namespace. Only the namespaces for which the user has edit permissions are listed in the
dropdown.
Object Store Select the object store from the ObjectStore dropdown menu within which to create the bucket.
Name
Bucket Owner Select the bucket owner account from the Bucket Owner Account dropdown menu.
Account
To select any account, first remove the selected account to see all accounts, and click the dropdown
to list all accounts. Select an account from the data list, or you can begin typing the account id to the
Bucket Owner Account data list.

5. In the Policy page, describe the policy to apply to the bucket and then click Next.
For more detailed information about creating a bucket policy statement, see the "About bucket policies" section in the
ObjectScale 1.3 Administration Guide.
a. Switch to the Text view of the policy editor by clicking between the View and Text views of the policy editor.
b. In the Policy editor text field, type the JSON-formatted policy or copy and paste a previously created policy. The syntax
for policies is the same as the syntax used for Amazon AWS.
c. Provided your policy is valid, you can switch to the tree view of the Policy. The tree view makes it easier to view your
policy and to expand and contract statements.
6. In the Controls page, complete the required fields and then click Next.

Option Description
Versioning ● To maintain multiple versions of the same object within the bucket, set Versioning to On.
● To maintain a single version of an object, keep Versioning Off.
For more information, see the "Versioning configuration and effects on bucket operations" section in the
ObjectScale 1.3 Administration Guide.
Object Lock Enable Object Lock to protect objects from deletion or overwrite, for a fixed amount of time or indefinitely,
depending on the configuration.
● When Versioning is On, Object Lock protects versions.
● When Versioning is Off (or edited later to Suspended), Object Lock applies to the object. Delete
object and overwrite object operations are blocked for objects in the bucket with a lock that is still in
effect.
Optionally set a default Object Lock retention mode for the objects in this bucket. Objects are automatically
locked when they are added to a bucket that has a configured default retention lock. The default retention
lock is applied to objects even if the user does not have s3:PutObjectLegalHold and s3:PutObjectRetention
permissions. Available lock types are:
● GOVERNANCE
● COMPLIANCE
● NONE (Object Lock is enabled, but the retention mode is not set.)
If GOVERNANACE or COMPLIANCE is selected, you can optionally set a Retention period. Select either
Days or Years and type the number of days or years for the period. This setting is a default retention
period for the bucket. Objects can have explicit retention periods set for them. An explicit retention period
set on an object supersedes this bucket default retention period.
Object Lock is Off by default.
For more information about Object Lock states and how Object Lock works with the different versioning
states, see the "Object Lock configuration and the effects on bucket operations" section in the ObjectScale
1.3 Administration Guide.

Quotas Quotas is disabled by default.

Getting started with ObjectScale 49


Option Description
Enable Quotas for the bucket. When enabled, you can set the storage level or the object count level in
ObjectScale that results in:
● Block writes at Quota—a hard quota
● Notification at Quota—a soft quota
If a Default Bucket Quota is set at the account level when you are adding quotas to an object store, the
same value is set for Block Writes At. You can update quota values or disable the Quotas field in the
bucket.

Encryption Enable encryption to save the bucket data in an encrypted format. If Encryption was enabled at the
account level when add to object store, you cannot disable encryption in the bucket.
Encryption is disabled by default.

NOTE: Encryption cannot be disabled after you create the bucket with encryption enabled.

Bucket Enable Bucket logging to log requests for a specific source bucket to a designated target bucket in a
Logging consistent format. Enter the name of the target bucket in the Target Bucket field. Enter an optional prefix
to prepend to generated log files in the Prefix for Bucket Logging files field.
NOTE:
● The target bucket must be configured to allow bucket logging before allowing a source bucket to
set it as a target.
● The prefix makes it easier to locate log objects.
● Multiple source buckets can share the same prefix.

7. In the Event Rule page, complete the required fields and then click Next.
For more information about editing bucket event notifications, see .
You must have at least one notification destination for this account to set up a bucket event rule.

Option Description
Event Rule Name Type a name for the new event.
Events Select one or more event types that trigger this event notification.
Prefix/Suffix Type the object prefix or suffix values that trigger this event notification.
Send To Select the notification destination to be used to send the notifications for the configured events.

NOTE: Click Add Event Rule to add multiple event rules. You cannot create configurations on the same bucket that
share a common event type.

8. Finally, use the Review page to review the values for configuring the new bucket and click Save.
If necessary, click Edit to modify any of the values.

Results
The system creates the bucket in the object store, and the bucket name appears on the main Buckets page.

Run S3 workloads using the ObjectScale resources


Now that you set up object storage using an object store and a bucket, you can now begin to run S3 workloads.
Follow these tasks to run S3 or S3 Select workloads using ObjectScale:
● View the certificates for an object store
● Record S3 endpoint values
● Perform an S3 workload using the S3 Browser

50 Getting started with ObjectScale


View the certificates for an object store
Using the ObjectScale Portal user interface, you can view the certificate details for an existing object store.

About this task


To view the properties of an object store certificate:

Steps
1. From the ObjectScale Portal user interface, click Administration > ObjectScale.
The list of Object Stores in the selected namespace that the user is authorized to view is displayed.
2. Select the appropriate namespace from the namespace drop-down on the upper right the ObjectScale Portal user interface.
3. Click the name of the object store.
The Summary of the selected object store appears.

4. Click the Certificates tab.


The Certificates tab appears and consists of S3, Management, and Replication Reciever sections.
Each section of the Certificates tab shows details on the certificate for each of the object store services, including
certificate issuer, signing, and expiration details.

Record S3 endpoint values


About this task
Use this table to record the values used to create the bucket. These three S3 values, which you will collect duing this task, are
required for application access to the endpoint.

Object store name


Bucket name

ObjectScale Name S3 Browser Name Your Value


ACCESS KEY Access Key ID
SECRET_KEY Secret Access Key
EXTERNAL_ENDPOINT REST Endpoint

Steps
1. From the ObjectScale Portal user interface, click Administration > ObjectScale.
The list of Object Stores in the selected namespace that the user is authorized to view is displayed.
2. Select the appropriate namespace from the namespace drop-down on the upper right the ObjectScale Portal user interface.
3. Collect the S3 endpoint value from the object store Summary tab.
Record this value in the EXTERNAL_ENDPOINT value in the table above.
4. Locate the Secret Key .csv file previously saved locally for the user that owns the bucket in the object store.
This user should be a part of the IAM account that is a tenant within the selected object store.
Record this value as the SECRET_KEY in the table above.
5. Finally, collect the Access Key ID for the user.
a. Go to the object store Accounts tab and click on the name of the IAM account that manages the user account.
b. Select the Users tab and click on the name of the user account that will be used for S3.
c. Click on Secret Key and record the Access Key ID value displayed in the Secret Key table.
NOTE: If you do not have the previously created Secret Key for this user or wish to change it for any reason, you
can DEACTIVATE or REMOVE old Secret Keys/Access Key pairs and click ADD KEY to generate a new key for the
user.

Getting started with ObjectScale 51


Perform an S3 workload using the S3 Browser
About this task
Use the freely available S3 Browser or similar application to verify connectivity to the object store.

Steps
1. In S3 browser, create an account with the details of the object store bucket.
Use the S3 values you recorded in the last task to complete this step.
a. Type a Name for the account.
b. Select S3 Compatible Storage from the Account Type dropdown.
c. Enter the EXTERNAL_ENDPOINT value into the REST Endpoint field.
For example:
Rest Endpoint: 10.55.66.77:443

d. Enter the ACCESS KEY value into the Access Key ID field.
For example:
Access Key: AKIA5F587FA0E4E4FF81

e. Enter the SECRET_KEY value into the Secret Access Key field.
For example:
Secret Key: KqM5xHvaG7Bv9SH0lGoMrGYDWJrUoZsVvZ71JBeY

2. Connectivity is verified by creating new buckets and uploading objects via S3 Browser or a similar S3 Compatible application.
3. Optional: Create additional buckets using S3 browser or within the object store.
4. Use the S3 Browser to place one or move objects in this new bucket.
You should see the object(s) uploaded in the within the bucket.

View ObjectScale Health


Review ObjectScale health alerts and logs to learn of possible issues with the health of the object stores and ObjectScale.

Steps
1. From the ObjectScale Portal user interface, click Alerts to display the full list of current alerts.
You can filter the alerts that are listed using the dropdown above the table. You can filter alerts from the last 24 hours, the
last 7 days, last month, or all.
You can filter on some columns in the Alerts tab. To filter, click the filter icon in each column header and then type in what
you are trying to match on. If a filter is defined, then the icon is selected and circled.
a. Select an alert listed in the table.
b. If the alert type is Manual, use ACKNOWLEDGE or UNACKNOWLEDGE to modify an issue once reviewed.
2. To review health events, select Logs to display the full list of current events.
You can filter the events that are listed using the dropdown above the table. You can filter events from the last 24 hours, the
last 7 days, last month, or all.
You can filter on some columns in the Logs tab. To filter, click the filter icon in each column header and then type what you
are trying to match. If a filter is defined, then the icon is highlighted and circled.

ObjectScale Performance Dashboard


This section provides an overview of the Performance Dashboard in the ObjectScale Portal.
When you specify the namespace and the Object Store from the drop-down on the right side, the performance dashboard is
displayed. For each section, you can filter the data using the following timeframe options:
● Last 24 hours

52 Getting started with ObjectScale


● Last 7 days
● Last 30 days
● Custom Range
Each section has a slider to adjust the time displayed.

Table 3. Performance Dashboard Overview


Section Description
Latency (millisecond) Latency can be viewed as a graph for
the following parameters that you can
select using the radio button next to it:
● Read First Byte(p99)
● Write Last Byte(p99)
● Read First Byte(p50)
● Write Last Byte(p50)
● Total
Bandwidth (MBs) Bandwidth can be viewed for the
following options:
● Read
● Write
● Total
Throughput (bps) Throughput displays the graph for the
following options:
● Read
● Write
● Total
Requests by Response Codes (count) The following options are available:
● Server Error Requests
● Client Error Requests
● Info Requests
● Redirection Requests
● Success Requests
● All
Requests by Method (count) You can view the graph for the following
options:
● Get Requests
● Post Requests
● Put Requests
● Delete Requests
● Head Requests
● All

Delete the object store and bucket(s)


After testing your initial deployment of an Object Store, buckets, and objects, you can, optionally, clean up the ObjectScale
deployment for future use.
To cleanly delete an ObjectScale object store, you can optionally delete the bucket(s) created within that object store. Or you
can simply delete the object store.
Follow these tasks to delete these items:
● Delete a bucket
● Delete an object store

Getting started with ObjectScale 53


Delete a bucket
Using with the ObjectScale Portal user interface, delete a bucket when the object store no longer needs the bucket.

Prerequisites
The bucket must be empty. ObjectScale will only allow the deletion of buckets without any data within them.

Steps
1. From the ObjectScale Portal user interface, click Buckets.
The list of Buckets that the user is authorized to view is displayed.
2. Use the Namespace, Object store, Account, and Bucket name fields at the top of the Buckets page to locate the
bucket.
a. Select the appropriate namespace from the Namespace drop-down on the top of the Buckets page.
b. Select the name of the Object Store that contains the bucket.
c. Select the account from the Accounts dropdown.
To select another account, remove the current account to see all the available accounts. Then, select another account,
by either using the dropdown to display all accounts, or by typing the account id into to the Select an account field to
dynamically filter the list of accounts.
d. Optionally, type at least the first three characters of a Bucket name to filter the list of buckets.
3. Select the bucket to be deleted and click Delete.
ObjectScale prompts Are you sure you want to delete following bucket(s)?
4. In the Delete Bucket confirmation window, confirm that the appropriate bucket will be deleted.

Results
The bucket is deleted from the object store.

Delete an object store


About this task
Deleting the object store using the ObjectScale Portal user interface automatically deletes the storage (persistent volume claims
[PVCs]) that are associated with it. The volumes and file systems are removed from the back-end storage as a result. Deleting
an object store will not invoke garbage collection.
CAUTION: Deleting an object store deletes all associated user data, and the delete action is irreversible.

Steps
1. From the ObjectScale Portal user interface, click Administration > ObjectScale.
The list of Object Stores in the selected namespace that the user is authorized to view is displayed.
2. Select the appropriate namespace from the namespace drop-down on the upper right the ObjectScale Portal user interface.
3. Select the object store to delete by clicking the checkbox to the left of the object store name.
4. Click Delete and confirm in the dialog box that appears.
The object store disappears from the table before all the resources associated with it (pods, PVCs, volumes, so on) have
been deleted. The removal operations continue in the background for a few minutes (depends on the size of the store).
Removal can be monitored with kubectl (for example, using get pods).

View the Metrics dashboards for an object store


Steps
1. From the ObjectScale Portal user interface, click Administration > ObjectScale.
The list of Object Stores in the selected namespace that the user is authorized to view is displayed.
2. Select the appropriate namespace from the namespace drop-down on the upper right the ObjectScale Portal user interface.
3. Click the name of the object store.

54 Getting started with ObjectScale


4. Click ... if the Metrics link is not visible and then select Metrics.
The ObjectStore Overview dashboard appears.

Figure 6. ObjectStore Overview Dashboard


5. Use the drop-down menu in the upper left of the Metrics page to navigate between the various preconfigured object store
dashboards.

Grafana Dashboards
ObjectScale includes the collection, storage, and visualization of detailed metrics in Grafana dashboards. Administrators can use
these dashboards to drill into problems or identify developing problems with ObjectScale or problems with underlying storage
resources.
Similar metrics are also available at the ObjectScale-level, from the Dashboard page (must have admin permissions to see
them).
Grafana is an open-source metrics visualization tool. The ObjectScale installation deploys Grafana.
See Grafana for basic details of navigation in Grafana dashboards.

Getting started with ObjectScale 55


6
Upgrades
Topics:
• About ObjectScale upgrades

About ObjectScale upgrades


You can perform ObjectScale software upgrades from the ObjectScale Portal user interface, under Administration >
Upgrades. See the "Maintain ObjectScale" chapter in the ObjectScale Administration Guide to understand and complete
upgrades to newer versions of ObjectScale, its components, and object stores.

56 Upgrades
7
Uninstall ObjectScale
Topics:
• Uninstall ObjectScale from the Red Hat OpenShift cluster

Uninstall ObjectScale from the Red Hat OpenShift


cluster
Steps
1. From the ObjectScale Portal user interface, delete the SupportAssist Connection, if configured.
Click Administration > SupportAssist to view the current SupportAssist configuration.
2. Click Administration > Licensing and deactivate any ObjectScale licenses.
3. If you have not yet done so, delete the object stores displayed on the Object Stores page.
Deleting the object stores cleans up all the allocated storage.

Wait until all object store resources are removed before continuing. Deleting an object store can take up to a few minutes,
depending on the size of the object store.
4. Remove all the ObjectScale application.

helm uninstall objs -n <OBJECTSCALE_NAMESPACE>

Wait for all the ObjectScale applications to be removed before proceeding with the next steps.

5. Run helm list --all-namespaces to get the list of installed components for ObjectScale.
6. Uninstall Postgres.

kubectl delete postgrescluster postgres-ha -n <OBJECTSCALE_NAMESPACE>


helm uninstall -n <OBJECTSCALE_NAMESPACE> postgres
kubectl get crd | grep postgres | awk '{print $1}' | xargs kubectl delete crd

7. Start removing the CSI Bare Metal components by first deleting the PVCs bound for ObjectScale and its components.
a. List all the PVCs used by ObjectScale:

kubectl -n <OBJECTSCALE_NAMESPACE> get pvc | grep csi-baremetal-sc-

b. Delete each ObjectScale PVC one by one until all have been removed:

kubectl -n <OBJECTSCALE_NAMESPACE> delete pvc <PVC_NAME>

c. List all the volumes used by ObjectScale:

kubectl -n <OBJECTSCALE_NAMESPACE> get volumes | grep csi-baremetal-sc-

d. Delete each ObjectScale volume one by one until all have been removed:

kubectl -n <OBJECTSCALE_NAMESPACE> delete volumes <VOLUME_NAME>

Uninstall ObjectScale 57
e. List all the LVGs used by ObjectScale:

kubectl -n <OBJECTSCALE_NAMESPACE> get lvgs | grep csi-baremetal-sc-

f. Delete each ObjectScale LVGs one by one until all have been removed:

kubectl -n <OBJECTSCALE_NAMESPACE> delete lvgs <LVG_NAME>

NOTE: Repeat these steps for any other object store namespaces.

8. Delete the csibmnodes resources:

kubectl -n <CSI_NAMESPACE> delete csibmnodes --all

9. Delete CSI Bare-Metal.

helm -n <CSI_NAMESPACE> delete csi-baremetal

10. Delete CSI Bare-Metal Operator.

helm -n <CSI_NAMESPACE> delete csi-baremetal-operator

11. Delete the OpenShift secondary scheduler operator.

helm -n <SECONDARY_SCHEUDLER_OPERATOR_NAMESPACE> delete openshift-secondary-scheduler-


operator

12. Delete CSI Bare-Metal alerts.

helm -n <CSI_NAMESPACE> delete csi-baremetal-alerts

13. Delete the associated CSI Custom Resource Definitions.

kubectl delete crd deployments.csi-baremetal.dell.com availablecapacities.csi-


baremetal.dell.com availablecapacityreservations.csi-baremetal.dell.com
logicalvolumegroups.csi-baremetal.dell.com volumes.csi-baremetal.dell.com drives.csi-
baremetal.dell.com nodes.csi-baremetal.dell.com

14. Delete the role that you created for CSI.

kubectl delete role pod-csi -n <CSI_NAMESPACE>

15. Delete the rolebinding that you created for CSI.

kubectl delete rolebinding role-binding -n <CSI_NAMESPACE>

16. Also, complete the cleanup of the deployment:


a. Check that there are no ObjectScale jobs remaining:

kubectl -n <OBJECTSCALE_NAMESPACE> get jobs

b. Check that there are no ObjectScale cron jobs remaining:

kubectl -n <OBJECTSCALE_NAMESPACE> get cronjobs

c. Check that there are no ObjectScale secrets remaining:

kubectl -n <OBJECTSCALE_NAMESPACE> get secrets | grep <DOCKER_REGISTRY_SECRET>

58 Uninstall ObjectScale
For each returned ObjectScale secret, use:

kubectl -n <OBJECTSCALE_NAMESPACE> delete secret <SECRET>

17. Check for the following remaining resources in ObjectScale and object store namespaces and carefully delete only the
resources that have "objectscale" or the name of a deleted object store:

CAUTION: Only delete ObjectScale or object store entries.

a. List any config maps:

kubectl -n <OBJECTSCALE_NAMESPACE> get configmaps

b. List any acr:

kubectl -n <OBJECTSCALE_NAMESPACE> get acr

c. List any Pravega CRDs:

kubectl -n <OBJECTSCALE_NAMESPACE> get crd | grep pravega

d. List any apps:

kubectl -n <OBJECTSCALE_NAMESPACE> get app

e. List any service accounts:

kubectl -n <OBJECTSCALE_NAMESPACE> get sa

f. List any service procedures:

kubectl get serviceprocedures -A

NOTE: Repeat these steps for any other object store namespaces. If you are unable to delete any component or
resource, then edit that resource and check for finalizers. Delete that row including finalizers; then the component or
resource is automatically deleted.

Uninstall ObjectScale 59

You might also like