- JDK11 installed.
- Must have an instance of Spinnaker running in a Kubernetes cluster.
- Telepresence
- Docker
- The credentials load flow diagram can be found here.
- This plugin replaces the
CredentialsDefinitionSource
Spring beans for AWS and ECS providers. It also replaces theCredentialsRepository
bean for AWS. - For general information on how to develop plugins: https://spinnaker.io/community/gardening/spin-contrib
- Clone clouddriver locally.
- Open this plugin repository in IntelliJ and let it finish indexing.
- Link clouddriver project with this project.
- Create a new run configuration. Note that the
-Dpf4j.mode=development
option is required for debugging.
mkdir <CLOUDDRIVER_REPO_PATH>/plugins
rm -rf account-registration/build \
&& ./gradlew releaseBundle \
&& cp account-registration/build/*.plugin-ref <CLOUDDRIVER_REPO_PATH>/plugins
This will create the plugins
directory in clouddrier repo and places the plugin-ref file in that directory.
- Get cluster configuration to local machine.
cd <CLOUDDRIVER_REPO_PATH>
telepresence --namespace spinnaker --swap-deployment spin-clouddriver --env-file env-telepresence
cp -R $TELEPRESENCE_ROOT/opt/spinnaker/config/ ~/.spinnaker
- comment out
plugins-root-path:
key in ~/.spinnaker/clouddriver.yml - Update ~/.spinnaker/clouddriver.yml with configuration properties specified in README.
- Run or connect to cache instance:
- If you want to use local caching instance:
docker run -d -p 6379:6379 --name redis redis:6.0.8
- Edit
~/.spinnaker/spinnaker.yml
file and update redis' baseUrl tobaseUrl: redis://localhost:6379
.
- If you want to use remote caching instance:
- Be sure telepresence shell is active.
- If you want to use local caching instance:
- Run the IntelliJ configuration.
- Once it builds clouddriver and start running. You should verify the following in logs:
pf4j
is in development mode. One of the first several logs will indicate this.- Plugin is found and loaded. There should be a log message:
AccountRegistrationPlugin plugin started
- Debugger can be used to debug plugin code.
- Use port forward to connect to UI:
kubectl -n spinnaker port-forward svc/spin-deck 9000
kubectl -n spinnaker port-forward svc/spin-gate 8084
- Open http://localhost:9000 for UI.
Release of new versions is done through Github Actions (.github/workflows/release.yml
file).
To release a new version:
- Update version in
gradle.properties
file in master branch. - Tag a commit
git tag -a <VERSION>
- Push the tag
git push origin <VERSION>