Skip to content

Latest commit

 

History

History
107 lines (78 loc) · 3.34 KB

README.md

File metadata and controls

107 lines (78 loc) · 3.34 KB

Documents and Design

Topics

Deployment

Deployment

Cycling Process

Cycling Process

kubectl-cycle CLI

Automation CLI Usage

Automated Cycling with Observer

Automation Observer Usage

Everyday Usage

Usage

Examples

Examples

Development Information

See various information pertaining to development below.

Command Line

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

Package Layout and Usage

  • 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

Changing or updating CRDs

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.

Testing

make test

Test a specific package

For example, to test the controller package:

go test ./pkg/controller