provider-sonar
is a minimal Crossplane Provider
that is meant to be used as a sonar for implementing new Providers. It comes
with the following features that are meant to be refactored:
- A
ProviderConfig
type that only points to a credentialsSecret
. - A
MyType
resource type that serves as an example managed resource. - A managed resource controller that reconciles
MyType
objects and simply prints their configuration in itsObserve
method.
- Use this repository as a sonar to create a new one.
- Run
make submodules
to initialize the "build" Make submodule we use for CI/CD. - Rename the provider by running the follwing command:
make provider.prepare provider={PascalProviderName}
- Add your new type by running the following command:
make provider.addtype provider={PascalProviderName} group={group} kind={type}
- Replace the sample group with your new group in apis/{provider}.go
- Replace the mytype type with your new type in internal/controller/{provider}.go
- Replace the default controller and ProviderConfig implementations with your own
- Run
make reviewable
to run code generation, linters, and tests. - Run
make build
to build the provider.
- kubectl apply -f package/crds
- make run
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.