From e4c82b3d7ba8ec21a1f04656504c999e09eca809 Mon Sep 17 00:00:00 2001 From: xing-yang Date: Sat, 4 Aug 2018 13:44:58 -0700 Subject: [PATCH] Add TypedLocalObjectReference and DataSource This PR adds TypedLocalObjectReference in the core API and adds DataSource in PersistentVolumeClaimSpec. --- pkg/apis/core/types.go | 13 +++++++++++++ staging/src/k8s.io/api/core/v1/types.go | 16 ++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/pkg/apis/core/types.go b/pkg/apis/core/types.go index 0dddca02f3f..e42a14beb21 100644 --- a/pkg/apis/core/types.go +++ b/pkg/apis/core/types.go @@ -413,6 +413,9 @@ type PersistentVolumeClaimSpec struct { // This is an alpha feature and may change in the future. // +optional VolumeMode *PersistentVolumeMode + // If specified, volume will be prepopulated with data from the DataSource. + // +optional + DataSource *TypedLocalObjectReference } type PersistentVolumeClaimConditionType string @@ -3960,6 +3963,16 @@ type LocalObjectReference struct { Name string } +// TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace. +type TypedLocalObjectReference struct { + // Name of the referent. + // +optional + Name string + // Kind of the referent. + // +optional + Kind string +} + // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type SerializedReference struct { diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index 543d980e4f6..481796135db 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -458,6 +458,9 @@ type PersistentVolumeClaimSpec struct { // This is an alpha feature and may change in the future. // +optional VolumeMode *PersistentVolumeMode `json:"volumeMode,omitempty" protobuf:"bytes,6,opt,name=volumeMode,casttype=PersistentVolumeMode"` + // If specified, volume will be prepopulated with data from the DataSource. + // +optional + DataSource *TypedLocalObjectReference `json:"dataSource" protobuf:"bytes,7,opt,name=dataSource"` } // PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type @@ -4478,6 +4481,19 @@ type LocalObjectReference struct { Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` } +// TypedLocalObjectReference contains enough information to let you locate the +// typed referenced object inside the same namespace. +type TypedLocalObjectReference struct { + // Name of the referent. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + // +optional + Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` + // Kind of the referent. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds + // +optional + Kind string `json:"kind,omitempty" protobuf:"bytes,2,opt,name=kind"` +} + // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // SerializedReference is a reference to serialized object.