- Clone the repository.
- Run
make submodules
to initialize the submodules. - Run
make create-secret-yaml
to create the secret yaml file. - Fix the configuration of
./examples/providerconfig/secret.yaml
manifest. - Run
make k-apply-requires
to apply the required resources.
- Run
make run-all
to run the local DigitalOcean provider.
- Run
make helm-install-crossplane
to install Crossplane.
- Open
config/provider.go
file.- Find
ExternalNameConfigs
variable. - Add new resource terraform resource name to the
ExternalNameConfigs
map. - Find
GetProvider
function. - Add a new
AddResourceConfigurator
function call with the new resource name using- Add the
r.ShortGroup
to the resource. - Add (if any) all the
r.References
to the resource.
- Add the
- Find
- Run
make generate
to generate the new resource configuration. - Run
make k-apply-crds
to apply the new CRDS.
- Add Kubernetes resources under
./tmp/manifests
directory. - Run
make k-apply-tmp
to apply all the resources under./tmp/manifests
directory.
Or to be safe, you call apply all the required resources at once:
k-apply-all
Run code-generation pipeline:
go run cmd/generator/main.go "$PWD"
Run against a Kubernetes cluster:
make run
Build, push, and install:
make all
Build binary:
make build
When developing locally with IntelliJ IDEA, verify that the following environment variables are set:
TERRAFORM_PROVIDER_SOURCE=<copy values from Makefile>
TERRAFORM_PROVIDER_VERSION=<copy values from Makefile>
TERRAFORM_VERSION=<copy values from Makefile>
UPBOUND_CONTEXT=local