From a22455c6dfa8935c84204fdfc03c882f94b4bb06 Mon Sep 17 00:00:00 2001 From: Matt Nikkel Date: Tue, 1 Mar 2022 21:29:19 -0500 Subject: [PATCH] Add v1alpha2 API definitions --- pkg/apis/hauler.cattle.io/v1alpha2/chart.go | 47 +++++++++++++++++++ pkg/apis/hauler.cattle.io/v1alpha2/driver.go | 21 +++++++++ pkg/apis/hauler.cattle.io/v1alpha2/file.go | 27 +++++++++++ .../v1alpha2/groupversion_info.go | 19 ++++++++ pkg/apis/hauler.cattle.io/v1alpha2/image.go | 22 +++++++++ pkg/apis/hauler.cattle.io/v1alpha2/k3s.go | 17 +++++++ 6 files changed, 153 insertions(+) create mode 100644 pkg/apis/hauler.cattle.io/v1alpha2/chart.go create mode 100644 pkg/apis/hauler.cattle.io/v1alpha2/driver.go create mode 100644 pkg/apis/hauler.cattle.io/v1alpha2/file.go create mode 100644 pkg/apis/hauler.cattle.io/v1alpha2/groupversion_info.go create mode 100644 pkg/apis/hauler.cattle.io/v1alpha2/image.go create mode 100644 pkg/apis/hauler.cattle.io/v1alpha2/k3s.go diff --git a/pkg/apis/hauler.cattle.io/v1alpha2/chart.go b/pkg/apis/hauler.cattle.io/v1alpha2/chart.go new file mode 100644 index 0000000..d34781d --- /dev/null +++ b/pkg/apis/hauler.cattle.io/v1alpha2/chart.go @@ -0,0 +1,47 @@ +package v1alpha2 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +const ( + ChartsContentKind = "Charts" + ChartsCollectionKind = "ThickCharts" +) + +type Charts struct { + *metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec ChartSpec `json:"spec,omitempty"` +} + +type ChartSpec struct { + Charts []Chart `json:"charts,omitempty"` +} + +type Chart struct { + Name string `json:"name"` + RepoURL string `json:"repoURL"` + Version string `json:"version"` +} + +type ThickCharts struct { + *metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec ChartSpec `json:"spec,omitempty"` +} + +type ThickChartSpec struct { + Charts []ThickChart `json:"charts,omitempty"` +} + +type ThickChart struct { + Chart `json:",inline,omitempty"` + ExtraImages []ChartImage `json:"extraImages,omitempty"` +} + +type ChartImage struct { + Reference string `json:"ref"` +} diff --git a/pkg/apis/hauler.cattle.io/v1alpha2/driver.go b/pkg/apis/hauler.cattle.io/v1alpha2/driver.go new file mode 100644 index 0000000..c2f053c --- /dev/null +++ b/pkg/apis/hauler.cattle.io/v1alpha2/driver.go @@ -0,0 +1,21 @@ +package v1alpha2 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +const ( + DriverContentKind = "Driver" +) + +type Driver struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec DriverSpec `json:"spec"` +} + +type DriverSpec struct { + Type string `json:"type"` + Version string `json:"version"` +} diff --git a/pkg/apis/hauler.cattle.io/v1alpha2/file.go b/pkg/apis/hauler.cattle.io/v1alpha2/file.go new file mode 100644 index 0000000..36ac007 --- /dev/null +++ b/pkg/apis/hauler.cattle.io/v1alpha2/file.go @@ -0,0 +1,27 @@ +package v1alpha2 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +const FilesContentKind = "Files" + +type Files struct { + *metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec FileSpec `json:"spec,omitempty"` +} + +type FileSpec struct { + Files []File `json:"files,omitempty"` +} + +type File struct { + // Path is the path to the file contents, can be a local or remote path + Path string `json:"path"` + + // Name is an optional field specifying the name of the file. When specified, + // it will override any dynamic name discovery from Path + Name string `json:"name,omitempty"` +} diff --git a/pkg/apis/hauler.cattle.io/v1alpha2/groupversion_info.go b/pkg/apis/hauler.cattle.io/v1alpha2/groupversion_info.go new file mode 100644 index 0000000..cf9705c --- /dev/null +++ b/pkg/apis/hauler.cattle.io/v1alpha2/groupversion_info.go @@ -0,0 +1,19 @@ +package v1alpha2 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +const ( + Version = "v1alpha2" + ContentGroup = "content.hauler.cattle.io" + CollectionGroup = "collection.hauler.cattle.io" +) + +var ( + ContentGroupVersion = schema.GroupVersion{Group: ContentGroup, Version: Version} + SchemeBuilder = &scheme.Builder{GroupVersion: ContentGroupVersion} + + CollectionGroupVersion = schema.GroupVersion{Group: CollectionGroup, Version: Version} +) diff --git a/pkg/apis/hauler.cattle.io/v1alpha2/image.go b/pkg/apis/hauler.cattle.io/v1alpha2/image.go new file mode 100644 index 0000000..21a0cab --- /dev/null +++ b/pkg/apis/hauler.cattle.io/v1alpha2/image.go @@ -0,0 +1,22 @@ +package v1alpha2 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +const ImagesContentKind = "Images" + +type Images struct { + *metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec ImageSpec `json:"spec,omitempty"` +} + +type ImageSpec struct { + Images []Image `json:"images,omitempty"` +} + +type Image struct { + Name string `json:"name"` +} diff --git a/pkg/apis/hauler.cattle.io/v1alpha2/k3s.go b/pkg/apis/hauler.cattle.io/v1alpha2/k3s.go new file mode 100644 index 0000000..874e381 --- /dev/null +++ b/pkg/apis/hauler.cattle.io/v1alpha2/k3s.go @@ -0,0 +1,17 @@ +package v1alpha2 + +import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +const K3sCollectionKind = "K3s" + +type K3s struct { + *metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec K3sSpec `json:"spec,omitempty"` +} + +type K3sSpec struct { + Version string `json:"version"` + Arch string `json:"arch"` +}