@@ -23,11 +23,20 @@ import (
2323)
2424
2525const (
26- // Container image fall-back defaults
27-
2826 // OpenStackLightspeedContainerImage is the fall-back container image for OpenStackLightspeed
2927 OpenStackLightspeedContainerImage = "quay.io/openstack-lightspeed/rag-content:os-docs-2025.2"
30- MaxTokensForResponseDefault = 2048
28+
29+ // LCoreContainerImage is the fall-back container image for LCore
30+ LCoreContainerImage = "quay.io/lightspeed-core/lightspeed-stack:latest"
31+
32+ // ExporterContainerImage is the fall-back container image for the Dataverse Exporter
33+ ExporterContainerImage = "quay.io/lightspeed-core/lightspeed-to-dataverse-exporter:latest"
34+
35+ // PostgresContainerImage is the fall-back container image for PostgreSQL
36+ PostgresContainerImage = "registry.redhat.io/rhel9/postgresql-16:latest"
37+
38+ // MaxTokensForResponseDefault is the default maximum number of tokens that should be used for response
39+ MaxTokensForResponseDefault = 2048
3140)
3241
3342// OpenStackLightspeedSpec defines the desired state of OpenStackLightspeed
@@ -82,16 +91,6 @@ type OpenStackLightspeedCore struct {
8291 // MaxTokensForResponse defines the maximum number of tokens to be used for the response generation
8392 MaxTokensForResponse int `json:"maxTokensForResponse,omitempty"`
8493
85- // +kubebuilder:validation:Optional
86- // +kubebuilder:default="openshift-marketplace"
87- // Namespace where the CatalogSource containing the OLS operator is located
88- CatalogSourceNamespace string `json:"catalogSourceNamespace"`
89-
90- // +kubebuilder:validation:Optional
91- // +kubebuilder:default="redhat-operators"
92- // Name of the CatalogSource that contains the OLS Operator
93- CatalogSourceName string `json:"catalogSourceName"`
94-
9594 // +kubebuilder:validation:Optional
9695 // Project ID for LLM providers that require it (e.g., WatsonX)
9796 LLMProjectID string `json:"llmProjectID,omitempty"`
@@ -131,10 +130,26 @@ type OpenStackLightspeedStatus struct {
131130// +kubebuilder:subresource:status
132131// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.conditions[0].status",description="Status"
133132// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[0].message",description="Message"
134- // +operator-sdk:csv:customresourcedefinitions:resources={{OLSConfig,v1alpha1,cluster}}
133+ // +operator-sdk:csv:customresourcedefinitions:resources={{Deployment,v1,lightspeed-stack-deployment}}
134+ // +operator-sdk:csv:customresourcedefinitions:resources={{Deployment,v1,lightspeed-postgres-server}}
135+ // +operator-sdk:csv:customresourcedefinitions:resources={{Service,v1,lightspeed-app-server}}
136+ // +operator-sdk:csv:customresourcedefinitions:resources={{Service,v1,lightspeed-postgres-server}}
137+ // +operator-sdk:csv:customresourcedefinitions:resources={{ConfigMap,v1,llama-stack-config}}
138+ // +operator-sdk:csv:customresourcedefinitions:resources={{ConfigMap,v1,lightspeed-stack-config}}
139+ // +operator-sdk:csv:customresourcedefinitions:resources={{ConfigMap,v1,lightspeed-postgres-conf}}
140+ // +operator-sdk:csv:customresourcedefinitions:resources={{Secret,v1,lightspeed-postgres-secret}}
141+ // +operator-sdk:csv:customresourcedefinitions:resources={{Secret,v1,lightspeed-postgres-bootstrap}}
142+ // +operator-sdk:csv:customresourcedefinitions:resources={{Secret,v1,metrics-reader-token}}
143+ // +operator-sdk:csv:customresourcedefinitions:resources={{Secret,v1,lightspeed-tls}}
144+ // +operator-sdk:csv:customresourcedefinitions:resources={{Secret,v1,lightspeed-postgres-certs}}
145+ // +operator-sdk:csv:customresourcedefinitions:resources={{ServiceAccount,v1,lightspeed-app-server}}
146+ // +operator-sdk:csv:customresourcedefinitions:resources={{NetworkPolicy,v1,lightspeed-app-server}}
147+ // +operator-sdk:csv:customresourcedefinitions:resources={{NetworkPolicy,v1,lightspeed-postgres-server}}
148+ // +operator-sdk:csv:customresourcedefinitions:resources={{ClusterRole,v1,lightspeed-app-server-sar-role}}
149+ // +operator-sdk:csv:customresourcedefinitions:resources={{ClusterRoleBinding,v1,lightspeed-app-server-sar-role-binding}}
135150// +operator-sdk:csv:customresourcedefinitions:resources={{Subscription,v1alpha1}}
136151// +operator-sdk:csv:customresourcedefinitions:resources={{ClusterServiceVersion,v1alpha1}}
137- // +operator-sdk:csv:customresourcedefinitions:resources={{InstallPlan,v1alpha }}
152+ // +operator-sdk:csv:customresourcedefinitions:resources={{InstallPlan,v1alpha1 }}
138153
139154// OpenStackLightspeed is the Schema for the openstacklightspeeds API
140155type OpenStackLightspeed struct {
@@ -165,6 +180,9 @@ func (instance OpenStackLightspeed) IsReady() bool {
165180
166181type OpenStackLightspeedDefaults struct {
167182 RAGImageURL string
183+ LCoreImageURL string
184+ ExporterImageURL string
185+ PostgresImageURL string
168186 MaxTokensForResponse int
169187}
170188
@@ -176,6 +194,12 @@ func SetupDefaults() {
176194 openStackLightspeedDefaults := OpenStackLightspeedDefaults {
177195 RAGImageURL : util .GetEnvVar (
178196 "RELATED_IMAGE_OPENSTACK_LIGHTSPEED_IMAGE_URL_DEFAULT" , OpenStackLightspeedContainerImage ),
197+ LCoreImageURL : util .GetEnvVar (
198+ "RELATED_IMAGE_LCORE_IMAGE_URL_DEFAULT" , LCoreContainerImage ),
199+ ExporterImageURL : util .GetEnvVar (
200+ "RELATED_IMAGE_EXPORTER_IMAGE_URL_DEFAULT" , ExporterContainerImage ),
201+ PostgresImageURL : util .GetEnvVar (
202+ "RELATED_IMAGE_POSTGRES_IMAGE_URL_DEFAULT" , PostgresContainerImage ),
179203 MaxTokensForResponse : MaxTokensForResponseDefault ,
180204 }
181205
0 commit comments