Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.
This repository was archived by the owner on May 14, 2025. It is now read-only.

Confusing notation of spring.cloud.deployer.* and spring.cloud.task.platform.* properties #5377

Open
@sravaniv-3cortex

Description

@sravaniv-3cortex

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, and spring.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 for spring.cloud.deployer.*. In turn, this means spring.cloud.deployer.<application>.<propertyName> and spring.cloud.deployer.<propertyName> are equivalent for application-specific and global properties. Another way is deployer.* should be when launching the application from UI/shell, and spring.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.*, and spring.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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions