/provider-springclouddataflow

Crossplane Spring Cloud Data Flow Provider

Primary LanguageGoApache License 2.0Apache-2.0

Spring Cloud Data Flow Provider

Spring Cloud Data Flow Provider is a Crossplane provider. It was build based on the Crossplane Template. It is used to manage and configure Spring Cloud Data Flow. It uses the Rest API

How to use

Repository and package:

xpkg.upbound.io/denniskniep/provider-springclouddataflow:<version>

Provider Credentials Structure:

{
  "url": "http://dataflow:9393/"
}

View Example

Troubleshooting

Create a DeploymentRuntimeConfig and set the arg --debug on the package-runtime container

View Example

Covered Managed Resources

Currently covered Managed Resources:

Application

docs

rest api

View Example

Stream

docs

rest api

View Example

TaskDefinition

docs

rest api

View Example

TaskSchedule

docs

rest api

View Example

Reference for properties: https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#configuration-kubernetes-app-props

Contribute

Developing

  1. Add new type by running the following command:
  export provider_name=SpringCloudDataFlow
  export group=core # lower case e.g. core, cache, database, storage, etc.
  export type=MyType # Camel casee.g. Bucket, Database, CacheCluster, etc.
  make provider.addtype provider=${provider_name} group=${group} kind=${type}
  1. Replace the core group with your new group in apis/{provider}.go

  2. Replace the MyType type with your new type in internal/controller/{provider}.go

  3. Run make reviewable to run code generation, linters, and tests. (make generate to only run code generation)

  4. Run make build to build the provider.

Refer to Crossplane's CONTRIBUTING.md file for more information on how the Crossplane community prefers to work. The Provider Development guide may also be of use.

Tests

Start SpringCloudDataFlow environment for tests

sudo docker-compose -f tests/docker-compose.yaml up 

UI: http://localhost:9393/dashboard

OpenAPI Spec: http://localhost:9393/v3/api-docs

Swagger-Ui: http://localhost:9393/swagger-ui/index.html