diff --git a/api/bases/core.openstack.org_openstackcontrolplanes.yaml b/api/bases/core.openstack.org_openstackcontrolplanes.yaml index e0db23d0f..9f704a317 100644 --- a/api/bases/core.openstack.org_openstackcontrolplanes.yaml +++ b/api/bases/core.openstack.org_openstackcontrolplanes.yaml @@ -16565,10 +16565,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/api/bases/core.openstack.org_openstackversions.yaml b/api/bases/core.openstack.org_openstackversions.yaml index ae79d6c77..0458f24df 100644 --- a/api/bases/core.openstack.org_openstackversions.yaml +++ b/api/bases/core.openstack.org_openstackversions.yaml @@ -147,10 +147,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -383,10 +387,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -583,10 +591,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -795,10 +807,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/api/core/v1beta1/openstackversion_types.go b/api/core/v1beta1/openstackversion_types.go index 1f138156d..4288686e3 100644 --- a/api/core/v1beta1/openstackversion_types.go +++ b/api/core/v1beta1/openstackversion_types.go @@ -130,8 +130,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/api/core/v1beta1/zz_generated.deepcopy.go b/api/core/v1beta1/zz_generated.deepcopy.go index 2af599dd5..8188d776d 100644 --- a/api/core/v1beta1/zz_generated.deepcopy.go +++ b/api/core/v1beta1/zz_generated.deepcopy.go @@ -512,6 +512,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) @@ -522,6 +527,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 d116406b0..6a49e08a1 100644 --- a/bindata/crds/crds.yaml +++ b/bindata/crds/crds.yaml @@ -16731,10 +16731,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -18375,10 +18379,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -18611,10 +18619,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -18811,10 +18823,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -19023,10 +19039,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 e0db23d0f..9f704a317 100644 --- a/config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml +++ b/config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml @@ -16565,10 +16565,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 ae79d6c77..0458f24df 100644 --- a/config/crd/bases/core.openstack.org_openstackversions.yaml +++ b/config/crd/bases/core.openstack.org_openstackversions.yaml @@ -147,10 +147,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -383,10 +387,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -583,10 +591,14 @@ spec: type: string ironicConductorImage: type: string + ironicGraphicalConsoleImage: + type: string ironicInspectorImage: type: string ironicNeutronAgentImage: type: string + ironicNovncImage: + type: string ironicPxeImage: type: string ironicPythonAgentImage: @@ -795,10 +807,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/internal/openstack/ironic.go b/internal/openstack/ironic.go index b42bd6551..15c833566 100644 --- a/internal/openstack/ironic.go +++ b/internal/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/internal/openstack/version.go b/internal/openstack/version.go index f15e6c191..02cfe3907 100644 --- a/internal/openstack/version.go +++ b/internal/openstack/version.go @@ -163,8 +163,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/test/functional/ctlplane/openstackversion_controller_test.go b/test/functional/ctlplane/openstackversion_controller_test.go index 5902737c3..440023d96 100644 --- a/test/functional/ctlplane/openstackversion_controller_test.go +++ b/test/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())