Skip to content

Commit cb8a3ab

Browse files
authored
runtime changes for supporting resource references (#62)
Issue #, if available: aws-controllers-k8s/community#1063 Description of changes: * Add new `ResolveReferences` method to AWSResourceManager interface * Add new condition `ACK.ReferencesResolved` * Update mockery to 2.9.4(Supports binary for apple M1 architecture) * remove deprecated 'trivialVersions' for deepcopy generation * reconciler changes for resolving resource references By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 5afdd00 commit cb8a3ab

33 files changed

+499
-29
lines changed

apis/core/v1alpha1/conditions.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@ const (
5252
// "True" status indicates that the resource fields have been late initialized
5353
// "False" status indicates that the resource fields are in process of being late initialized.
5454
ConditionTypeLateInitialized ConditionType = "ACK.LateInitialized"
55+
// ConditionTypeReferencesResolved indicates whether all the references of
56+
// type AWSResourceReference have been resolved or not.
57+
//
58+
// Absence of this condition means there are no references to be resolved.
59+
// "True" status indicates that the resource references have been resolved.
60+
// "Unknown" status indicates that the resource references are in process of
61+
// being resolved
62+
// "False" status indicates that the resource references failed to resolve.
63+
// For Ex: When referenced resource is in terminal condition
64+
ConditionTypeReferencesResolved ConditionType = "ACK.ReferencesResolved"
5565
)
5666

5767
// Condition is the common struct used by all CRDs managed by ACK service

apis/core/v1alpha1/identifiers.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,19 @@ type TargetKubernetesResource struct {
3535
Kind string `json:"kind"`
3636
Metadata *PartialObjectMeta `json:"metadata,omitempty"`
3737
}
38+
39+
// AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference
40+
// type to provide more user friendly syntax for references using 'from' field
41+
// Ex:
42+
// APIIDRef:
43+
// from:
44+
// name: my-api
45+
type AWSResourceReferenceWrapper struct {
46+
From *AWSResourceReference `json:"from,omitempty"`
47+
}
48+
49+
// AWSResourceReference provides all the values necessary to reference another
50+
// k8s resource for finding the identifier(Id/ARN/Name)
51+
type AWSResourceReference struct {
52+
Name *string `json:"name,omitempty"`
53+
}

apis/core/v1alpha1/zz_generated.deepcopy.go

Lines changed: 40 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/services.k8s.aws_adoptedresources.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ apiVersion: apiextensions.k8s.io/v1
44
kind: CustomResourceDefinition
55
metadata:
66
annotations:
7-
controller-gen.kubebuilder.io/version: v0.4.0
7+
controller-gen.kubebuilder.io/version: v0.7.0
88
creationTimestamp: null
99
name: adoptedresources.services.k8s.aws
1010
spec:

mocks/apimachinery/pkg/apis/meta/v1/object.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mocks/apimachinery/pkg/runtime/object.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mocks/apimachinery/pkg/runtime/schema/object_kind.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mocks/controller-runtime/pkg/client/client.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mocks/controller-runtime/pkg/client/reader.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mocks/controller-runtime/pkg/client/status_client.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)