See various information pertaining to development below.
usage: Cyclops [<flags>]
Kubernetes operator to rotate a group of nodes
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--version Show application version.
-d, --debug Run with debug logging
--cloud-provider="aws" Which cloud provider to use, options: [aws]
--messaging-provider="" Which message provider to use, options: [slack] (Optional)
--address=":8080" Address to listen on for /metrics
--namespace="kube-system" Namespace to watch for cycle request objects
--health-check-timeout=5s Timeout on health checks performed
--delete-cnr Whether or not to automatically delete CNRs
--delete-cnr-expiry=168h Delete the CNR this long after it was created and is successful
--delete-cnr-requeue=24h How often to check if a CNR can be deleted
--default-cns-cycling-expiry=3h Fail the CNS if it has been processing for this long
cmd/manager
- contains command function, setup, and config loading
pkg/controller
- contains the core logic, state and transitions and reconciling CRDs
pkg/k8s
- provides application utils and help with interfacing with Kubernetes and client-go
pkg/cloudprovider
- provides everything related to cloud providers
pkg/cloudprovider/aws
- provides the aws implementation of cloudprovider
pkg/notifications
- provides everything related to notifiers
pkg/notifications/slack
- provides the slack implementation of notifier
pkg/metrics
- provides a place for all metric setup to live
pkg/apis
- schemes and code for generating Kubernetes CRD code
Whenever you update the CRD objects in the pkg/apis/atlassian/v1
package you will likely need to generate the OpenAPI and Kubernetes deepcopy code again.
Run make install-operator-sdk
if you haven't installed the operator-sdk
tool yet.
Run make generate-crds
to generate all the deepcopy and openapi code for the CRDs.
make test
For example, to test the controller package:
go test ./pkg/controller