See below for information about problems related to your VMware Tanzu Application Service for VMs (TAS) platform configuration or Spring Cloud Services or other product installation.
If you have a Config Server service instance created in Spring Cloud Services 1.5.x and configured to use an encryption key, you cannot upgrade the Config Server service instance to Spring Cloud Services 2.1.x without updating its configuration first to supply its encryption key with newlines escaped as \n
(not removed). In Spring Cloud Services 1.5.x, the encryption key must have newlines removed, but in Spring Cloud Services 2.1.x, the newlines must be escaped instead. This is due to a difference in underlying Spring Boot versions in Spring Cloud Services 1.5.x and 2.1.x.
See Encryption and Encrypted Values in the Config Server documentation for more information about configuring a Config Server service instance to use an encryption key.
The p-circuit-breaker-dashboard
service in Spring Cloud Services requires that RabbitMQ for VMware Tanzu is configured to deploy the Pre-provisioned broker. If the run_tests
errand or create and update service fails with a message similar to following:
Showing status of last operation from service test-p-circuit-breaker-dashboard-*********...
status: create failed
message: Error creating service instance: java.lang.IllegalArgumentException: Service plan standard not found
Enable the Pre-provisioned broker as described in the RabbitMQ for VMware Tanzu documentation.
If the broker fails to provision a service instance and the logs for the spring-cloud-broker-worker
app (see Read Broker Application Logs) contain the following:
java.util.concurrent.TimeoutException: Execution took longer than 180000 MILLISECONDS
This is due to a problem encountered during app deployments to your TAS foundation. Verify that you can deploy apps without issues to your TAS foundation (see "Starting or staging an application results in an InsufficientResources error" in the VMware Tanzu Community Knowledge Base).
If you encounter a message similar to the following when attempting to access a Service Registry dashboard:
with the following text:
401 (Unauthorized)
Authentication Failed: Could not obtain access token
If your TAS foundation is using a self-signed certificate, ensure that it includes all of the domains listed in Requirements. If you update the certificate, you will need to either restart the service instance's backing app(s) or recreate the service instance. Otherwise you may continue to see this message and be unable to access the Service Registry dashboard.
If you encounter an exception message similar to the following:
org.springframework.web.client.ResourceAccessException: I/O error on POST request for
"https://p-spring-cloud-services.uaa.example.com/oauth/token":
java.security.cert.CertificateException: No subject alternative DNS name matching
p-spring-cloud-services.uaa.example.com found.; nested exception is
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No
subject alternative DNS name matching p-spring-cloud-services.uaa.example.com found.
Ensure that your VMware Tanzu Application Service for VMs SSL certificate is configured as described in Requirements. Be sure that the certificate includes all wildcards listed in that section and has a separate wildcard for each subdomain.
The Cloud Foundry Command Line Interface tool (cf CLI) create-service
command may return an error similar to the following:
Server error, status code: 502, error code: 10001, message: Service broker error:
javax.net.ssl.SSLException: Received fatal alert: protocol_version
Spring Cloud Services requires the RabbitMQ for VMware Tanzu product. If you have provided SSL certificates and keys to RabbitMQ for VMware Tanzu, you must also enable its TLS 1.0 support in order to use it with Spring Cloud Services. See Requirements.
If you encounter the following exception message in Spring Cloud Services broker logs:
org.springframework.amqp.AmqpAuthenticationException:
com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was
refused using authentication mechanism PLAIN. For details see the broker
logfile.
The credentials used by the Spring Cloud Services broker to access its RabbitMQ for VMware Tanzu service instance may be invalid. This can happen after restoring a backup of VMware Tanzu Application Service for VMs, as a restored RabbitMQ for VMware Tanzu service instance may not accept the restored credentials used by the Spring Cloud Services broker. You can update the Spring Cloud Services broker's credentials by unbinding the RabbitMQ service instance from the broker apps (the spring-cloud-broker
and spring-cloud-broker-worker
apps) and then rebinding.
To unbind the RabbitMQ service instance from the Spring Cloud Services broker apps and rebind it, run the following cf CLI commands:
$ cf target -o system -s p-spring-cloud-services
$ cf unbind-service spring-cloud-broker spring-cloud-broker-rmq
$ cf unbind-service spring-cloud-broker-worker spring-cloud-broker-rmq
$ cf bind-service spring-cloud-broker spring-cloud-broker-rmq
$ cf restage spring-cloud-broker
$ cf bind-service spring-cloud-broker-worker spring-cloud-broker-rmq
$ cf restage spring-cloud-broker-worker
If the TAS foundation is newly restored and the RabbitMQ service instance's queues are empty, you may also unbind the RabbitMQ service instance from the broker apps, delete it, create a new instance, and then bind that instance to the Spring Cloud Services broker apps.
WARNING: Deleting and replacing the RabbitMQ service instance will destroy any data in the instance's queues. If the RabbitMQ service instance contains messages and is on a production system, unbind and rebind it instead.
To delete and replace the RabbitMQ service instance used by the Spring Cloud Services broker apps, run the following cf CLI commands:
$ cf target -o system -s p-spring-cloud-services
$ cf unbind-service spring-cloud-broker spring-cloud-broker-rmq
$ cf unbind-service spring-cloud-broker-worker spring-cloud-broker-rmq
$ cf delete-service -f spring-cloud-broker-rmq
$ cf create-service p-rabbitmq standard spring-cloud-broker-rmq
$ cf bind-service spring-cloud-broker spring-cloud-broker-rmq
$ cf restage spring-cloud-broker
$ cf bind-service spring-cloud-broker-worker spring-cloud-broker-rmq
$ cf restage spring-cloud-broker-worker