Documentation ¶
Overview ¶
+k8s:deepcopy-gen=package Package v1alpha1 is the v1alpha1 version of the Core ACK API. +groupName=services.k8s.aws
Index ¶
Constants ¶
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 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.
func (*Condition) DeepCopyInto ¶
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.