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"` +}