Troubleshooting
This topic addresses some common problems.
- No response from z/OSMF
- Force deployment on a specific node
- Orphaned service instances or service bindings
- Collecting FFDC data
- The
ClusterServiceBroker
resource fails to retrieve catalog response - Failure when deploying the z/OS Cloud Broker
- Failure when viewing the OpenShift Container Platform Service Brokers
No response from z/OSMF
In order for z/OS® Cloud Broker to create the catalog icons for the templates available in z/OSMF Cloud Provisioning & Management, the z/OS Cloud Broker deployment must be able to communicate with z/OSMF.
On the node where your z/OS Cloud Broker deployment is running, verify that the following command returns the expected output:
curl -k -X GET https://<user>:<pass>@<zosmf-ip>/zosmf/provisioning/rest/1.0/psc -H 'X-CSRF-ZOSMF-HEADER: zos-broker'
Force deployment on a specific node
In High Availability or Multi-Architecture OpenShift® Container Platform environments, you might want to force the z/OS Cloud Broker deployment to be on a specific OpenShift Container Platform node.
To do this, target the Deployment
in the IBM Cloud Private web console and select Edit.
Look for the nodeSelector
JSON block and add a label from the node you'd like it to be deployed on. In the example below, the addition of the role: master
label forces the deployment on the IBM Cloud Private master
node. By default, the z/OS Cloud Broker pods will prefer s390x worker nodes if they are available, and x86 worker nodes as a secondary.
"nodeSelector": {
"beta.kubernetes.io/arch": "amd64",
"role": "master"
},
Orphaned service instances or service bindings
Service instances or service bindings can become "orphaned" in OpenShift Container Platform under certain circumstances. To prevent this from happening, all service instances that are provisioned through the OpenShift Container Platform web console should always be de-provisioned through the OpenShift Container Platform web console as well.
If the z/OSMF templates were not changed, z/OSMF is online, and the service instance is still provisioned on z/OSMF, the current environment might be brought back into sync. Redeploying a matching z/OS Cloud Broker instance and ClusterServiceBroker
resource should re-create all necessary registrations to allow the deprovisioning actions to complete.
However, there might be other scenarios in which this issue can occur if z/OS Cloud Broker fails to respond, or the communication to z/OSMF doesn't return as expected. This is common if the resource was deleted on z/OS because OpenShift Container Platform would not be informed of those actions.
If the resource exists on z/OS, opening an issue with a dump of the kubectl logs
for the zos-broker
pod will be helpful.
To delete the orphaned ServiceInstance
or ServiceBinding
, complete the following steps:
- Authenticate your
oc
client by using thelogin
command from OpenShift Container Platform cluster. -
Attempt to delete the
ServiceInstance
orServiceBinding
with theoc
command.oc get ServiceInstances oc delete ServiceInstance <service-instance-name> oc get ServiceBindings oc delete ServiceBinding <service-binding-name>
This will say it completed successfully, but issuing another
oc get
will show the resource is still defined in OpenShift Container Platform. -
Edit the resource and remove the
finalizers
block.oc edit ServiceInstance <service-instance-name> oc edit ServiceBinding <service-binding-name>
The
finalizers:
block looks similar to the following example:finalizers: - kubernetes-incubator/service-catalog
Save the edit, and you should see the service instance or service binding is removed from OpenShift Container Platform.
Collecting FFDC data
If you encounter a problem that is not addressed in this topic, you might have encountered a new problem. In order for us to fix the issue, you need to provide the logs from the OpenShift Container Platform or Cloud Foundry environment. Follow the processes below to gather z/OS Cloud Broker deployment logs.
Exporting deployment logs from OpenShift Container Platform
- From a terminal where the
oc
command is available, log in to the OpenShift Container Platform cluster. - Switch to the project where the problem is occurring. For example:
oc project <project name>
- List the pods for the deployment. For example:
oc get pods
- Gather information for each pod with the following command.
oc logs <pod_name> > zos-broker_<pod_name>.log
- After the information is collected for each pod, compress the created
.log
files with a zip utility and send us the compressed file.
Exporting deployment logs from Cloud Foundry
- From a terminal on the machine that is running the z/OS Cloud Broker Docker containers
- List the containers for the deployment. For example:
docker ps -a
- Gather information for each container with the following command.
docker logs <container_id> > <container_name>.log
- After the information is collected for each pod, compress the created
.log
files with a zip utility and send us the compressed file.
The ClusterServiceBroker resource fails to retrieve catalog response
The ClusterServiceBroker
resource might initially fail to receive a Catalog response from z/OS Cloud Broker due to initialization being in progress. In that case, OpenShift Container Platform retries the Catalog request every 10 minutes.
Services should appear in your OpenShift Container Platform Catalog as soon as you have one or more Services and Plans configured in the z/OS Cloud Broker Admin Dashboard.
Failure when deploying the z/OS Cloud Broker
You might encounter the following error when you create a template instance of the z/OS Cloud Broker.
Unable to recognize no matches for kind "ClusterServiceBroker" in version "servicecatalog.k8s.io/v1beta1"
This is because the Service Catalog extension not being enabled in your OpenShift Container Platform cluster. Follow the configuration documentation to enable the service-catalog extension.
Failure when viewing the OpenShift Container Platform Service Brokers
The following error indicates that you cannot view the Service Brokers under the menu Service Catalog/Broker Management.
clusterservicebrokers.servicecatalog.k8s.io is forbidden: User <user ID> cannot list resource "clusterservicebrokers" in API group "servicecatalog.k8s.io" at the cluster scope
This error occurs if a user is not properly configured as a cluster-admin
. You can run the following command to grant the user the cluster-admin
role.
oc adm policy add-cluster-role-to-user cluster-admin <user id>
For more information, see Authentication.