Skip to content

Commit 3b4e66b

Browse files
committed
CRD changes for graphical console
This change introduces the CRD changes for the feature flag and new images required for graphical consoles. This is required to add without any backing implementation so that openstack-operator can pull in the CRD changes and establish the CSV entries for overriding the images. The feature flag will remain false until RHOSO-19 and this will never work with default antelope images. Jira: OSPRH-20211
1 parent 9695d21 commit 3b4e66b

File tree

7 files changed

+104
-6
lines changed

7 files changed

+104
-6
lines changed

api/bases/ironic.openstack.org_ironicconductors.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ spec:
5555
conductorGroup:
5656
description: ConductorGroup - Ironic Conductor conductor group.
5757
type: string
58+
consoleImage:
59+
description: ConsoleImage - Ironic Graphical Console Container Image
60+
type: string
5861
containerImage:
5962
description: ContainerImage - Ironic Conductor Container Image
6063
type: string
@@ -115,6 +118,14 @@ spec:
115118
- start
116119
type: object
117120
type: array
121+
graphicalConsoles:
122+
default: Disabled
123+
description: 'Whether to enable graphical consoles. NOTE: Setting
124+
this to Enabled is not supported.'
125+
enum:
126+
- Enabled
127+
- Disabled
128+
type: string
118129
ironicPythonAgentImage:
119130
description: IronicPythonAgentImage - Image containing the ironic-python-agent
120131
kernel and ramdisk
@@ -142,6 +153,9 @@ spec:
142153
NodeSelector to target subset of worker nodes running this service. Setting here overrides
143154
any global NodeSelector settings within the Ironic CR
144155
type: object
156+
novncproxy:
157+
description: NoVNCProxy - Ironic NoVNCProxy Container Image
158+
type: string
145159
passwordSelectors:
146160
default:
147161
service: IronicPassword

api/bases/ironic.openstack.org_ironics.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,14 @@ spec:
7878
ConfigOverwrite - interface to overwrite default config files like e.g. policy.json.
7979
But can also be used to add additional files. Those get added to the service config dir in /etc/<service> .
8080
type: object
81+
graphicalConsoles:
82+
default: Disabled
83+
description: 'Whether to enable graphical consoles. NOTE: Setting
84+
this to Enabled is not supported.'
85+
enum:
86+
- Enabled
87+
- Disabled
88+
type: string
8189
images:
8290
default: {}
8391
description: Images - Container images for all ironic services
@@ -90,6 +98,10 @@ spec:
9098
description: Conductor - Ironic Conductor Container Image (will
9199
be set to environmental default if empty)
92100
type: string
101+
graphicalConsole:
102+
description: GraphicalConsole - Ironic Graphical Console Container
103+
Image (will be set to environmental default if empty)
104+
type: string
93105
inspector:
94106
description: Inspector - Ironic Inspector Container Image (will
95107
be set to environmental default if empty)
@@ -102,6 +114,10 @@ spec:
102114
description: NeutronAgent - ML2 baremtal - Ironic Neutron Agent
103115
Image (will be set to environmental default if empty)
104116
type: string
117+
novncproxy:
118+
description: NoVNCProxy - Ironic NoVNCProxy Container Image (will
119+
be set to environmental default if empty)
120+
type: string
105121
pxe:
106122
description: Pxe- Ironic DHCP/TFTP/HTTP Container Image URL (will
107123
be set to environmental default if empty)

api/v1beta1/ironic_types.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ const (
4747
IronicNeutronAgentContainerImage = "quay.io/podified-antelope-centos9/openstack-ironic-neutron-agent:current-podified"
4848
// IronicPythonAgentContainerImage is the fall-back container image for IronicPythonAgent
4949
IronicPythonAgentContainerImage = "quay.io/podified-antelope-centos9/ironic-python-agent:current-podified"
50+
// IronicNoVNCProxyContainerImage is the fall-back container image for NoVNCProxy
51+
IronicNoVNCProxyContainerImage = "quay.io/podified-antelope-centos9/ironic-novncproxy:current-podified"
52+
// IronicGraphicalConsoleContainer image is the fall-back container image for GraphicalConsole
53+
IronicGraphicalConsoleContainerImage = "quay.io/podified-antelope-centos9/ironic-graphical-console:current-podified"
5054
)
5155

5256
// IronicSpec defines the desired state of Ironic
@@ -161,6 +165,12 @@ type IronicSpecCore struct {
161165
// +kubebuilder:validation:Minimum=10
162166
// APITimeout for HAProxy, Apache
163167
APITimeout int `json:"apiTimeout"`
168+
169+
// +kubebuilder:validation:Optional
170+
// +kubebuilder:default=Disabled
171+
// +kubebuilder:validation:Enum:=Enabled;Disabled
172+
// Whether to enable graphical consoles. NOTE: Setting this to Enabled is not supported.
173+
GraphicalConsoles string `json:"graphicalConsoles"`
164174
}
165175

166176
// IronicImages to specify container images required by all ironic services
@@ -188,6 +198,14 @@ type IronicImages struct {
188198
// +kubebuilder:validation:Optional
189199
// IronicPythonAgent - Image containing the ironic-python-agent kernel and ramdisk
190200
IronicPythonAgent string `json:"ironicPythonAgent"`
201+
202+
// +kubebuilder:validation:Optional
203+
// NoVNCProxy - Ironic NoVNCProxy Container Image (will be set to environmental default if empty)
204+
NoVNCProxy string `json:"novncproxy,omitempty"`
205+
206+
// +kubebuilder:validation:Optional
207+
// GraphicalConsole - Ironic Graphical Console Container Image (will be set to environmental default if empty)
208+
GraphicalConsole string `json:"graphicalConsole,omitempty"`
191209
}
192210

193211
// DHCPRange to define address range for DHCP requests
@@ -320,6 +338,8 @@ func SetupDefaults() {
320338
Pxe: util.GetEnvVar("RELATED_IMAGE_IRONIC_PXE_IMAGE_URL_DEFAULT", IronicPXEContainerImage),
321339
NeutronAgent: util.GetEnvVar("RELATED_IMAGE_IRONIC_NEUTRON_AGENT_IMAGE_URL_DEFAULT", IronicNeutronAgentContainerImage),
322340
IronicPythonAgent: util.GetEnvVar("RELATED_IMAGE_IRONIC_PYTHON_AGENT_IMAGE_URL_DEFAULT", IronicPythonAgentContainerImage),
341+
NoVNCProxy: util.GetEnvVar("RELATED_IMAGE_IRONIC_NOVNC_PROXY_IMAGE_URL_DEFAULT", IronicPythonAgentContainerImage),
342+
GraphicalConsole: util.GetEnvVar("RELATED_IMAGE_IRONIC_GRAPHICAL_CONSOLE_IMAGE_URL_DEFAULT", IronicPythonAgentContainerImage),
323343
}
324344

325345
SetupIronicImageDefaults(imageDefaults)

api/v1beta1/ironic_webhook.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,14 @@ type netIPStartEnd struct {
5757

5858
// IronicDefaults - TODO remove when openstack-operator has moved to IronicImages
5959
type IronicDefaults struct {
60-
APIContainerImageURL string
61-
ConductorContainerImageURL string
62-
InspectorContainerImageURL string
63-
PXEContainerImageURL string
64-
INAContainerImageURL string
65-
IPAContainerImageURL string
60+
APIContainerImageURL string
61+
ConductorContainerImageURL string
62+
InspectorContainerImageURL string
63+
PXEContainerImageURL string
64+
INAContainerImageURL string
65+
IPAContainerImageURL string
66+
NoVNCProxyContainerImageURL string
67+
GraphicalConsoleContainerImageURL string
6668
}
6769

6870
// SetupIronicDefaults - TODO remove when openstack-operator has moved to SetupIronicImageDefaults
@@ -74,6 +76,8 @@ func SetupIronicDefaults(defaults IronicDefaults) {
7476
Pxe: defaults.PXEContainerImageURL,
7577
NeutronAgent: defaults.INAContainerImageURL,
7678
IronicPythonAgent: defaults.IPAContainerImageURL,
79+
NoVNCProxy: defaults.NoVNCProxyContainerImageURL,
80+
GraphicalConsole: defaults.GraphicalConsoleContainerImageURL,
7781
})
7882
}
7983

api/v1beta1/ironicconductor_types.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,20 @@ type IronicConductorSpec struct {
120120
// +operator-sdk:csv:customresourcedefinitions:type=spec
121121
// TLS - Parameters related to the TLS
122122
TLS tls.Ca `json:"tls,omitempty"`
123+
124+
// +kubebuilder:validation:Optional
125+
// +kubebuilder:default=Disabled
126+
// +kubebuilder:validation:Enum:=Enabled;Disabled
127+
// Whether to enable graphical consoles. NOTE: Setting this to Enabled is not supported.
128+
GraphicalConsoles string `json:"graphicalConsoles"`
129+
130+
// +kubebuilder:validation:Optional
131+
// NoVNCProxy - Ironic NoVNCProxy Container Image
132+
NoVNCProxy string `json:"novncproxy,omitempty"`
133+
134+
// +kubebuilder:validation:Optional
135+
// ConsoleImage - Ironic Graphical Console Container Image
136+
ConsoleImage string `json:"consoleImage"`
123137
}
124138

125139
// IronicConductorStatus defines the observed state of IronicConductor

config/crd/bases/ironic.openstack.org_ironicconductors.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ spec:
5555
conductorGroup:
5656
description: ConductorGroup - Ironic Conductor conductor group.
5757
type: string
58+
consoleImage:
59+
description: ConsoleImage - Ironic Graphical Console Container Image
60+
type: string
5861
containerImage:
5962
description: ContainerImage - Ironic Conductor Container Image
6063
type: string
@@ -115,6 +118,14 @@ spec:
115118
- start
116119
type: object
117120
type: array
121+
graphicalConsoles:
122+
default: Disabled
123+
description: 'Whether to enable graphical consoles. NOTE: Setting
124+
this to Enabled is not supported.'
125+
enum:
126+
- Enabled
127+
- Disabled
128+
type: string
118129
ironicPythonAgentImage:
119130
description: IronicPythonAgentImage - Image containing the ironic-python-agent
120131
kernel and ramdisk
@@ -142,6 +153,9 @@ spec:
142153
NodeSelector to target subset of worker nodes running this service. Setting here overrides
143154
any global NodeSelector settings within the Ironic CR
144155
type: object
156+
novncproxy:
157+
description: NoVNCProxy - Ironic NoVNCProxy Container Image
158+
type: string
145159
passwordSelectors:
146160
default:
147161
service: IronicPassword

config/crd/bases/ironic.openstack.org_ironics.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,14 @@ spec:
7878
ConfigOverwrite - interface to overwrite default config files like e.g. policy.json.
7979
But can also be used to add additional files. Those get added to the service config dir in /etc/<service> .
8080
type: object
81+
graphicalConsoles:
82+
default: Disabled
83+
description: 'Whether to enable graphical consoles. NOTE: Setting
84+
this to Enabled is not supported.'
85+
enum:
86+
- Enabled
87+
- Disabled
88+
type: string
8189
images:
8290
default: {}
8391
description: Images - Container images for all ironic services
@@ -90,6 +98,10 @@ spec:
9098
description: Conductor - Ironic Conductor Container Image (will
9199
be set to environmental default if empty)
92100
type: string
101+
graphicalConsole:
102+
description: GraphicalConsole - Ironic Graphical Console Container
103+
Image (will be set to environmental default if empty)
104+
type: string
93105
inspector:
94106
description: Inspector - Ironic Inspector Container Image (will
95107
be set to environmental default if empty)
@@ -102,6 +114,10 @@ spec:
102114
description: NeutronAgent - ML2 baremtal - Ironic Neutron Agent
103115
Image (will be set to environmental default if empty)
104116
type: string
117+
novncproxy:
118+
description: NoVNCProxy - Ironic NoVNCProxy Container Image (will
119+
be set to environmental default if empty)
120+
type: string
105121
pxe:
106122
description: Pxe- Ironic DHCP/TFTP/HTTP Container Image URL (will
107123
be set to environmental default if empty)

0 commit comments

Comments
 (0)