aws

package
v1.4.17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2024 License: Apache-2.0 Imports: 29 Imported by: 40

Documentation

Overview

Package aws provides a cluster-destroyer for AWS clusters.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeleteEC2Instances added in v0.9.153

func DeleteEC2Instances(ctx context.Context, logger logrus.FieldLogger, awsSession *session.Session, filters []Filter, toDelete sets.Set[string], deleted sets.Set[string], tracker *ErrorTracker) error

DeleteEC2Instances terminates all EC2 instances found.

func DeleteResources added in v0.9.153

func DeleteResources(ctx context.Context, logger logrus.FieldLogger, awsSession *session.Session, resources []string, tracker *ErrorTracker) (sets.Set[string], error)

DeleteResources deletes the specified resources.

resources - the resources to be deleted.

The first return is the ARNs of the resources that were successfully deleted

func FindTaggedResourcesToDelete added in v0.9.153

func FindTaggedResourcesToDelete(
	ctx context.Context,
	logger logrus.FieldLogger,
	tagClients []*resourcegroupstaggingapi.ResourceGroupsTaggingAPI,
	filters []Filter,
	iamRoleSearch *IamRoleSearch,
	iamUserSearch *IamUserSearch,
	deleted sets.Set[string],
) (sets.Set[string], []*resourcegroupstaggingapi.ResourceGroupsTaggingAPI, error)

FindTaggedResourcesToDelete returns the tagged resources that should be deleted.

tagClients - clients of the tagging API to use to search for resources.
deleted - the resources that have already been deleted. Any resources specified in this set will be ignored.

func New added in v0.9.2

New returns an AWS destroyer from ClusterMetadata.

Types

type ClusterUninstaller

type ClusterUninstaller struct {
	// Filters is a slice of filters for matching resources.  A
	// resources matches the whole slice if it matches any of the
	// entries.  For example:
	//
	//   filter := []map[string]string{
	//     {
	//       "a": "b",
	//       "c": "d:,
	//     },
	//     {
	//       "d": "e",
	//     },
	//   }
	//
	// will match resources with (a:b and c:d) or d:e.
	Filters        []Filter // filter(s) we will be searching for
	Logger         logrus.FieldLogger
	Region         string
	ClusterID      string
	ClusterDomain  string
	HostedZoneRole string

	// Session is the AWS session to be used for deletion.  If nil, a
	// new session will be created based on the usual credential
	// configuration (AWS_PROFILE, AWS_ACCESS_KEY_ID, etc.).
	Session *session.Session
}

ClusterUninstaller holds the various options for the cluster we want to delete

func (*ClusterUninstaller) Run

Run is the entrypoint to start the uninstall process

func (*ClusterUninstaller) RunWithContext added in v0.9.2

func (o *ClusterUninstaller) RunWithContext(ctx context.Context) ([]string, error)

RunWithContext runs the uninstall process with a context. The first return is the list of ARNs for resources that could not be destroyed.

type ErrorTracker added in v0.9.153

type ErrorTracker struct {
	// contains filtered or unexported fields
}

ErrorTracker holds a history of errors.

type Filter

type Filter map[string]string

Filter holds the key/value pairs for the tags we will be matching against.

A resource matches the filter if all of the key/value pairs are in its tags.

type IamRoleSearch added in v0.9.153

type IamRoleSearch struct {
	Client    *iam.IAM
	Filters   []Filter
	Logger    logrus.FieldLogger
	Unmatched map[string]struct{}
}

IamRoleSearch holds data to search for IAM roles.

type IamUserSearch added in v0.9.153

type IamUserSearch struct {
	// contains filtered or unexported fields
}

IamUserSearch holds data to search for IAM users.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL