@@ -17,9 +17,51 @@ limitations under the License.
1717package v1beta1
1818
1919import (
20+ v1 "k8s.io/api/core/v1"
2021 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2122)
2223
24+ type BuildOrSignAction string
25+
26+ const (
27+ // BuildImage means that image needs to be built
28+ BuildImage BuildOrSignAction = "BuildImage"
29+
30+ // SignImage means that image needs to be built
31+ SignImage BuildOrSignAction = "SignImage"
32+
33+ // ImageBuildFailed means that image does not exists and the Build failed
34+ ImageBuildFailed ImageState = "BuildFailed"
35+
36+ // ImageBuildSucceeded means that image has been built and pushed succesfully
37+ ImageBuildSucceeded ImageState = "BuildSucceeded"
38+
39+ // ImageSignFailed means that image does not exists and the Sign failed
40+ ImageSignFailed ImageState = "SignFailed"
41+
42+ // ImageSignSucceeded means that image has been signed and pushed succesfully
43+ ImageSignSucceeded ImageState = "SignSucceeded"
44+ )
45+
46+ // ModuleImageSpec describes the image whose state needs to be queried
47+ type ModuleBuildSignSpec struct {
48+ ModuleImageSpec
49+
50+ // Action to take on the image, either build or sign
51+ Action BuildOrSignAction `json:"action"`
52+ }
53+
54+ // ModuleBuildSignConfigSpec describes the images that need to be built/signed
55+ // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
56+ // +kubebuilder:validation:Required
57+ type ModuleBuildSignConfigSpec struct {
58+ Images []ModuleBuildSignSpec `json:"images"`
59+
60+ // ImageRepoSecret contains pull secret for the image's repo, if needed
61+ // +optional
62+ ImageRepoSecret * v1.LocalObjectReference `json:"imageRepoSecret,omitempty"`
63+ }
64+
2365// +kubebuilder:object:root=true
2466// +kubebuilder:subresource:status
2567
@@ -30,8 +72,8 @@ type ModuleBuildSignConfig struct {
3072 metav1.TypeMeta `json:",inline"`
3173 metav1.ObjectMeta `json:"metadata,omitempty"`
3274
33- Spec ModuleImagesConfigSpec `json:"spec,omitempty"`
34- Status ModuleImagesConfigStatus `json:"status,omitempty"`
75+ Spec ModuleBuildSignConfigSpec `json:"spec,omitempty"`
76+ Status ModuleImagesConfigStatus `json:"status,omitempty"`
3577}
3678
3779// +kubebuilder:object:root=true
0 commit comments