-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathlightspeed-operator.clusterserviceversion.yaml
More file actions
954 lines (950 loc) · 49.3 KB
/
lightspeed-operator.clusterserviceversion.yaml
File metadata and controls
954 lines (950 loc) · 49.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
annotations:
alm-examples: |-
[
{
"apiVersion": "ols.openshift.io/v1alpha1",
"kind": "OLSConfig",
"metadata": {
"labels": {
"app.kubernetes.io/created-by": "lightspeed-operator",
"app.kubernetes.io/instance": "olsconfig-sample",
"app.kubernetes.io/managed-by": "kustomize",
"app.kubernetes.io/name": "olsconfig",
"app.kubernetes.io/part-of": "lightspeed-operator"
},
"name": "cluster"
},
"spec": {
"llm": {
"providers": [
{
"credentialsSecretRef": {
"name": "credentials"
},
"models": [
{
"name": "gpt-3.5-turbo-1106"
}
],
"name": "OpenAI"
}
]
}
}
}
]
capabilities: Seamless Upgrades
console.openshift.io/operator-monitoring-default: "true"
createdAt: "2026-03-05T13:36:03Z"
features.operators.openshift.io/cnf: "false"
features.operators.openshift.io/cni: "false"
features.operators.openshift.io/csi: "false"
features.operators.openshift.io/disconnected: "true"
features.operators.openshift.io/fips-compliant: "true"
features.operators.openshift.io/proxy-aware: "false"
features.operators.openshift.io/tls-profiles: "false"
features.operators.openshift.io/token-auth-aws: "false"
features.operators.openshift.io/token-auth-azure: "false"
features.operators.openshift.io/token-auth-gcp: "false"
operatorframework.io/cluster-monitoring: "true"
operatorframework.io/suggested-namespace: openshift-lightspeed
operators.openshift.io/valid-subscription: '["OpenShift Container Platform", "OpenShift Platform Plus", "OpenShift Kubernetes Engine", "OpenShift Virtualization Engine"]'
operators.operatorframework.io/builder: operator-sdk-v1.33.0
operators.operatorframework.io/project_layout: go.kubebuilder.io/v4
repository: https://github.com/openshift/lightspeed-operator
name: lightspeed-operator.v1.0.10
namespace: openshift-lightspeed
spec:
apiservicedefinitions: {}
customresourcedefinitions:
owned:
- description: Red Hat OpenShift Lightspeed instance. OLSConfig is the Schema for the olsconfigs API
displayName: OLSConfig
kind: OLSConfig
name: olsconfigs.ols.openshift.io
specDescriptors:
- description: Provider name
displayName: Name
path: llm.providers[0].name
- description: OLS deployment settings
displayName: Deployment
path: ols.deployment
- description: Provider API URL
displayName: URL
path: llm.providers[0].url
- description: Conversation cache settings
displayName: Conversation Cache
path: ols.conversationCache
- description: The name of the secret object that stores API provider credentials
displayName: Credential Secret
path: llm.providers[0].credentialsSecretRef
- description: |-
Feature Gates holds list of features to be enabled explicitly, otherwise they are disabled by default.
possible values: MCPServer, ToolFiltering
displayName: Feature Gates
path: featureGates
- displayName: LLM Settings
path: llm
- displayName: Providers
path: llm.providers
- description: API Version for Azure OpenAI provider
displayName: Azure OpenAI API Version
path: llm.providers[0].apiVersion
- description: |-
Arbitrary configuration for the provider (Llama Stack Generic mode only)
This map is passed directly to Llama Stack provider configuration.
Credentials are automatically injected as environment variable substitutions.
Example: {"url": "https://...", "custom_field": "value"}
displayName: Llama Stack Provider Config
path: llm.providers[0].config
- description: |-
Secret key name for provider credentials (defaults to "apitoken" if not set)
Specifies which key in credentialsSecretRef contains the API token.
The operator creates an environment variable named {PROVIDER_NAME}_API_KEY.
displayName: Credential Key Name
path: llm.providers[0].credentialKey
- description: Azure OpenAI deployment name
displayName: Azure OpenAI deployment name
path: llm.providers[0].deploymentName
- description: Fake Provider MCP Tool Call
displayName: Fake Provider MCP Tool Call
path: llm.providers[0].fakeProviderMCPToolCall
- description: List of models from the provider
displayName: Models
path: llm.providers[0].models
- description: Defines the model's context window size, in tokens. The default is 128k tokens.
displayName: Context Window Size
path: llm.providers[0].models[0].contextWindowSize
- description: Model name
displayName: Name
path: llm.providers[0].models[0].name
- description: Model API parameters
displayName: Parameters
path: llm.providers[0].models[0].parameters
- description: Max tokens for response. The default is 2048 tokens.
displayName: Max Tokens For Response
path: llm.providers[0].models[0].parameters.maxTokensForResponse
- description: Model API URL
displayName: URL
path: llm.providers[0].models[0].url
- description: Watsonx Project ID
displayName: Watsonx Project ID
path: llm.providers[0].projectID
- description: |-
Llama Stack Generic provider type for provider configuration (e.g., "remote::openai", "inline::sentence-transformers")
When set, this provider uses Llama Stack Generic mode instead of legacy mode.
Must follow pattern: (inline|remote)::<provider-name>
displayName: Llama Stack Provider Type
path: llm.providers[0].providerType
- description: TLS Security Profile used by connection to provider
displayName: TLS Security Profile
path: llm.providers[0].tlsSecurityProfile
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- description: Provider type
displayName: Provider Type
path: llm.providers[0].type
- description: MCP Server settings
displayName: MCP Server Settings
path: mcpServers
- description: Headers to send to the MCP server Each header can reference a secret or use a special source (kubernetes token, client token)
displayName: Headers
path: mcpServers[0].headers
- description: Name of the header (e.g., "Authorization", "X-API-Key")
displayName: Header Name
path: mcpServers[0].headers[0].name
- description: Source of the header value
displayName: Value Source
path: mcpServers[0].headers[0].valueFrom
- description: Reference to a secret containing the header value. Required when Type is "secret". The secret must exist in the operator's namespace.
displayName: Secret Reference
path: mcpServers[0].headers[0].valueFrom.secretRef
- description: Type specifies the source type for the header value
displayName: Source Type
path: mcpServers[0].headers[0].valueFrom.type
- description: Name of the MCP server
displayName: Name
path: mcpServers[0].name
- description: Timeout for the MCP server in seconds, default is 5
displayName: Timeout (seconds)
path: mcpServers[0].timeout
- description: URL of the MCP server (HTTP/HTTPS)
displayName: URL
path: mcpServers[0].url
- displayName: OLS Settings
path: ols
- description: Additional CA certificates for TLS communication between OLS service and LLM Provider
displayName: Additional CA Configmap
path: ols.additionalCAConfigMapRef
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- description: Only use BYOK RAG sources, ignore the OpenShift documentation RAG
displayName: Only use BYOK RAG sources
path: ols.byokRAGOnly
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- displayName: PostgreSQL Settings
path: ols.conversationCache.postgres
- description: 'Postgres maxconnections. Default: "2000"'
displayName: Maximum Connections
path: ols.conversationCache.postgres.maxConnections
- description: Postgres sharedbuffers
displayName: Shared Buffer Size
path: ols.conversationCache.postgres.sharedBuffers
- description: 'Conversation cache type. Default: "postgres"'
displayName: Cache Type
path: ols.conversationCache.type
- description: Default model for usage
displayName: Default Model
path: ols.defaultModel
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: Default provider for usage
displayName: Default Provider
path: ols.defaultProvider
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: API container settings.
displayName: API Deployment
path: ols.deployment.api
- description: 'Defines the number of desired OLS pods. Default: "1" Note: Replicas can only be changed for APIContainer. For PostgreSQL and Console containers, the number of replicas will always be set to 1.'
displayName: Number of replicas
path: ols.deployment.api.replicas
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:podCount
- description: Console container settings.
displayName: Console Deployment
path: ols.deployment.console
- description: 'Defines the number of desired OLS pods. Default: "1" Note: Replicas can only be changed for APIContainer. For PostgreSQL and Console containers, the number of replicas will always be set to 1.'
displayName: Number of replicas
path: ols.deployment.console.replicas
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:podCount
- description: Data Collector container settings.
displayName: Data Collector Container
path: ols.deployment.dataCollector
- description: Database container settings.
displayName: Database Deployment
path: ols.deployment.database
- description: 'Defines the number of desired OLS pods. Default: "1" Note: Replicas can only be changed for APIContainer. For PostgreSQL and Console containers, the number of replicas will always be set to 1.'
displayName: Number of replicas
path: ols.deployment.database.replicas
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:podCount
- description: Llama Stack container settings.
displayName: Llama Stack Container
path: ols.deployment.llamaStack
- description: MCP server container settings.
displayName: MCP Server Container
path: ols.deployment.mcpServer
- description: Pull secrets for BYOK RAG images from image registries requiring authentication
displayName: Image Pull Secrets
path: ols.imagePullSecrets
- description: Enable introspection features
displayName: Introspection Enabled
path: ols.introspectionEnabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: 'Log level. Valid options are DEBUG, INFO, WARNING, ERROR and CRITICAL. Default: "INFO".'
displayName: Log level
path: ols.logLevel
- description: Proxy settings for connecting to external servers, such as LLM providers.
displayName: Proxy Settings
path: ols.proxyConfig
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- description: The configmap holding proxy CA certificate
displayName: Proxy CA Certificate
path: ols.proxyConfig.proxyCACertificate
- description: Proxy URL, e.g. https://proxy.example.com:8080 If not specified, the cluster wide proxy will be used, though env var "https_proxy".
displayName: Proxy URL
path: ols.proxyConfig.proxyURL
- description: Query filters
displayName: Query Filters
path: ols.queryFilters
- description: Filter name.
displayName: Filter Name
path: ols.queryFilters[0].name
- description: Filter pattern.
displayName: The pattern to replace
path: ols.queryFilters[0].pattern
- description: Replacement for the matched pattern.
displayName: Replace With
path: ols.queryFilters[0].replaceWith
- description: Custom system prompt for LLM queries. If not specified, uses the default OpenShift Lightspeed prompt.
displayName: Query System Prompt
path: ols.querySystemPrompt
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- description: LLM Token Quota Configuration
displayName: LLM Token Quota Configuration
path: ols.quotaHandlersConfig
- description: Enable token history
displayName: Enable Token History
path: ols.quotaHandlersConfig.enableTokenHistory
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: Token quota limiters
displayName: Token Quota Limiters
path: ols.quotaHandlersConfig.limitersConfig
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- description: Initial value of the token quota
displayName: Initial Token Quota
path: ols.quotaHandlersConfig.limitersConfig[0].initialQuota
- description: Name of the limiter
displayName: Limiter Name
path: ols.quotaHandlersConfig.limitersConfig[0].name
- description: Period of time the token quota is for
displayName: Period of Time the Token Quota Is For
path: ols.quotaHandlersConfig.limitersConfig[0].period
- description: Token quota increase step
displayName: Token Quota Increase Step
path: ols.quotaHandlersConfig.limitersConfig[0].quotaIncrease
- description: Type of the limiter
displayName: 'Limiter Type. Accepted Values: cluster_limiter, user_limiter.'
path: ols.quotaHandlersConfig.limitersConfig[0].type
- description: RAG databases
displayName: RAG Databases
path: ols.rag
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- description: The URL of the container image to use as a RAG source
displayName: Image
path: ols.rag[0].image
- description: The Index ID of the RAG database. Only needed if there are multiple indices in the database.
displayName: Index ID
path: ols.rag[0].indexID
- description: The path to the RAG database inside of the container image
displayName: Index Path in the Image
path: ols.rag[0].indexPath
- description: Persistent Storage Configuration
displayName: Persistent Storage Configuration
path: ols.storage
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- description: Storage class of the requested volume
displayName: Storage Class of the Requested Volume
path: ols.storage.class
- description: Size of the requested volume
displayName: Size of the Requested Volume
path: ols.storage.size
- description: TLS configuration of the Lightspeed backend's HTTPS endpoint
displayName: TLS Configuration
path: ols.tlsConfig
- description: "KeyCertSecretRef references a Secret containing TLS certificate and key. The Secret must contain the following keys: - tls.crt: Server certificate (PEM format) - REQUIRED - tls.key: Private key (PEM format) - REQUIRED - ca.crt: CA certificate for console proxy trust (PEM format) - OPTIONAL \n If ca.crt is not provided, the OpenShift Console proxy will use the default system trust store."
displayName: TLS Certificate Secret Reference
path: ols.tlsConfig.keyCertSecretRef
- description: TLS Security Profile used by API endpoints
displayName: TLS Security Profile
path: ols.tlsSecurityProfile
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- description: Tool filtering configuration for hybrid RAG retrieval. If not specified, all tools are used.
displayName: Tool Filtering Configuration
path: ols.toolFilteringConfig
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- description: Weight for dense vs sparse retrieval (1.0 = full dense, 0.0 = full sparse)
displayName: Alpha Weight
path: ols.toolFilteringConfig.alpha
- description: Minimum similarity threshold for filtering results
displayName: Similarity Threshold
path: ols.toolFilteringConfig.threshold
- description: Number of tools to retrieve
displayName: Top K
path: ols.toolFilteringConfig.topK
- description: 'Tool execution approval configuration. Controls whether tool calls require user approval before execution. ⚠️ WARNING: This feature is not yet fully supported in the current OLS backend version. The operator will generate the configuration, but tool approval behavior may not function as expected. Please verify backend support before enabling.'
displayName: Tools Approval Configuration
path: ols.toolsApprovalConfig
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- description: Timeout in seconds for waiting for user approval
displayName: Approval Timeout (seconds)
path: ols.toolsApprovalConfig.approvalTimeout
- description: Approval strategy for tool execution. 'never' - tools execute without approval 'always' - all tool calls require approval 'tool_annotations' - approval based on per-tool annotations
displayName: Approval Type
path: ols.toolsApprovalConfig.approvalType
- description: User data collection switches
displayName: User Data Collection
path: ols.userDataCollection
- displayName: Do Not Collect User Feedback
path: ols.userDataCollection.feedbackDisabled
- displayName: Do Not Collect Transcripts
path: ols.userDataCollection.transcriptsDisabled
- displayName: OLS Data Collector Settings
path: olsDataCollector
- description: 'Log level. Valid options are DEBUG, INFO, WARNING, ERROR and CRITICAL. Default: "INFO".'
displayName: Log level
path: olsDataCollector.logLevel
statusDescriptors:
- description: Conditions represent the state of individual components Always populated after first reconciliation
displayName: Conditions
path: conditions
- description: DiagnosticInfo provides detailed troubleshooting information when deployments fail. Each entry contains pod-level error details for a specific component. This array is automatically populated when deployments fail and cleared when they recover. Only present during deployment failures.
displayName: Diagnostic Info
path: diagnosticInfo
- description: 'OverallStatus provides a high-level summary of the entire system''s health. Aggregates all component conditions into a single status value. - Ready: All components are healthy - NotReady: At least one component is not ready (check conditions for details) Always set after first reconciliation'
displayName: Overall Status
path: overallStatus
version: v1alpha1
description: |-
OpenShift Lightspeed Operator provides generative AI-based virtual assistant which integrates into the OpenShift web console. OpenShift Lightspeed can answer natural language questions related to OpenShift Container Platform.
To configure the OpenShift Lightspeed Operator, you need a Large Language Model (LLM) . You can host the LLM using RHELAI or RHOAI or use one of the models from the following Software-as-a-Service providers:
- OpenAI
- Microsoft Azure OpenAI
- IBM WatsonX
For more information, see [About OpenShift Lightspeed](https://docs.redhat.com/en/documentation/red_hat_openshift_lightspeed/1.0tp1/html/about/ols-about-openshift-lightspeed) in the official product documentation.
Questions, comments, concerns, or just want to talk to the OpenShift Lightspeed team? [Email us](mailto:openshift-lightspeed-contact-requests@redhat.com)!
displayName: OpenShift Lightspeed Operator
icon:
- base64data: |
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
mediatype: image/png
install:
spec:
clusterPermissions:
- rules:
- nonResourceURLs:
- /ls-access
- /ols-metrics-access
verbs:
- get
- apiGroups:
- ""
resources:
- configmaps
- persistentvolumeclaims
- serviceaccounts
- services
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- secrets
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resourceNames:
- pull-secret
resources:
- secrets
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- deployments
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
- apiGroups:
- config.openshift.io
resources:
- apiservers
- clusterversions
verbs:
- get
- list
- watch
- apiGroups:
- console.openshift.io
resources:
- consoleexternalloglinks
- consolelinks
- consoleplugins
- consoleplugins/finalizers
verbs:
- create
- delete
- get
- update
- apiGroups:
- image.openshift.io
resources:
- imagestreams
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- monitoring.coreos.com
resources:
- prometheusrules
- servicemonitors
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- networking.k8s.io
resources:
- networkpolicies
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ols.openshift.io
resources:
- olsconfigs
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ols.openshift.io
resources:
- olsconfigs/finalizers
verbs:
- update
- apiGroups:
- ols.openshift.io
resources:
- olsconfigs/status
verbs:
- get
- patch
- update
- apiGroups:
- operator.openshift.io
resources:
- consoles
verbs:
- get
- list
- update
- watch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterrolebindings
- clusterroles
verbs:
- create
- get
- list
- patch
- update
- watch
- apiGroups:
- storage.k8s.io
resources:
- storageclasses
verbs:
- get
- list
- watch
serviceAccountName: lightspeed-operator-controller-manager
deployments:
- label:
app.kubernetes.io/component: manager
app.kubernetes.io/created-by: lightspeed-operator
app.kubernetes.io/instance: controller-manager
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: deployment
app.kubernetes.io/part-of: lightspeed-operator
control-plane: controller-manager
name: lightspeed-operator-controller-manager
spec:
replicas: 1
selector:
matchLabels:
control-plane: controller-manager
strategy: {}
template:
metadata:
annotations:
kubectl.kubernetes.io/default-container: manager
labels:
control-plane: controller-manager
spec:
containers:
- args:
- --leader-elect
- --health-probe-bind-address=:8081
- --metrics-bind-address=:8443
- --secure-metrics-server
- --cert-dir=/etc/tls/private
- --lcore-image=quay.io/lightspeed-core/lightspeed-stack:dev-latest
- --use-lcore=false
- --lcore-server=true
- --service-image=registry.redhat.io/openshift-lightspeed/lightspeed-service-api-rhel9@sha256:04d7a0de0b5bd03451b4a16c8d358936191054e1797b7b2174ec24b871fe8173
- --console-image=registry.redhat.io/openshift-lightspeed/lightspeed-console-plugin-rhel9@sha256:7cf1e2817edf826ef91d2e3333b3b1bbb5d764c2ddcaeef4bb6e7607d1b9f822
- --console-image-pf5=registry.redhat.io/openshift-lightspeed/lightspeed-console-plugin-pf5-rhel9@sha256:043c01a6032e73f240a97f9acf583d0edb11d8ac19d8530cddfe3a0a05a65eea
- --postgres-image=registry.redhat.io/rhel9/postgresql-16@sha256:42f385ac3c9b8913426da7c57e70bc6617cd237aaf697c667f6385a8c0b0118b
- --openshift-mcp-server-image=registry.redhat.io/openshift-lightspeed/openshift-mcp-server-rhel9@sha256:9e919d8dbe93d1234c2c1a246a3e011af3a8014f0f54429c640422ec30a32888
- --dataverse-exporter-image=registry.redhat.io/openshift-lightspeed/lightspeed-to-dataverse-exporter-rhel9@sha256:1dcc299c0cefb4ccdf3a649c2550227b4d5789576e84d29c604327dfdf9aa1da
- --ocp-rag-image=registry.redhat.io/openshift-lightspeed/lightspeed-ocp-rag-rhel9@sha256:16fe827e539bb7ccb73061cef582f95b1ec9902188bd1af61d43bb6b51b6b5ed
command:
- /manager
env:
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.annotations['olm.targetNamespaces']
image: registry.redhat.io/openshift-lightspeed/lightspeed-rhel9-operator@sha256:ab864d2f6761fbe1b4865fef50d9ea35a06012af5baf1d7bcc985a032b4bf681
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
name: manager
ports:
- containerPort: 8443
name: metrics
protocol: TCP
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
resources:
limits:
cpu: 500m
memory: 256Mi
requests:
cpu: 10m
memory: 64Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /etc/tls/private
name: controller-manager-tls
readOnly: true
securityContext:
runAsNonRoot: true
serviceAccountName: lightspeed-operator-controller-manager
terminationGracePeriodSeconds: 10
volumes:
- name: controller-manager-tls
secret:
secretName: controller-manager-tls
permissions:
- rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- rolebindings
- roles
verbs:
- '*'
serviceAccountName: lightspeed-operator-controller-manager
strategy: deployment
installModes:
- supported: true
type: OwnNamespace
- supported: false
type: SingleNamespace
- supported: false
type: MultiNamespace
- supported: false
type: AllNamespaces
keywords:
- ai
- assistant
- openshift
- llm
links:
- name: Lightspeed Operator
url: https://github.com/openshift/lightspeed-operator
maturity: alpha
minKubeVersion: 1.28.0
provider:
name: Red Hat, Inc
url: https://github.com/openshift/lightspeed-service
version: 1.0.10
relatedImages:
- name: lightspeed-service-api
image: registry.redhat.io/openshift-lightspeed/lightspeed-service-api-rhel9@sha256:04d7a0de0b5bd03451b4a16c8d358936191054e1797b7b2174ec24b871fe8173
- name: lightspeed-console-plugin
image: registry.redhat.io/openshift-lightspeed/lightspeed-console-plugin-rhel9@sha256:7cf1e2817edf826ef91d2e3333b3b1bbb5d764c2ddcaeef4bb6e7607d1b9f822
- name: lightspeed-console-plugin-pf5
image: registry.redhat.io/openshift-lightspeed/lightspeed-console-plugin-pf5-rhel9@sha256:043c01a6032e73f240a97f9acf583d0edb11d8ac19d8530cddfe3a0a05a65eea
- name: lightspeed-operator
image: registry.redhat.io/openshift-lightspeed/lightspeed-rhel9-operator@sha256:ab864d2f6761fbe1b4865fef50d9ea35a06012af5baf1d7bcc985a032b4bf681
- name: openshift-mcp-server
image: registry.redhat.io/openshift-lightspeed/openshift-mcp-server-rhel9@sha256:9e919d8dbe93d1234c2c1a246a3e011af3a8014f0f54429c640422ec30a32888
- name: lightspeed-to-dataverse-exporter
image: registry.redhat.io/openshift-lightspeed/lightspeed-to-dataverse-exporter-rhel9@sha256:1dcc299c0cefb4ccdf3a649c2550227b4d5789576e84d29c604327dfdf9aa1da
- name: lightspeed-ocp-rag
image: registry.redhat.io/openshift-lightspeed/lightspeed-ocp-rag-rhel9@sha256:16fe827e539bb7ccb73061cef582f95b1ec9902188bd1af61d43bb6b51b6b5ed
- name: lightspeed-postgresql
image: registry.redhat.io/rhel9/postgresql-16@sha256:42f385ac3c9b8913426da7c57e70bc6617cd237aaf697c667f6385a8c0b0118b
- name: lightspeed-operator-bundle
image: registry.redhat.io/openshift-lightspeed/lightspeed-operator-bundle@sha256:6ddfddfd63d7b8b1fc59c7d8062562b9c1e0dbfaa7b6126db3c6bdc19342a6d6