Confusing notation of spring.cloud.deployer.* and spring.cloud.task.platform.* properties #5377
Description
Thank you for all the work on SCDF!!
Problem Description:
The SCDF docs specify various ways to set properties on the application and how they get deployed on various platforms. It is confusing for a new user to immediately grasp these notations, specifically between the deployer and task properties. For example,
For example, under 11.2. Application and Server Properties, it says how to customize the application deployment behaviour - CPU, memory, K8S settings, etc. In the next section under 11.2.1. Memory and CPU Settings, it shows examples for deployer.<application>.kubernetes.limits.cpu=1000m
, spring.cloud.skipper.server
, and spring.cloud.dataflow.task
. In the next section 11.2.2. Environment Variables, it says spring.cloud.deployer.kubernetes.environmentVariables
can be used to set environment variables, but the example says deployer.<application>.kubernetes.environmentVariables
.
Solution Description:
Clarify if these are correct:
- None of the
deployer.*
,spring.cloud.deployer.*
,spring.cloud.dataflow.task.platform
, andspring.cloud.skipper.server.platform
properties make sense in the application. They are all for configuring how the application is deployed in local/k8s/cf environments. deployer.*
is a shortcut forspring.cloud.deployer.*
. In turn, this meansspring.cloud.deployer.<application>.<propertyName>
andspring.cloud.deployer.<propertyName>
are equivalent for application-specific and global properties. Another way isdeployer.*
should be when launching the application from UI/shell, andspring.cloud.deployer.*
are configured in the SCDF Server/Skipper.spring.cloud.deployer.*
is per platform (k8s) and application deployed on that platform.spring.cloud.skipper.server.*
, andspring.cloud.dataflow.task.*
is for platform accounts and streams/tasks properties.
Considering the above, and the below scenario, running the hello-world in the default account makes CPU requests 1750, and in the dev account, it would be 1500. And if I don't provide a CPU request for an account named qa, would it be 1200 for hello-world?
spring.cloud.deployer.kubernetes.requests.cpu=1000
spring.cloud.deployer.hello-world.kubernetes.requests.cpu=1200
spring.cloud.dataflow.task.platform.kubernetes.default.requests.cpu=1750
spring.cloud.dataflow.task.platform.kubernetes.dev.requests.cpu=1500
Description of alternatives:
Clarify in the docs of any shortcuts or abbreviations.
Additional context:
Easier understanding for new users.