Skip to content

Commit

Permalink
add non-bootable iso api
Browse files Browse the repository at this point in the history
Signed-off-by: Himanshu Roy <hroy@redhat.com>
  • Loading branch information
hroyrh committed Mar 15, 2024
1 parent 4cfd776 commit 9b13e0e
Show file tree
Hide file tree
Showing 4 changed files with 301 additions and 0 deletions.
9 changes: 9 additions & 0 deletions PROJECT
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,13 @@ resources:
kind: HostFirmwareComponents
path: github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha
version: v1alpha1
- api:
crdVersion: v1
namespaced: true
controller: true
domain: metal3.io
group: metal3.io
kind: DataImage
path: github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1
version: v1alpha1
version: "3"
82 changes: 82 additions & 0 deletions apis/metal3.io/v1alpha1/dataimage_types.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/*
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package v1alpha1

import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

const DataImageFinalizer = "dataimage.metal3.io"

// Contains the attached DataImage.
type AttachedImageReference struct {
URL string `json:"url"`
}

// Contains the count of errors and the last error message.
type DataImageError struct {
Count int `json:"count"`
Message string `json:"message"`
}

// DataImageSpec defines the desired state of DataImage.
type DataImageSpec struct {
// Important: Run "make" to regenerate code after modifying this file

// URL is the address of the dataImage that we want to attach
// to a BareMetalHost
URL string `json:"url"`
}

// DataImageStatus defines the observed state of DataImage.
type DataImageStatus struct {
// Time of last reconciliation
// +optional
LastReconciled *metav1.Time `json:"lastReconciled,omitempty"`

// AttachedImage shows the currently attached image
AttachedImage *AttachedImageReference `json:"attachedImage,omitempty"`

// Error contains errors related to DataImage attachment/detachment
Error *DataImageError `json:"error,omitempty"`
}

//+kubebuilder:object:root=true
//+kubebuilder:resource:shortName=dimg
//+kubebuilder:subresource:status

// DataImage is the Schema for the dataimages API.
type DataImage struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`

Spec DataImageSpec `json:"spec,omitempty"`
Status DataImageStatus `json:"status,omitempty"`
}

//+kubebuilder:object:root=true

// DataImageList contains a list of DataImage.
type DataImageList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []DataImage `json:"items"`
}

func init() {
SchemeBuilder.Register(&DataImage{}, &DataImageList{})
}
133 changes: 133 additions & 0 deletions apis/metal3.io/v1alpha1/zz_generated.deepcopy.go

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

77 changes: 77 additions & 0 deletions config/base/crds/bases/metal3.io_dataimages.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.12.1
name: dataimages.metal3.io
spec:
group: metal3.io
names:
kind: DataImage
listKind: DataImageList
plural: dataimages
shortNames:
- dimg
singular: dataimage
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: DataImage is the Schema for the dataimages API.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: DataImageSpec defines the desired state of DataImage.
properties:
url:
description: URL is the address of the dataImage that we want to attach
to a BareMetalHost
type: string
required:
- url
type: object
status:
description: DataImageStatus defines the observed state of DataImage.
properties:
attachedImage:
description: AttachedImage shows the currently attached image
properties:
url:
type: string
required:
- url
type: object
error:
description: Error contains errors related to DataImage attachment/detachment
properties:
count:
type: integer
message:
type: string
required:
- count
- message
type: object
lastReconciled:
description: Time of last reconciliation
format: date-time
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}

0 comments on commit 9b13e0e

Please sign in to comment.