├── .circleci └── config.yml ├── .github ├── dependabot.yml └── workflows │ └── auto_label_issues.yml ├── .gitignore ├── .whitesource ├── DEVELOPMENT.md ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── artifacts ├── cluster-turndown-full.yaml ├── example-schedule.yaml ├── turndown-namespace.yaml └── turndown-schedule-definition.yaml ├── cmd └── turndown │ └── main.go ├── docs └── img │ ├── crd-schedule.png │ └── turndown-strategy-provider.png ├── generate.sh ├── go.mod ├── go.sum ├── hack ├── custom-boilerplate.go.txt └── tools.go ├── pkg ├── apis │ └── turndownschedule │ │ ├── register.go │ │ └── v1alpha1 │ │ ├── doc.go │ │ ├── register.go │ │ ├── types.go │ │ └── zz_generated.deepcopy.go ├── async │ ├── async.go │ ├── asyncset.go │ └── tasks │ │ └── tasks.go ├── cluster │ ├── draininator.go │ ├── flattener.go │ ├── helper │ │ └── helper.go │ ├── patcher │ │ └── patcher.go │ └── provider │ │ ├── awsclusterprovider.go │ │ ├── awskops.go │ │ ├── clusterprovider.go │ │ ├── eksclusterprovider.go │ │ ├── gkeclusterprovider.go │ │ ├── gkemetadata.go │ │ └── mockclusterprovider.go ├── file │ └── fileutil.go ├── generated │ ├── clientset │ │ └── versioned │ │ │ ├── clientset.go │ │ │ ├── doc.go │ │ │ ├── fake │ │ │ ├── clientset_generated.go │ │ │ ├── doc.go │ │ │ └── register.go │ │ │ ├── scheme │ │ │ ├── doc.go │ │ │ └── register.go │ │ │ └── typed │ │ │ └── turndownschedule │ │ │ └── v1alpha1 │ │ │ ├── doc.go │ │ │ ├── fake │ │ │ ├── doc.go │ │ │ ├── fake_turndownschedule.go │ │ │ └── fake_turndownschedule_client.go │ │ │ ├── generated_expansion.go │ │ │ ├── turndownschedule.go │ │ │ └── turndownschedule_client.go │ ├── informers │ │ └── externalversions │ │ │ ├── factory.go │ │ │ ├── generic.go │ │ │ ├── internalinterfaces │ │ │ └── factory_interfaces.go │ │ │ └── turndownschedule │ │ │ ├── interface.go │ │ │ └── v1alpha1 │ │ │ ├── interface.go │ │ │ └── turndownschedule.go │ └── listers │ │ └── turndownschedule │ │ └── v1alpha1 │ │ ├── expansion_generated.go │ │ └── turndownschedule.go ├── signals │ ├── signal.go │ ├── signal_posix.go │ └── signal_windows.go └── turndown │ ├── provider │ ├── awsprovider.go │ ├── eksprovider.go │ ├── gkeprovider.go │ ├── mockprovider.go │ ├── provider.go │ └── validator.go │ ├── schedulecontroller.go │ ├── scheduler.go │ ├── schedulestore.go │ ├── strategy │ ├── masterless.go │ ├── standard.go │ └── strategy.go │ ├── turndown.go │ ├── turndownendpoints.go │ ├── turndownendpoints_test.go │ └── turndownscheduler.go ├── scripts ├── README.md └── gke-create-service-key.sh └── test └── tasks_test.go /.circleci/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/.circleci/config.yml -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/auto_label_issues.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/.github/workflows/auto_label_issues.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/.gitignore -------------------------------------------------------------------------------- /.whitesource: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/.whitesource -------------------------------------------------------------------------------- /DEVELOPMENT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/DEVELOPMENT.md -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/README.md -------------------------------------------------------------------------------- /artifacts/cluster-turndown-full.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/artifacts/cluster-turndown-full.yaml -------------------------------------------------------------------------------- /artifacts/example-schedule.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/artifacts/example-schedule.yaml -------------------------------------------------------------------------------- /artifacts/turndown-namespace.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: turndown -------------------------------------------------------------------------------- /artifacts/turndown-schedule-definition.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/artifacts/turndown-schedule-definition.yaml -------------------------------------------------------------------------------- /cmd/turndown/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/cmd/turndown/main.go -------------------------------------------------------------------------------- /docs/img/crd-schedule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/docs/img/crd-schedule.png -------------------------------------------------------------------------------- /docs/img/turndown-strategy-provider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/docs/img/turndown-strategy-provider.png -------------------------------------------------------------------------------- /generate.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/generate.sh -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/go.sum -------------------------------------------------------------------------------- /hack/custom-boilerplate.go.txt: -------------------------------------------------------------------------------- 1 | /* Generated Source: Do Not Modify */ -------------------------------------------------------------------------------- /hack/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/hack/tools.go -------------------------------------------------------------------------------- /pkg/apis/turndownschedule/register.go: -------------------------------------------------------------------------------- 1 | package turndownschedule 2 | 3 | const ( 4 | GroupName = "kubecost.com" 5 | ) 6 | -------------------------------------------------------------------------------- /pkg/apis/turndownschedule/v1alpha1/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/apis/turndownschedule/v1alpha1/doc.go -------------------------------------------------------------------------------- /pkg/apis/turndownschedule/v1alpha1/register.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/apis/turndownschedule/v1alpha1/register.go -------------------------------------------------------------------------------- /pkg/apis/turndownschedule/v1alpha1/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/apis/turndownschedule/v1alpha1/types.go -------------------------------------------------------------------------------- /pkg/apis/turndownschedule/v1alpha1/zz_generated.deepcopy.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/apis/turndownschedule/v1alpha1/zz_generated.deepcopy.go -------------------------------------------------------------------------------- /pkg/async/async.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/async/async.go -------------------------------------------------------------------------------- /pkg/async/asyncset.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/async/asyncset.go -------------------------------------------------------------------------------- /pkg/async/tasks/tasks.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/async/tasks/tasks.go -------------------------------------------------------------------------------- /pkg/cluster/draininator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/draininator.go -------------------------------------------------------------------------------- /pkg/cluster/flattener.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/flattener.go -------------------------------------------------------------------------------- /pkg/cluster/helper/helper.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/helper/helper.go -------------------------------------------------------------------------------- /pkg/cluster/patcher/patcher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/patcher/patcher.go -------------------------------------------------------------------------------- /pkg/cluster/provider/awsclusterprovider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/provider/awsclusterprovider.go -------------------------------------------------------------------------------- /pkg/cluster/provider/awskops.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/provider/awskops.go -------------------------------------------------------------------------------- /pkg/cluster/provider/clusterprovider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/provider/clusterprovider.go -------------------------------------------------------------------------------- /pkg/cluster/provider/eksclusterprovider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/provider/eksclusterprovider.go -------------------------------------------------------------------------------- /pkg/cluster/provider/gkeclusterprovider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/provider/gkeclusterprovider.go -------------------------------------------------------------------------------- /pkg/cluster/provider/gkemetadata.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/provider/gkemetadata.go -------------------------------------------------------------------------------- /pkg/cluster/provider/mockclusterprovider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/cluster/provider/mockclusterprovider.go -------------------------------------------------------------------------------- /pkg/file/fileutil.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/file/fileutil.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/clientset.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/clientset.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/doc.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/fake/clientset_generated.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/fake/clientset_generated.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/fake/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/fake/doc.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/fake/register.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/fake/register.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/scheme/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/scheme/doc.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/scheme/register.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/scheme/register.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/doc.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/fake/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/fake/doc.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/fake/fake_turndownschedule.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/fake/fake_turndownschedule.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/fake/fake_turndownschedule_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/fake/fake_turndownschedule_client.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/generated_expansion.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/generated_expansion.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/turndownschedule.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/turndownschedule.go -------------------------------------------------------------------------------- /pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/turndownschedule_client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/clientset/versioned/typed/turndownschedule/v1alpha1/turndownschedule_client.go -------------------------------------------------------------------------------- /pkg/generated/informers/externalversions/factory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/informers/externalversions/factory.go -------------------------------------------------------------------------------- /pkg/generated/informers/externalversions/generic.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/informers/externalversions/generic.go -------------------------------------------------------------------------------- /pkg/generated/informers/externalversions/internalinterfaces/factory_interfaces.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/informers/externalversions/internalinterfaces/factory_interfaces.go -------------------------------------------------------------------------------- /pkg/generated/informers/externalversions/turndownschedule/interface.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/informers/externalversions/turndownschedule/interface.go -------------------------------------------------------------------------------- /pkg/generated/informers/externalversions/turndownschedule/v1alpha1/interface.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/informers/externalversions/turndownschedule/v1alpha1/interface.go -------------------------------------------------------------------------------- /pkg/generated/informers/externalversions/turndownschedule/v1alpha1/turndownschedule.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/informers/externalversions/turndownschedule/v1alpha1/turndownschedule.go -------------------------------------------------------------------------------- /pkg/generated/listers/turndownschedule/v1alpha1/expansion_generated.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/listers/turndownschedule/v1alpha1/expansion_generated.go -------------------------------------------------------------------------------- /pkg/generated/listers/turndownschedule/v1alpha1/turndownschedule.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/generated/listers/turndownschedule/v1alpha1/turndownschedule.go -------------------------------------------------------------------------------- /pkg/signals/signal.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/signals/signal.go -------------------------------------------------------------------------------- /pkg/signals/signal_posix.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/signals/signal_posix.go -------------------------------------------------------------------------------- /pkg/signals/signal_windows.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/signals/signal_windows.go -------------------------------------------------------------------------------- /pkg/turndown/provider/awsprovider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/provider/awsprovider.go -------------------------------------------------------------------------------- /pkg/turndown/provider/eksprovider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/provider/eksprovider.go -------------------------------------------------------------------------------- /pkg/turndown/provider/gkeprovider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/provider/gkeprovider.go -------------------------------------------------------------------------------- /pkg/turndown/provider/mockprovider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/provider/mockprovider.go -------------------------------------------------------------------------------- /pkg/turndown/provider/provider.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/provider/provider.go -------------------------------------------------------------------------------- /pkg/turndown/provider/validator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/provider/validator.go -------------------------------------------------------------------------------- /pkg/turndown/schedulecontroller.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/schedulecontroller.go -------------------------------------------------------------------------------- /pkg/turndown/scheduler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/scheduler.go -------------------------------------------------------------------------------- /pkg/turndown/schedulestore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/schedulestore.go -------------------------------------------------------------------------------- /pkg/turndown/strategy/masterless.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/strategy/masterless.go -------------------------------------------------------------------------------- /pkg/turndown/strategy/standard.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/strategy/standard.go -------------------------------------------------------------------------------- /pkg/turndown/strategy/strategy.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/strategy/strategy.go -------------------------------------------------------------------------------- /pkg/turndown/turndown.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/turndown.go -------------------------------------------------------------------------------- /pkg/turndown/turndownendpoints.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/turndownendpoints.go -------------------------------------------------------------------------------- /pkg/turndown/turndownendpoints_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/turndownendpoints_test.go -------------------------------------------------------------------------------- /pkg/turndown/turndownscheduler.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/pkg/turndown/turndownscheduler.go -------------------------------------------------------------------------------- /scripts/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/scripts/README.md -------------------------------------------------------------------------------- /scripts/gke-create-service-key.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/scripts/gke-create-service-key.sh -------------------------------------------------------------------------------- /test/tasks_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubecost/cluster-turndown/HEAD/test/tasks_test.go --------------------------------------------------------------------------------