Use pxctl with security enabled on ARO
Once a storage cluster with PX-Security enabled is running, a cluster admin must set up a pxctl
context on each node in order to interact with the system.
The following steps will guide an Operator-based storage admin to setup pxctl
contexts on each node.
-
Retrieve the admin token from the namespace in which Portworx was installed and store it in the
ADMIN_TOKEN
variable:ADMIN_TOKEN=$(oc -n portworx get secret px-admin-token --template='{{index .data "auth-token" | base64decode}}')
-
Find the Portworx pod that is running on the node in which the admin wants to interact with:
Find the node name.
oc get nodes
Now, save the node name in the variable.
K8_NODE_NAME=kubernetes-worker-3.mylab.lan
Once the node name is known, run the command below. Ensure that Portworx is installed in the correct namespace. In the below command, it is assumed to be installed in
portworx
.PX_POD=$(oc -n portworx get pods -l name=portworx -o jsonpath="{.items[?(@.spec.nodeName == '$K8_NODE_NAME')].metadata.name}")
-
Save the admin token in the
pxctl
context for that pod:oc -n portworx exec -ti $PX_POD -- /opt/pwx/bin/pxctl context create admin --token=$ADMIN_TOKEN
-
Use
oc exec
to access the Portworx container and perform anypxctl
operations:oc -n portworx exec -ti $PX_POD -- /opt/pwx/bin/pxctl status
This pxctl
context will need to be refreshed every time the token expires. This is 24 hours by default, but this default can be changed. See customizing security for more information.