Skip to content
This repository was archived by the owner on Dec 6, 2024. It is now read-only.

[WIP] Update api with new kep #51

Merged
merged 3 commits into from
Jul 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,12 @@

This repository hosts the API defintion of the Custom Resource Definitions (CRD) used for the Container Object Storage Interface (COSI) project. The provisioned unit of storage is a `Bucket`. The following CRDs are defined for managing the lifecycle of Buckets:

- BucketRequest - Represents a request to provision a Bucket
- BucketClaim - Represents a request to provision a Bucket
- BucketClass - Represents a class of Buckets with similar characteristics
- Bucket - Represents a Bucket or its equivalent in the storage backend

The following CRDs are defined for managing the lifecycle of workloads accessing the Bucket:

- BucketAccessRequest - Represents a request to access a Bucket
- BucketAccessClass - Represents a class of accessors with similar access requirements
- BucketAccess - Represents a access token or service account in the storage backend

Expand Down
200 changes: 14 additions & 186 deletions apis/objectstorage.k8s.io/v1alpha1/openapi_generated.go

Large diffs are not rendered by default.

70 changes: 9 additions & 61 deletions apis/objectstorage.k8s.io/v1alpha1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,10 @@ import (

func init() {
SchemeBuilder.Register(&Bucket{}, &BucketList{})
SchemeBuilder.Register(&BucketRequest{}, &BucketRequestList{})
SchemeBuilder.Register(&BucketClaim{}, &BucketClaimList{})
SchemeBuilder.Register(&BucketClass{}, &BucketClassList{})

SchemeBuilder.Register(&BucketAccess{}, &BucketAccessList{})
SchemeBuilder.Register(&BucketAccessRequest{}, &BucketAccessRequestList{})
SchemeBuilder.Register(&BucketAccessClass{}, &BucketAccessClassList{})
}

Expand Down Expand Up @@ -65,7 +64,7 @@ type BucketSpec struct {
// +optional
BucketClassName string `json:"bucketClassName,omitempty"`

BucketRequest *corev1.ObjectReference `json:"bucketRequest,omitempty"`
BucketClaim *corev1.ObjectReference `json:"bucketClaim,omitempty"`

// +listType=atomic
AllowedNamespaces []string `json:"allowedNamespaces,omitempty"`
Expand Down Expand Up @@ -110,27 +109,27 @@ type BucketList struct {
// +kubebuilder:subresource:status
// +kubebuilder:storageversion

type BucketRequest struct {
type BucketClaim struct {
metav1.TypeMeta `json:",inline"`
// +optional

metav1.ObjectMeta `json:"metadata,omitempty"`

Spec BucketRequestSpec `json:"spec,omitempty"`
Spec BucketClaimSpec `json:"spec,omitempty"`

// +optional
Status BucketRequestStatus `json:"status,omitempty"`
Status BucketClaimStatus `json:"status,omitempty"`
}

type BucketRequestSpec struct {
type BucketClaimSpec struct {
// +optional
BucketPrefix string `json:"bucketPrefix,omitempty"`

// +optional
BucketClassName string `json:"bucketClassName,omitempty"`
}

type BucketRequestStatus struct {
type BucketClaimStatus struct {
// +optional
Message string `json:"message,omitempty"`

Expand All @@ -143,10 +142,10 @@ type BucketRequestStatus struct {

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

type BucketRequestList struct {
type BucketClaimList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []BucketRequest `json:"items"`
Items []BucketClaim `json:"items"`
}

// +genclient
Expand Down Expand Up @@ -239,9 +238,6 @@ type BucketAccessSpec struct {
// +optional
BucketName string `json:"bucketName,omitempty"`

// +optional
BucketAccessRequest *corev1.ObjectReference `json:"bucketAccessRequest,omitempty"`

// +optional
ServiceAccount *corev1.ObjectReference `json:"serviceAccount,omitempty"`

Expand Down Expand Up @@ -272,51 +268,3 @@ type BucketAccessList struct {
metav1.ListMeta `json:"metadata,omitempty"`
Items []BucketAccess `json:"items"`
}

// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +kubebuilder:resource:scope=Namespaced
// +kubebuilder:storageversion
// +kubebuilder:subresource:status

type BucketAccessRequest struct {
metav1.TypeMeta `json:",inline"`

// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`

Spec BucketAccessRequestSpec `json:"spec,omitempty"`

// +optional
Status BucketAccessRequestStatus `json:"status"`
}

type BucketAccessRequestSpec struct {
// +optional
ServiceAccountName string `json:"serviceAccountName,omitempty"`
// +optional
BucketRequestName string `json:"bucketRequestName,omitempty"`
// +optional
BucketName string `json:"bucketName,omitempty"`

BucketAccessClassName string `json:"bucketAccessClassName"`
}

type BucketAccessRequestStatus struct {
// +optional
Message string `json:"message,omitempty"`

// +optional
AccessGranted bool `json:"accessGranted"`

// +optional
BucketAccessName string `json:"bucketAccessName,omitempty"`
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

type BucketAccessRequestList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []BucketAccessRequest `json:"items"`
}
142 changes: 22 additions & 120 deletions apis/objectstorage.k8s.io/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading