You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2020/07/01 07:08:31 UTC

[camel-k] 24/24: fix(crd): metav1.Time fails CRD validation

This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 9973bc710279234d56c06d00720fee9d902fa42c
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Jun 29 18:08:07 2020 +0200

    fix(crd): metav1.Time fails CRD validation
    
    See https://github.com/kubernetes/kubernetes/issues/86811
---
 deploy/crd-build.yaml                                   |  1 -
 .../1.1.0-snapshot/builds.camel.apache.org.crd.yaml     |  1 -
 deploy/resources.go                                     |  4 ++--
 helm/camel-k/crds/crd-build.yaml                        |  1 -
 pkg/apis/camel/v1/build_types.go                        | 17 ++++++++---------
 pkg/apis/camel/v1/zz_generated.deepcopy.go              |  5 ++++-
 pkg/controller/build/monitor_pod.go                     |  5 +++--
 pkg/controller/build/schedule_routine.go                |  3 ++-
 8 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/deploy/crd-build.yaml b/deploy/crd-build.yaml
index c366e91..27ad6f3 100644
--- a/deploy/crd-build.yaml
+++ b/deploy/crd-build.yaml
@@ -4610,7 +4610,6 @@ spec:
               type: string
             startedAt:
               format: date-time
-              nullable: true
               type: string
           type: object
       type: object
diff --git a/deploy/olm-catalog/camel-k-dev/1.1.0-snapshot/builds.camel.apache.org.crd.yaml b/deploy/olm-catalog/camel-k-dev/1.1.0-snapshot/builds.camel.apache.org.crd.yaml
index c366e91..27ad6f3 100644
--- a/deploy/olm-catalog/camel-k-dev/1.1.0-snapshot/builds.camel.apache.org.crd.yaml
+++ b/deploy/olm-catalog/camel-k-dev/1.1.0-snapshot/builds.camel.apache.org.crd.yaml
@@ -4610,7 +4610,6 @@ spec:
               type: string
             startedAt:
               format: date-time
-              nullable: true
               type: string
           type: object
       type: object
diff --git a/deploy/resources.go b/deploy/resources.go
index 4d522a8..8909f03 100644
--- a/deploy/resources.go
+++ b/deploy/resources.go
@@ -112,9 +112,9 @@ var assets = func() http.FileSystem {
 		"/crd-build.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "crd-build.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 301768,
+			uncompressedSize: 301739,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x6b\x73\x23\xb7\xb5\x28\xfa\xdd\xbf\x02\x25\xa7\x4a\xd2\x8e\x48\x79\xf6\xce\xcd\xce\x9e\xec\x8a\x4b\x1e\x69\x1c\x5d\xcf\x43\x67\xa8\xb1\xef\x29\x27\x3b\x05\x76\x83\x24\xa2\x6e\xa0\x0d\xa0\xa5\x61\x8e\xcf\x7f\xbf\x85\x05\xa0\x1f\x7c\xf5\x42\x93\xd2\xc8\x76\xe3\xcb\x8c\x48\xf6\x6a\x3c\x16\xd6\xfb\xf1\x25\x19\x1d\x6e\x7c\xf1\x25\x79\xc3\x13\x26\x34\x4b\x89\x91\xc4\x2c\x18\xb9\x28\x68\xb2\x60\x64\x22\x67\xe6\x81\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x6b\x73\x23\xb7\xb5\x28\xfa\xdd\xbf\x02\x25\xa7\x4a\xd2\x8e\x48\x79\xf6\xce\xcd\xce\x9e\xec\x8a\x4b\x1e\x69\x1c\x5d\xcf\x43\x67\xa8\xb1\xef\x29\x27\x3b\x05\x76\x83\x24\xa2\x6e\xa0\x0d\xa0\xa5\x61\x8e\xcf\x7f\xbf\x85\x05\xa0\x1f\x7c\xf5\x42\x93\xd2\xc8\x76\xe3\xcb\x8c\x48\xf6\x6a\x3c\x16\xd6\xfb\xf1\x25\x19\x1d\x6e\x7c\xf1\x25\x79\xc3\x13\x26\x34\x4b\x89\x91\xc4\x2c\x18\xb9\x28\x68\xb2\x60\x64\x22\x67\xe6\x81\x [...]
 		},
 		"/crd-camel-catalog.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "crd-camel-catalog.yaml",
diff --git a/helm/camel-k/crds/crd-build.yaml b/helm/camel-k/crds/crd-build.yaml
index c366e91..27ad6f3 100644
--- a/helm/camel-k/crds/crd-build.yaml
+++ b/helm/camel-k/crds/crd-build.yaml
@@ -4610,7 +4610,6 @@ spec:
               type: string
             startedAt:
               format: date-time
-              nullable: true
               type: string
           type: object
       type: object
diff --git a/pkg/apis/camel/v1/build_types.go b/pkg/apis/camel/v1/build_types.go
index 9311965..6b9c3d7 100644
--- a/pkg/apis/camel/v1/build_types.go
+++ b/pkg/apis/camel/v1/build_types.go
@@ -84,15 +84,14 @@ type BuilderTask struct {
 
 // BuildStatus defines the observed state of Build
 type BuildStatus struct {
-	Phase     BuildPhase `json:"phase,omitempty"`
-	Image     string     `json:"image,omitempty"`
-	Digest    string     `json:"digest,omitempty"`
-	BaseImage string     `json:"baseImage,omitempty"`
-	Artifacts []Artifact `json:"artifacts,omitempty"`
-	Error     string     `json:"error,omitempty"`
-	Failure   *Failure   `json:"failure,omitempty"`
-	// +nullable
-	StartedAt  metav1.Time      `json:"startedAt,omitempty"`
+	Phase      BuildPhase       `json:"phase,omitempty"`
+	Image      string           `json:"image,omitempty"`
+	Digest     string           `json:"digest,omitempty"`
+	BaseImage  string           `json:"baseImage,omitempty"`
+	Artifacts  []Artifact       `json:"artifacts,omitempty"`
+	Error      string           `json:"error,omitempty"`
+	Failure    *Failure         `json:"failure,omitempty"`
+	StartedAt  *metav1.Time     `json:"startedAt,omitempty"`
 	Platform   string           `json:"platform,omitempty"`
 	Conditions []BuildCondition `json:"conditions,omitempty"`
 	// Change to Duration / ISO 8601 when CRD uses OpenAPI spec v3
diff --git a/pkg/apis/camel/v1/zz_generated.deepcopy.go b/pkg/apis/camel/v1/zz_generated.deepcopy.go
index 87f7ff9..3cd5a5f 100644
--- a/pkg/apis/camel/v1/zz_generated.deepcopy.go
+++ b/pkg/apis/camel/v1/zz_generated.deepcopy.go
@@ -176,7 +176,10 @@ func (in *BuildStatus) DeepCopyInto(out *BuildStatus) {
 		*out = new(Failure)
 		(*in).DeepCopyInto(*out)
 	}
-	in.StartedAt.DeepCopyInto(&out.StartedAt)
+	if in.StartedAt != nil {
+		in, out := &in.StartedAt, &out.StartedAt
+		*out = (*in).DeepCopy()
+	}
 	if in.Conditions != nil {
 		in, out := &in.Conditions, &out.Conditions
 		*out = make([]BuildCondition, len(*in))
diff --git a/pkg/controller/build/monitor_pod.go b/pkg/controller/build/monitor_pod.go
index 44c13c2..cd6aca1 100644
--- a/pkg/controller/build/monitor_pod.go
+++ b/pkg/controller/build/monitor_pod.go
@@ -60,8 +60,9 @@ func (action *monitorPodAction) Handle(ctx context.Context, build *v1.Build) (*v
 	case pod.Status.Phase == corev1.PodPending && action.isPodScheduled(pod),
 		pod.Status.Phase == corev1.PodRunning:
 		build.Status.Phase = v1.BuildPhaseRunning
-		if build.Status.StartedAt.Time.IsZero() {
-			build.Status.StartedAt = metav1.Now()
+		if build.Status.StartedAt == nil || build.Status.StartedAt.Time.IsZero() {
+			now := metav1.Now()
+			build.Status.StartedAt = &now
 		}
 
 	case pod.Status.Phase == corev1.PodSucceeded:
diff --git a/pkg/controller/build/schedule_routine.go b/pkg/controller/build/schedule_routine.go
index db66bb2..6edc0f7 100644
--- a/pkg/controller/build/schedule_routine.go
+++ b/pkg/controller/build/schedule_routine.go
@@ -103,9 +103,10 @@ func (action *scheduleRoutineAction) Handle(ctx context.Context, build *v1.Build
 func (action *scheduleRoutineAction) runBuild(ctx context.Context, build *v1.Build) {
 	defer action.routines.Delete(build.Name)
 
+	now := metav1.Now()
 	status := v1.BuildStatus{
 		Phase:     v1.BuildPhaseRunning,
-		StartedAt: metav1.Now(),
+		StartedAt: &now,
 	}
 	if err := action.updateBuildStatus(ctx, build, status); err != nil {
 		return