v1alpha1

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2021 License: Apache-2.0 Imports: 2 Imported by: 4

Documentation

Overview

+k8s:deepcopy-gen=package Package v1alpha1 is the v1alpha1 version of the Core ACK API. +groupName=services.k8s.aws

Index

Constants

View Source
const (
	// AnnotationPrefix is the prefix for all ACK annotations
	AnnotationPrefix = "services.k8s.aws/"
	// AnnotationARN is an annotation whose value is an Amazon Resource Name,
	// which is a globally-unique identifier, for the backend AWS service API
	// resource. If this annotation is SET on a CR, that means the user is
	// indicating to the ACK service controller that it should expect a backend
	// AWS service API resource to already exist (and that ACK should "adopt"
	// the resource into its management). If this annotation is NOT SET on a
	// CR, that means the user expects the ACK service controller to create the
	// backend AWS service API resource.
	AnnotationARN = AnnotationPrefix + "arn"
	// AnnotationOwnerAccountID is an annotation whose value is the identifier
	// for the AWS account to which the resource belongs.  If this annotation
	// is set on a CR, the Kubernetes user is indicating that the ACK service
	// controller should create/patch/delete the resource in the specified AWS
	// Account. In order for this cross-account resource management to succeed,
	// the AWS IAM Role that the ACK service controller runs as needs to have
	// the ability to call the AWS STS::AssumeRole API call and assume an IAM
	// Role in the target AWS Account.
	// TODO(jaypipes): Link to documentation on cross-account resource
	// management
	AnnotationOwnerAccountID = AnnotationPrefix + "owner-account-id"
	// AnnotationRegion is an annotation whose value is the identifier for the
	// the AWS region in which the resources should be created. If this annotation
	// is set on a CR metadata, that means the user is indicating to the ACK service
	// controller that the CR should be created on specific region. ACK service
	// controller will not override the resource region if this annotation is set.
	AnnotationRegion = AnnotationPrefix + "region"
	// AnnotationDefaultRegion is an annotation whose value is the identifier
	// for the default AWS region in which resources should be created. If this
	// annotation is set on a namespace, the Kubernetes user is indicating that
	// the ACK service controller should set the regions in which the resource
	// should be created, if a region annotation is not set on the CR metadata.
	// If this annotation - and AnnotationRegion - are not set, ACK service
	// controllers look for controller binary flags and environment variables
	// injected by POD IRSA, to decide in which region the resources should be
	// created.
	AnnotationDefaultRegion = AnnotationPrefix + "default-region"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSAccountID

type AWSAccountID string

AWSAccountID represents an AWS account identifier

type AWSRegion

type AWSRegion string

AWSRegion represents an AWS regional identifier

type AWSResourceName

type AWSResourceName string

AWSResourceName represents an AWS Resource Name (ARN)

type Condition

type Condition struct {
	// Type is the type of the Condition
	Type ConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"`
	// The reason for the condition's last transition.
	// +optional
	Reason *string `json:"reason,omitempty"`
	// A human readable message indicating details about the transition.
	// +optional
	Message *string `json:"message,omitempty"`
}

Condition is the common struct used by all CRDs managed by ACK service controllers to indicate terminal states of the CR and its backend AWS service API resource

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConditionType

type ConditionType string

ConditionType is a category of ResourceCondition that all CRs managed by an ACK service controller expose in their `Status.Conditions` collection

const (
	// ConditionTypeResourceSynced indicates the state of the resource in the
	// backend service is in sync with the ACK service controller
	ConditionTypeResourceSynced ConditionType = "ACK.ResourceSynced"
	// ConditionTypeTerminal indicates that the custom resource Spec need to be
	// updated before any further sync.
	// Examples include:
	//		- As a result of InvalidArgument in input yaml
	//		- Resource server state is "create-failed"
	ConditionTypeTerminal ConditionType = "ACK.Terminal"
)

type ResourceMetadata

type ResourceMetadata struct {
	// ARN is the Amazon Resource Name for the resource. This is a
	// globally-unique identifier and is set only by the ACK service controller
	// once the controller has orchestrated the creation of the resource OR
	// when it has verified that an "adopted" resource (a resource where the
	// ARN annotation was set by the Kubernetes user on the CR) exists and
	// matches the supplied CR's Spec field values.
	//TODO(vijat@): Find a better strategy for resources that do not have ARN in CreateOutputResponse
	// https://github.com/aws/aws-controllers-k8s/issues/270
	ARN *AWSResourceName `json:"arn,omitempty"`
	// OwnerAccountID is the AWS Account ID of the account that owns the
	// backend AWS service API resource.
	OwnerAccountID *AWSAccountID `json:"ownerAccountID"`
}

ResourceMetadata is common to all custom resources (CRs) managed by an ACK service controller. It is contained in the CR's `Status` member field and comprises various status and identifier fields useful to ACK for tracking state changes between Kubernetes and the backend AWS service API

func (*ResourceMetadata) DeepCopy

func (in *ResourceMetadata) DeepCopy() *ResourceMetadata

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetadata.

func (*ResourceMetadata) DeepCopyInto

func (in *ResourceMetadata) DeepCopyInto(out *ResourceMetadata)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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