Carvel Installation

Spring Cloud Data Flow offers a Carvel Package for deploying the Spring Cloud Data Flow server and Skipper to a Kubernetes Cluster.

The steps are:

  • Prepare the cluster for deployment by installing the Carvel components required.
  • Creating a namespace and adding the carvel package to the namespace.
  • Creating a values file with database and broker properties.
  • Optionally you can use provided scripts for deploying a broker, database and prometheus. These scripts will update the values file with the correct credentials.
  • Deploy the Spring Cloud Data Flow carvel package.

For local minikube or kind cluster you can use: Configure Kubernetes for local development or testing, and follow the instructions until the section Deploy Spring Cloud Data Flow

Detail instructions on the Carvel deployment can be found in the Reference Guide.

Example Values file

scdf:
  binder:
    type: kafka
    kafka:
      broker:
        # Note service-name.namespace as hostname.
        host: kafka-broker.kafka
      zk:
        host: kafka-zk.kafka
  server:
    service:
      type: LoadBalancer
    env:
      # set values to false to disable features
      - name: SPRING_CLOUD_DATAFLOW_FEATURES_STREAMS_ENABLED
        value: 'true'
      - name: SPRING_CLOUD_DATAFLOW_FEATURES_TASKS_ENABLED
        value: 'true'
      - name: SPRING_CLOUD_DATAFLOW_FEATURES_SCHEDULES_ENABLED
        value: 'true'
    database:
      # Note service-name.namespace as hostname.
      url: jdbc:mariadb://mariadb.mariadb/dataflow
      driverClassName: org.mariadb.jdbc.Driver
      # You are encouraged to store credentials in kubernetes secrets. secretgen-controller provides for exporting/importing secrets from one namespace.
      secretName: mariadb
      secretUsernameKey: database-username
      secretPasswordKey: database-password
    metrics:
      dashboard:
        url: http://gafana-host:3000
    image: # provide tag when using version other than the package specific version
      tag: 2.10.3
  skipper:
    database:
      url: jdbc:mariadb://mariadb.mariadb/dataflow
      driverClassName: org.mariadb.jdbc.Driver
      secretName: mariadb
      secretUsernameKey: database-username
      secretPasswordKey: database-password
    image: # provide tag when using version other than the package specific version
      tag: 2.9.3
  registry:
    secret:
      ref: 'reg-creds-dockerhub'
  feature:
    monitoring:
      grafana:
        enabled: true
      prometheusRsocketProxy:
        enabled: true
  ctr:
    image: # provide tag when using version other than the package specific version
      tag: 2.10.3