diff --git a/apis/bases/core.openstack.org_openstackcontrolplanes.yaml b/apis/bases/core.openstack.org_openstackcontrolplanes.yaml index 5d6086eb9..8da4d5d77 100644 --- a/apis/bases/core.openstack.org_openstackcontrolplanes.yaml +++ b/apis/bases/core.openstack.org_openstackcontrolplanes.yaml @@ -16071,10 +16071,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: diff --git a/apis/bases/core.openstack.org_openstackversions.yaml b/apis/bases/core.openstack.org_openstackversions.yaml index e288d3472..71edfc759 100644 --- a/apis/bases/core.openstack.org_openstackversions.yaml +++ b/apis/bases/core.openstack.org_openstackversions.yaml @@ -143,10 +143,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -375,10 +379,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -571,10 +579,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -779,10 +791,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: diff --git a/apis/core/v1beta1/openstackversion_types.go b/apis/core/v1beta1/openstackversion_types.go index 7c3f9a3b9..b1ef10865 100644 --- a/apis/core/v1beta1/openstackversion_types.go +++ b/apis/core/v1beta1/openstackversion_types.go @@ -128,8 +128,10 @@ type ContainerTemplate struct { InfraRedisImage *string `json:"infraRedisImage,omitempty"` IronicAPIImage *string `json:"ironicAPIImage,omitempty"` IronicConductorImage *string `json:"ironicConductorImage,omitempty"` + IronicGraphicalConsoleImage *string `json:"ironicGraphicalConsoleImage,omitempty"` IronicInspectorImage *string `json:"ironicInspectorImage,omitempty"` IronicNeutronAgentImage *string `json:"ironicNeutronAgentImage,omitempty"` + IronicNovncImage *string `json:"ironicNovncImage,omitempty"` IronicPxeImage *string `json:"ironicPxeImage,omitempty"` IronicPythonAgentImage *string `json:"ironicPythonAgentImage,omitempty"` KeystoneAPIImage *string `json:"keystoneAPIImage,omitempty"` diff --git a/apis/core/v1beta1/zz_generated.deepcopy.go b/apis/core/v1beta1/zz_generated.deepcopy.go index 7d3f8f17c..12df26db4 100644 --- a/apis/core/v1beta1/zz_generated.deepcopy.go +++ b/apis/core/v1beta1/zz_generated.deepcopy.go @@ -502,6 +502,11 @@ func (in *ContainerTemplate) DeepCopyInto(out *ContainerTemplate) { *out = new(string) **out = **in } + if in.IronicGraphicalConsoleImage != nil { + in, out := &in.IronicGraphicalConsoleImage, &out.IronicGraphicalConsoleImage + *out = new(string) + **out = **in + } if in.IronicInspectorImage != nil { in, out := &in.IronicInspectorImage, &out.IronicInspectorImage *out = new(string) @@ -512,6 +517,11 @@ func (in *ContainerTemplate) DeepCopyInto(out *ContainerTemplate) { *out = new(string) **out = **in } + if in.IronicNovncImage != nil { + in, out := &in.IronicNovncImage, &out.IronicNovncImage + *out = new(string) + **out = **in + } if in.IronicPxeImage != nil { in, out := &in.IronicPxeImage, &out.IronicPxeImage *out = new(string) diff --git a/bindata/crds/crds.yaml b/bindata/crds/crds.yaml index 97a0e7d41..278f5c898 100644 --- a/bindata/crds/crds.yaml +++ b/bindata/crds/crds.yaml @@ -16237,10 +16237,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -17860,10 +17864,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -18092,10 +18100,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -18288,10 +18300,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -18496,10 +18512,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: diff --git a/config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml b/config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml index 5d6086eb9..8da4d5d77 100644 --- a/config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml +++ b/config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml @@ -16071,10 +16071,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: diff --git a/config/crd/bases/core.openstack.org_openstackversions.yaml b/config/crd/bases/core.openstack.org_openstackversions.yaml index e288d3472..71edfc759 100644 --- a/config/crd/bases/core.openstack.org_openstackversions.yaml +++ b/config/crd/bases/core.openstack.org_openstackversions.yaml @@ -143,10 +143,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -375,10 +379,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -571,10 +579,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -779,10 +791,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: diff --git a/pkg/openstack/ironic.go b/pkg/openstack/ironic.go index 831bbf364..e44bfb7a3 100644 --- a/pkg/openstack/ironic.go +++ b/pkg/openstack/ironic.go @@ -36,8 +36,10 @@ func ReconcileIronic(ctx context.Context, instance *corev1beta1.OpenStackControl instance.Status.Conditions.Remove(corev1beta1.OpenStackControlPlaneExposeIronicReadyCondition) instance.Status.ContainerImages.IronicAPIImage = nil instance.Status.ContainerImages.IronicConductorImage = nil + instance.Status.ContainerImages.IronicGraphicalConsoleImage = nil instance.Status.ContainerImages.IronicInspectorImage = nil instance.Status.ContainerImages.IronicNeutronAgentImage = nil + instance.Status.ContainerImages.IronicNovncImage = nil instance.Status.ContainerImages.IronicPxeImage = nil instance.Status.ContainerImages.IronicPythonAgentImage = nil return ctrl.Result{}, nil @@ -173,8 +175,10 @@ func ReconcileIronic(ctx context.Context, instance *corev1beta1.OpenStackControl ironic.Spec.Images.API = *version.Status.ContainerImages.IronicAPIImage ironic.Spec.Images.Conductor = *version.Status.ContainerImages.IronicConductorImage + ironic.Spec.Images.GraphicalConsole = *version.Status.ContainerImages.IronicGraphicalConsoleImage ironic.Spec.Images.Inspector = *version.Status.ContainerImages.IronicInspectorImage ironic.Spec.Images.NeutronAgent = *version.Status.ContainerImages.IronicNeutronAgentImage + ironic.Spec.Images.NoVNCProxy = *version.Status.ContainerImages.IronicNovncImage ironic.Spec.Images.Pxe = *version.Status.ContainerImages.IronicPxeImage ironic.Spec.Images.IronicPythonAgent = *version.Status.ContainerImages.IronicPythonAgentImage @@ -206,8 +210,10 @@ func ReconcileIronic(ctx context.Context, instance *corev1beta1.OpenStackControl Log.Info("Ironic ready condition is true") instance.Status.ContainerImages.IronicAPIImage = version.Status.ContainerImages.IronicAPIImage instance.Status.ContainerImages.IronicConductorImage = version.Status.ContainerImages.IronicConductorImage + instance.Status.ContainerImages.IronicGraphicalConsoleImage = version.Status.ContainerImages.IronicGraphicalConsoleImage instance.Status.ContainerImages.IronicInspectorImage = version.Status.ContainerImages.IronicInspectorImage instance.Status.ContainerImages.IronicNeutronAgentImage = version.Status.ContainerImages.IronicNeutronAgentImage + instance.Status.ContainerImages.IronicNovncImage = version.Status.ContainerImages.IronicNovncImage instance.Status.ContainerImages.IronicPxeImage = version.Status.ContainerImages.IronicPxeImage instance.Status.ContainerImages.IronicPythonAgentImage = version.Status.ContainerImages.IronicPythonAgentImage instance.Status.Conditions.MarkTrue(corev1beta1.OpenStackControlPlaneIronicReadyCondition, corev1beta1.OpenStackControlPlaneIronicReadyMessage) @@ -241,8 +247,10 @@ func IronicImageMatch(ctx context.Context, controlPlane *corev1beta1.OpenStackCo if controlPlane.Spec.Ironic.Enabled { if !stringPointersEqual(controlPlane.Status.ContainerImages.IronicAPIImage, version.Status.ContainerImages.IronicAPIImage) || !stringPointersEqual(controlPlane.Status.ContainerImages.IronicConductorImage, version.Status.ContainerImages.IronicConductorImage) || + !stringPointersEqual(controlPlane.Status.ContainerImages.IronicGraphicalConsoleImage, version.Status.ContainerImages.IronicGraphicalConsoleImage) || !stringPointersEqual(controlPlane.Status.ContainerImages.IronicInspectorImage, version.Status.ContainerImages.IronicInspectorImage) || !stringPointersEqual(controlPlane.Status.ContainerImages.IronicNeutronAgentImage, version.Status.ContainerImages.IronicNeutronAgentImage) || + !stringPointersEqual(controlPlane.Status.ContainerImages.IronicNovncImage, version.Status.ContainerImages.IronicNovncImage) || !stringPointersEqual(controlPlane.Status.ContainerImages.IronicPxeImage, version.Status.ContainerImages.IronicPxeImage) || !stringPointersEqual(controlPlane.Status.ContainerImages.IronicPythonAgentImage, version.Status.ContainerImages.IronicPythonAgentImage) { Log.Info("Ironic images do not match") diff --git a/pkg/openstack/version.go b/pkg/openstack/version.go index d0a4e84eb..7d4fa363b 100644 --- a/pkg/openstack/version.go +++ b/pkg/openstack/version.go @@ -160,8 +160,10 @@ func GetContainerImages(defaults *corev1beta1.ContainerDefaults, instance corev1 InfraRedisImage: getImg(instance.Spec.CustomContainerImages.InfraRedisImage, defaults.InfraRedisImage), IronicAPIImage: getImg(instance.Spec.CustomContainerImages.IronicAPIImage, defaults.IronicAPIImage), IronicConductorImage: getImg(instance.Spec.CustomContainerImages.IronicConductorImage, defaults.IronicConductorImage), + IronicGraphicalConsoleImage: getImg(instance.Spec.CustomContainerImages.IronicGraphicalConsoleImage, defaults.IronicGraphicalConsoleImage), IronicInspectorImage: getImg(instance.Spec.CustomContainerImages.IronicInspectorImage, defaults.IronicInspectorImage), IronicNeutronAgentImage: getImg(instance.Spec.CustomContainerImages.IronicNeutronAgentImage, defaults.IronicNeutronAgentImage), + IronicNovncImage: getImg(instance.Spec.CustomContainerImages.IronicNovncImage, defaults.IronicNovncImage), IronicPxeImage: getImg(instance.Spec.CustomContainerImages.IronicPxeImage, defaults.IronicPxeImage), IronicPythonAgentImage: getImg(instance.Spec.CustomContainerImages.IronicPythonAgentImage, defaults.IronicPythonAgentImage), KeystoneAPIImage: getImg(instance.Spec.CustomContainerImages.KeystoneAPIImage, defaults.KeystoneAPIImage), diff --git a/tests/functional/ctlplane/openstackversion_controller_test.go b/tests/functional/ctlplane/openstackversion_controller_test.go index 2d647986d..1afdb7a5f 100644 --- a/tests/functional/ctlplane/openstackversion_controller_test.go +++ b/tests/functional/ctlplane/openstackversion_controller_test.go @@ -149,6 +149,9 @@ var _ = Describe("OpenStackOperator controller", func() { g.Expect(version.Status.ContainerImages.InfraRedisImage).ShouldNot(BeNil()) g.Expect(version.Status.ContainerImages.IronicAPIImage).ShouldNot(BeNil()) g.Expect(version.Status.ContainerImages.IronicConductorImage).ShouldNot(BeNil()) + //TODO(stevebaker) uncomment when these images are available + // g.Expect(version.Status.ContainerImages.IronicGraphicalConsoleImage).ShouldNot(BeNil()) + // g.Expect(version.Status.ContainerImages.IronicNovncImage).ShouldNot(BeNil()) g.Expect(version.Status.ContainerImages.IronicInspectorImage).ShouldNot(BeNil()) g.Expect(version.Status.ContainerImages.IronicNeutronAgentImage).ShouldNot(BeNil()) g.Expect(version.Status.ContainerImages.IronicPxeImage).ShouldNot(BeNil())