Giter Club home page Giter Club logo

lightspeed-operator's Introduction

OpenShift Lightspeed Operator

For users who just want to run OpenShift Lightspeed, please refer to the OpenShift Lightspeed Repository. This documentation provides instructions needed for setting up and using the service.

A Kubernetes operator for managing Red Hat OpenShift Lightspeed.

Getting Started

You'll need an OpenShift 4.15+ cluster to run against.

Important

Officially, the Operator only supports OpenAI, Azure OpenAI, WatsonX, RHELAI and RHOAI as large language model (LLM) providers, but technically, if you have an OpenAI API compatible model server (Ollama, VLLM, MLX), it should work.

Running on the cluster

Note: Your controller will automatically use the current context from your kubeconfig file (i.e. whatever cluster oc cluster-info shows).

  1. Deploy the controller to the cluster:
make deploy

Alternatively, to build the Docker image and push it to a personal repository, then deploy the operator into the cluster, use the following commands:

IMG="docker.io/username/ols-operator:0.10" make docker-build docker-push
IMG="docker.io/username/ols-operator:0.10" make deploy
  1. Create a secret containing the API Key for Watsonx, OpenAI, Azure OpenAI. The key for API key is apitoken.

Tip

Watsonx example

apiVersion: v1
data:
  apitoken: <base64 encoded API Key>
kind: Secret
metadata:
  name: watsonx-api-keys
  namespace: openshift-lightspeed
type: Opaque

Tip

OpenAI example

apiVersion: v1
data:
  apitoken: <base64 encoded API Key>
kind: Secret
metadata:
  name: openai-api-keys
  namespace: openshift-lightspeed
type: Opaque

Tip

Azure OpenAI apitoken example

apiVersion: v1
data:
  apitoken: <base64 encoded API Key>
kind: Secret
metadata:
  name: azure-openai-api-keys
  namespace: openshift-lightspeed
type: Opaque

Tip

Azure OpenAI user-assigned identity

apiVersion: v1
data:
  client_id: <base64 encoded client id>
  client_secret: <base64 encoded client secret>
  tenant_id: <base64 encoded tenant id>
kind: Secret
metadata:
  name: azure-api-keys
  namespace: openshift-lightspeed
type: Opaque

These apitoken or client_secret values can be updated if the user wishes to change them later. The same applies to all the TLS and CA certs related to individual components. They get reflected automatically across the system.

  1. Create an OLSConfig custom resource
apiVersion: ols.openshift.io/v1alpha1
kind: OLSConfig
metadata:
  name: cluster
spec:
  llm:
    providers:
    - type: openai
      credentialsSecretRef:
        name: openai-api-keys
      models:
      - name: gpt-3.5-turbo
      name: openai
      url: https://api.openai.com/v1
    - type: watsonx
      credentialsSecretRef:
        name: watson-api-keys
      models:
      - name: ibm/granite-13b-chat-v2
      name: watsonx
      url: https://us-south.ml.cloud.ibm.com
    - type: azure_openai
      credentialsSecretRef:
        name: azure-openai-api-keys
      models:
      - name: gpt-3.5-turbo
      name: my_azure_openai
      url: "https://myendpoint.openai.azure.com/"
  ols:
    conversationCache:
      redis:
        maxMemory: 2000mb
        maxMemoryPolicy: allkeys-lru
      type: redis
    defaultModel: gpt-3.5-turbo
    defaultProvider: openai
    logLevel: INFO
    deployment:
      replicas: 1
  1. The Operator will reconcile the CustomResource (CR) and create all the necessary resources for launching the Red Hat OpenShift Lightspeed application server.

Uninstall CRDs

To delete the CRDs from the cluster:

make uninstall

Undeploy controller

UnDeploy the controller from the cluster:

make undeploy

Run locally (outside the cluster)

  1. Create a namespace openshift-lightspeed
oc create namespace openshift-lightspeed
  1. Install the CRDs into the cluster:
make install
  1. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):
make run
  1. Create a secret containing the API Key for BAM or OpenAI. The key for API key is apitoken.

  2. Create an OLSConfig custom resource

  3. The Operator will reconcile the CustomResource (CR) and create all the necessary resources for launching the Red Hat OpenShift Lightspeed application server.

➜ oc get configmaps -n openshift-lightspeed
NAME                       DATA   AGE
kube-root-ca.crt            1      33m
lightspeed-console-plugin   1      29m
olsconfig                   1      21m
openshift-service-ca.crt    1      33m

➜ oc get services -n openshift-lightspeed
NAME                                                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
lightspeed-app-server                                     ClusterIP   172.31.165.151   <none>        8443/TCP   22m
lightspeed-console-plugin                                 ClusterIP   172.31.158.29    <none>        9443/TCP   29m
lightspeed-operator-controller-manager-service            ClusterIP   172.31.63.140    <none>        8443/TCP   24m

➜ oc get deployments -n openshift-lightspeed
NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
lightspeed-app-server                    1/1     1            1           23m
lightspeed-console-plugin                2/2     2            2           30m
lightspeed-operator-controller-manager   1/1     1            1           25m

➜ oc get pods -n openshift-lightspeed
NAME                                                      READY   STATUS              RESTARTS      AGE
lightspeed-app-server-97c9c6d96-6tv6j                     2/2     Running                0          23m
lilightspeed-console-plugin-7f6cd7c9fd-6lp7x              1/1     Running                0          30m
lightspeed-console-plugin-7f6cd7c9fd-wctj8                1/1     Running                0          30m
lightspeed-operator-controller-manager-69585cc7fc-xltpc   1/1     Running                0          26m

➜ oc logs lightspeed-app-server-f7fd6cf6-k7s7p -n openshift-lightspeed
2024-02-02 12:00:06,982 [ols.app.main:main.py:29] INFO: Embedded Gradio UI is disabled. To enable set enable_dev_ui: true in the dev section of the configuration file
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)

Modifying the API definitions

If you have updated the API definitions, you must update the CRD manifests with the following command

make manifests

Tests

Unit Tests

To run the unit tests, we can run the following command

make test

When using Visual Studio Code, we can use the debugger settings below to execute the test in debug mode

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Integration test ",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceFolder}/internal/controller",
            "args": [
                // "--ginkgo.v", # verbose output from Ginkgo test framework
            ],
            "env": {
                "KUBEBUILDER_ASSETS": "${workspaceFolder}/bin/k8s/1.27.1-linux-amd64"
            },
        },
    ]
}

End to End tests

To run the end to end tests with a Openshift cluster, we need to have a running operator in the namespace openshift-lightspeed. Please refer to the section Running on the cluster. Then we should set 2 environment variables:

  1. $KUBECONFIG - the path to the config file of kubenetes client
  2. $LLM_TOKEN - the access token given by the LLM provider, here we use OpenAI for testing.

Then we can launch the end to end test by

make  test-e2e

When using Visual Studio Code, we can use the debugger settings below to execute the test in debug mode

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch E2E test ",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceFolder}/test/e2e",
            "args": [
                // "--ginkgo.v", # verbose output from Ginkgo test framework
            ],
            "env": {
                "KUBECONFIG": "/path/to/kubeconfig",
                "LLM_TOKEN": "sk-xxxxxxxx"
            },
        },
    ]
}

NOTE: Run make --help for more information on all potential make targets

Update Catalog From Konflux Snapshot

To update the catalog index from a Konflux snapshot, we need to connect to Konflux using oc login command:

  1. Go to the Developer Sandbox web portal https://registration-service-toolchain-host-operator.apps.stone-prd-host1.wdlc.p1.openshiftapps.com/
  2. Copy the proxy login command on the top right corner. It should look like this oc login --token=$TOKEN --server=https://api-toolchain-host-operator.apps.stone-prd-host1.wdlc.p1.openshiftapps.com
  3. Append our workspace to the server URL oc login --token=$TOKEN --server=https://api-toolchain-host-operator.apps.stone-prd-host1.wdlc.p1.openshiftapps.com/workspaces/crt-nshift-lightspeed/
  4. Login using that command

Now we can use the script hack/snapshot_to_catalog.sh to update the catalog index. It takes 3 parameters snapshot_to_catalog.sh -s <snapshot-ref> -c <catalog-file>:

  • snapshot-ref: required, the snapshot reference to use, example: ols-bnxm2
  • catalog-file: optional, the catalog index file to update, default: lightspeed-catalog-4.16/index.yaml

To generate catalog index file lightspeed-catalog-4.16/index.yaml from the snapshot ols-bnxm2

➜  lightspeed-operator ✗ ./hack/snapshot_to_catalog.sh -s ols-bnxm2 -c lightspeed-catalog-4.16/index.yaml

Update catalog lightspeed-catalog-4.16/index.yaml from snapshot ols-bnxm2
using opm from /home/hasun/GitRepo/lightspeed-operator/bin/opm
using yq from /usr/bin/yq
Catalog will use the following images:
BUNDLE_IMAGE=registry.redhat.io/openshift-lightspeed-beta/lightspeed-operator-bundle@sha256:b9387e5900e700db47d2b4d7f106b43d0958a3b0d3d4f4b68495141675b66a1c
OPERATOR_IMAGE=registry.redhat.io/openshift-lightspeed-beta/lightspeed-rhel9-operator@sha256:4bb81dfec6cce853543c7c0e7f2898ece23105fe3a5c5b17d845b1ff58fdc92a
CONSOLE_IMAGE=registry.redhat.io/openshift-lightspeed-beta/lightspeed-console-plugin-rhel9@sha256:4f45c9ba068cf92e592bb3a502764ce6bc93cd154d081fa49d05cb040885155b
SERVICE_IMAGE=registry.redhat.io/openshift-lightspeed-beta/lightspeed-service-api-rhel9@sha256:794017379e28cfbbd17c8a8343f3326f2c99b8f9da5e593fa5afd52258d0c563
BUNDLE_IMAGE_ORIGIN=quay.io/redhat-user-workloads/crt-nshift-lightspeed-tenant/ols/bundle@sha256:b9387e5900e700db47d2b4d7f106b43d0958a3b0d3d4f4b68495141675b66a1c
Bundle version is 0.1.0
Validation passed for lightspeed-catalog-4.16/index.yaml

Prerequisites

You'll need the following tools to develop the Operator:

lightspeed-operator's People

Contributors

alexonoliveirarh avatar bparees avatar ccronca avatar dependabot[bot] avatar joaofula avatar nehanth avatar onmete avatar openshift-merge-bot[bot] avatar raptorsun avatar red-hat-konflux[bot] avatar syedriko avatar thrasher-redhat avatar tisnik avatar vbelouso avatar vishnuchalla avatar xrajesh avatar zdtsw avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lightspeed-operator's Issues

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: config/**/*.yaml
Error type: Invalid regular expression (re2): config/**/*.yaml
Message: bad repetition operator: **

ServiceMonitor: Invalid Configuration

On my OpenShift 4.16 with OpenShift Lightspeed Operator 0.1.2

ServiceMonitor lightspeed-app-server-monitor was rejected due to invalid configuration: it accesses file system via bearer token file which Prometheus specification prohibits
ServiceMonitor lightspeed-operator-controller-manager-metrics-monitor was rejected due to invalid configuration: it accesses file system via tls config which Prometheus specification prohibits

$ oc get event -n openshift-lightspeed 
LAST SEEN   TYPE      REASON                 OBJECT                                                                  MESSAGE
29m         Warning   InvalidConfiguration   servicemonitor/lightspeed-app-server-monitor                            ServiceMonitor lightspeed-app-server-monitor was rejected due to invalid configuration: it accesses file system via bearer token file which Prometheus specification prohibits
29m         Warning   InvalidConfiguration   servicemonitor/lightspeed-operator-controller-manager-metrics-monitor   ServiceMonitor lightspeed-operator-controller-manager-metrics-monitor was rejected due to invalid configuration: it accesses file system via tls config which Prometheus specification prohibits

$ oc get servicemonitors.monitoring.coreos.com -n openshift-lightspeed -o yaml|oc neat
- apiVersion: monitoring.coreos.com/v1
  kind: ServiceMonitor
  metadata:
    labels:
      app.kubernetes.io/component: metrics
      app.kubernetes.io/managed-by: lightspeed-operator
      app.kubernetes.io/name: lightspeed-service-api
      app.kubernetes.io/part-of: openshift-lightspeed
      monitoring.openshift.io/collection-profile: full
    name: lightspeed-app-server-monitor
    namespace: openshift-lightspeed
  spec:
    endpoints:
    - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
      interval: 30s
      path: /metrics
      port: https
      scheme: https
      tlsConfig:
        caFile: /etc/prometheus/configmaps/serving-certs-ca-bundle/service-ca.crt
        certFile: /etc/prometheus/secrets/metrics-client-certs/tls.crt
        keyFile: /etc/prometheus/secrets/metrics-client-certs/tls.key
        serverName: lightspeed-app-server.openshift-lightspeed.svc
    jobLabel: app.kubernetes.io/name
    selector:
      matchLabels:
        app.kubernetes.io/component: application-server
        app.kubernetes.io/managed-by: lightspeed-operator
        app.kubernetes.io/name: lightspeed-service-api
        app.kubernetes.io/part-of: openshift-lightspeed
- apiVersion: monitoring.coreos.com/v1
  kind: ServiceMonitor
  metadata:
    labels:
      app.kubernetes.io/component: metrics
      app.kubernetes.io/created-by: lightspeed-operator
      app.kubernetes.io/instance: controller-manager-metrics-monitor
      app.kubernetes.io/managed-by: kustomize
      app.kubernetes.io/name: servicemonitor
      app.kubernetes.io/part-of: lightspeed-operator
      control-plane: controller-manager
      olm.managed: "true"
    name: lightspeed-operator-controller-manager-metrics-monitor
    namespace: openshift-lightspeed
  spec:
    endpoints:
    - path: /metrics
      port: metrics
      scheme: https
      tlsConfig:
        caFile: /etc/prometheus/configmaps/serving-certs-ca-bundle/service-ca.crt
        certFile: /etc/prometheus/secrets/metrics-client-certs/tls.crt
        insecureSkipVerify: false
        keyFile: /etc/prometheus/secrets/metrics-client-certs/tls.key
        serverName: lightspeed-operator-controller-manager-service.openshift-lightspeed.svc
    selector:
      matchLabels:
        control-plane: controller-manager

Lightspeed app server runs into CrashLoopBackOff state

When olsconfig instance is created lightspeed-app-server crashes every time. The logs show that it failed to establish a connection with the Redis server.

App server logs: err.log

olsconfig:

apiVersion: v1
data:
  olsconfig.yaml: |
    llm_providers:
    - credentials_path: /etc/apikeys/openai-api-keys/apitoken
      models:
      - name: gpt-3.5-turbo-1106
      name: OpenAI
    ols_config:
      conversation_cache:
        redis:
          host: lightspeed-redis-server.openshift-lightspeed.svc
          max_memory: 1024mb
          max_memory_policy: allkeys-lru
          port: 6379
        type: redis
      logging_config:
        app_log_level: INFO
        lib_log_level: INFO
kind: ConfigMap

Pods in openshift-lightspeed ns:

NAME                                                      READY   STATUS             RESTARTS        AGE
lightspeed-app-server-6c69fbb795-trdln                    0/1     CrashLoopBackOff   6 (4m17s ago)   11m
lightspeed-console-plugin-c696fc775-c6wc6                 1/1     Running            0               11m
lightspeed-console-plugin-c696fc775-pb9hn                 1/1     Running            0               11m
lightspeed-operator-controller-manager-84ffb98448-7tm9p   2/2     Running            0               20m
lightspeed-redis-server-7fd5bdff98-887mv                  1/1     Running            0               11m

redis-server logs:

1:C 19 Mar 2024 10:40:27.285 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 19 Mar 2024 10:40:27.285 * Redis version=7.2.4, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 19 Mar 2024 10:40:27.285 * Configuration loaded
1:M 19 Mar 2024 10:40:27.285 * monotonic clock: POSIX clock_gettime
1:M 19 Mar 2024 10:40:27.285 * Running mode=standalone, port=6379.
1:M 19 Mar 2024 10:40:27.285 * Server initialized
1:M 19 Mar 2024 10:40:27.285 * Ready to accept connections tcp
oc get olsconfig -o yaml
apiVersion: ols.openshift.io/v1alpha1
kind: OLSConfig
metadata:
  creationTimestamp: "2024-03-19T10:40:18Z"
  generation: 1
  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
  resourceVersion: "169445"
  uid: d1357381-480f-4eda-acd8-537a2f108505
spec:
  llm:
    providers:
    - credentialsSecretRef:
        name: openai-api-keys
      models:
      - name: gpt-3.5-turbo-1106
      name: OpenAI
  ols:
    conversationCache:
      redis:
        maxMemory: 1024mb
        maxMemoryPolicy: allkeys-lru
      type: redis
    deployment:
      replicas: 1
    enableDeveloperUI: false
    logLevel: INFO

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

Renovate tried to run on this repository, but found these problems.

  • WARN: No docker auth found - returning

Warning

Renovate failed to look up the following dependencies: Could not determine new digest for update (docker package registry.redhat.io/ubi9/go-toolset).

Files affected: Dockerfile


This repository currently has no open or pending branches.

Detected dependencies

dockerfile
Dockerfile
  • registry.redhat.io/ubi9/go-toolset sha256:f001ad1001a22fe5f6fc7d876fc172b01c1b7dcd6c498f83a07b425e24275a79
  • registry.access.redhat.com/ubi9/ubi-minimal sha256:a7d837b00520a32502ada85ae339e33510cdfdbc8d2ddf460cc838e12ec5fa5a
lightspeed-catalog.Dockerfile
tekton
.tekton/bundle-pull-request.yaml
  • quay.io/konflux-ci/tekton-catalog/task-init 0.2@sha256:83b7df553a736def52dd47bca2a3614c8fa2c88d112d691a4834289cf8c2abf5
  • quay.io/konflux-ci/tekton-catalog/task-git-clone 0.1@sha256:07b21ee2a46298d28edf561451f8550c3ae8024c546316765988d02c602827a4
  • quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies 0.1@sha256:80e4ec86cda6bbb2b4b6787ca3b306a5a80a51d8fd4a498a8464f0005151d7be
  • quay.io/konflux-ci/tekton-catalog/task-buildah 0.1@sha256:942c8b62ad30c614035fc3a6321f3389d0ee4075c2db36923e4a7412c482c8fa
  • quay.io/konflux-ci/tekton-catalog/task-source-build 0.1@sha256:bc4b2f86e4b0f01dc58ebf77f12357b1d73b78f8ddb989383e8d0cfab81b1731
  • quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check 0.4@sha256:0d61c9a7d3f7df8ae4989fa09cd387b2e88234876b2eca527a9b5b7e8ce78ad0
  • quay.io/konflux-ci/tekton-catalog/task-clair-scan 0.1@sha256:48a051b5d9cb93f722a9fa2eca0e1d28eb3a28118cfff74a6448b2ee956d95f9
  • quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks 0.1@sha256:8838d3e1628dbe61f4851b3640d2e3a9a3079d3ff3da955f4a3e4c2c95a013df
  • quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check 0.1@sha256:962fbf053705d38ed5c81ea6379eebee32b22fad4a7971183614610e33e8e0f9
  • quay.io/konflux-ci/tekton-catalog/task-clamav-scan 0.1@sha256:b7f9f87a275d47e8076ee759145865575364c2eb44a834cd111cb373a10da0c2
  • quay.io/konflux-ci/tekton-catalog/task-sbom-json-check 0.1@sha256:acc9cb8a714f33c0e48d6ca219b6bd0191f09cdd767af4ef3a35d0a5cac53b5d
  • quay.io/konflux-ci/tekton-catalog/task-apply-tags 0.1@sha256:175162b0a1c55e911d0d25ddef97e90932b5043f0b523cf83ed4824363840d74
  • quay.io/konflux-ci/tekton-catalog/task-show-sbom 0.1@sha256:bb6de6584cc47524ac69d2fb0bc310e546696b707e4052a465966e2446e33a15
  • quay.io/konflux-ci/tekton-catalog/task-summary 0.2@sha256:fc1b0a4efc83c91cd4a24020daabb874b3f33a87c34cd157cda0b7e6d4b7779a
.tekton/bundle-push.yaml
  • quay.io/konflux-ci/tekton-catalog/task-init 0.2@sha256:83b7df553a736def52dd47bca2a3614c8fa2c88d112d691a4834289cf8c2abf5
  • quay.io/konflux-ci/tekton-catalog/task-git-clone 0.1@sha256:07b21ee2a46298d28edf561451f8550c3ae8024c546316765988d02c602827a4
  • quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies 0.1@sha256:80e4ec86cda6bbb2b4b6787ca3b306a5a80a51d8fd4a498a8464f0005151d7be
  • quay.io/konflux-ci/tekton-catalog/task-buildah 0.1@sha256:942c8b62ad30c614035fc3a6321f3389d0ee4075c2db36923e4a7412c482c8fa
  • quay.io/konflux-ci/tekton-catalog/task-source-build 0.1@sha256:bc4b2f86e4b0f01dc58ebf77f12357b1d73b78f8ddb989383e8d0cfab81b1731
  • quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check 0.4@sha256:0d61c9a7d3f7df8ae4989fa09cd387b2e88234876b2eca527a9b5b7e8ce78ad0
  • quay.io/konflux-ci/tekton-catalog/task-clair-scan 0.1@sha256:48a051b5d9cb93f722a9fa2eca0e1d28eb3a28118cfff74a6448b2ee956d95f9
  • quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks 0.1@sha256:8838d3e1628dbe61f4851b3640d2e3a9a3079d3ff3da955f4a3e4c2c95a013df
  • quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check 0.1@sha256:962fbf053705d38ed5c81ea6379eebee32b22fad4a7971183614610e33e8e0f9
  • quay.io/konflux-ci/tekton-catalog/task-clamav-scan 0.1@sha256:b7f9f87a275d47e8076ee759145865575364c2eb44a834cd111cb373a10da0c2
  • quay.io/konflux-ci/tekton-catalog/task-sbom-json-check 0.1@sha256:acc9cb8a714f33c0e48d6ca219b6bd0191f09cdd767af4ef3a35d0a5cac53b5d
  • quay.io/konflux-ci/tekton-catalog/task-apply-tags 0.1@sha256:175162b0a1c55e911d0d25ddef97e90932b5043f0b523cf83ed4824363840d74
  • quay.io/konflux-ci/tekton-catalog/task-show-sbom 0.1@sha256:bb6de6584cc47524ac69d2fb0bc310e546696b707e4052a465966e2446e33a15
  • quay.io/konflux-ci/tekton-catalog/task-summary 0.2@sha256:fc1b0a4efc83c91cd4a24020daabb874b3f33a87c34cd157cda0b7e6d4b7779a
.tekton/integration-tests/pipelines/lightspeed-integration-test-pipeline.yaml
.tekton/integration-tests/tasks/ols-e2e.yaml
.tekton/integration-tests/tasks/ols-installer.yaml
.tekton/lightspeed-operator-pull-request.yaml
  • quay.io/konflux-ci/tekton-catalog/task-init 0.2@sha256:83b7df553a736def52dd47bca2a3614c8fa2c88d112d691a4834289cf8c2abf5
  • quay.io/konflux-ci/tekton-catalog/task-git-clone 0.1@sha256:07b21ee2a46298d28edf561451f8550c3ae8024c546316765988d02c602827a4
  • quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies 0.1@sha256:80e4ec86cda6bbb2b4b6787ca3b306a5a80a51d8fd4a498a8464f0005151d7be
  • quay.io/konflux-ci/tekton-catalog/task-buildah 0.1@sha256:942c8b62ad30c614035fc3a6321f3389d0ee4075c2db36923e4a7412c482c8fa
  • quay.io/konflux-ci/tekton-catalog/task-source-build 0.1@sha256:bc4b2f86e4b0f01dc58ebf77f12357b1d73b78f8ddb989383e8d0cfab81b1731
  • quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check 0.4@sha256:0d61c9a7d3f7df8ae4989fa09cd387b2e88234876b2eca527a9b5b7e8ce78ad0
  • quay.io/konflux-ci/tekton-catalog/task-clair-scan 0.1@sha256:48a051b5d9cb93f722a9fa2eca0e1d28eb3a28118cfff74a6448b2ee956d95f9
  • quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks 0.1@sha256:8838d3e1628dbe61f4851b3640d2e3a9a3079d3ff3da955f4a3e4c2c95a013df
  • quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check 0.1@sha256:962fbf053705d38ed5c81ea6379eebee32b22fad4a7971183614610e33e8e0f9
  • quay.io/konflux-ci/tekton-catalog/task-clamav-scan 0.1@sha256:b7f9f87a275d47e8076ee759145865575364c2eb44a834cd111cb373a10da0c2
  • quay.io/konflux-ci/tekton-catalog/task-sbom-json-check 0.1@sha256:acc9cb8a714f33c0e48d6ca219b6bd0191f09cdd767af4ef3a35d0a5cac53b5d
  • quay.io/konflux-ci/tekton-catalog/task-apply-tags 0.1@sha256:175162b0a1c55e911d0d25ddef97e90932b5043f0b523cf83ed4824363840d74
  • quay.io/konflux-ci/tekton-catalog/task-show-sbom 0.1@sha256:bb6de6584cc47524ac69d2fb0bc310e546696b707e4052a465966e2446e33a15
  • quay.io/konflux-ci/tekton-catalog/task-summary 0.2@sha256:fc1b0a4efc83c91cd4a24020daabb874b3f33a87c34cd157cda0b7e6d4b7779a
.tekton/lightspeed-operator-push.yaml
  • quay.io/konflux-ci/tekton-catalog/task-init 0.2@sha256:83b7df553a736def52dd47bca2a3614c8fa2c88d112d691a4834289cf8c2abf5
  • quay.io/konflux-ci/tekton-catalog/task-git-clone 0.1@sha256:07b21ee2a46298d28edf561451f8550c3ae8024c546316765988d02c602827a4
  • quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies 0.1@sha256:80e4ec86cda6bbb2b4b6787ca3b306a5a80a51d8fd4a498a8464f0005151d7be
  • quay.io/konflux-ci/tekton-catalog/task-buildah 0.1@sha256:942c8b62ad30c614035fc3a6321f3389d0ee4075c2db36923e4a7412c482c8fa
  • quay.io/konflux-ci/tekton-catalog/task-source-build 0.1@sha256:bc4b2f86e4b0f01dc58ebf77f12357b1d73b78f8ddb989383e8d0cfab81b1731
  • quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check 0.4@sha256:0d61c9a7d3f7df8ae4989fa09cd387b2e88234876b2eca527a9b5b7e8ce78ad0
  • quay.io/konflux-ci/tekton-catalog/task-clair-scan 0.1@sha256:48a051b5d9cb93f722a9fa2eca0e1d28eb3a28118cfff74a6448b2ee956d95f9
  • quay.io/konflux-ci/tekton-catalog/task-ecosystem-cert-preflight-checks 0.1@sha256:8838d3e1628dbe61f4851b3640d2e3a9a3079d3ff3da955f4a3e4c2c95a013df
  • quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check 0.1@sha256:962fbf053705d38ed5c81ea6379eebee32b22fad4a7971183614610e33e8e0f9
  • quay.io/konflux-ci/tekton-catalog/task-clamav-scan 0.1@sha256:b7f9f87a275d47e8076ee759145865575364c2eb44a834cd111cb373a10da0c2
  • quay.io/konflux-ci/tekton-catalog/task-sbom-json-check 0.1@sha256:acc9cb8a714f33c0e48d6ca219b6bd0191f09cdd767af4ef3a35d0a5cac53b5d
  • quay.io/konflux-ci/tekton-catalog/task-apply-tags 0.1@sha256:175162b0a1c55e911d0d25ddef97e90932b5043f0b523cf83ed4824363840d74
  • quay.io/konflux-ci/tekton-catalog/task-show-sbom 0.1@sha256:bb6de6584cc47524ac69d2fb0bc310e546696b707e4052a465966e2446e33a15
  • quay.io/konflux-ci/tekton-catalog/task-summary 0.2@sha256:fc1b0a4efc83c91cd4a24020daabb874b3f33a87c34cd157cda0b7e6d4b7779a

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.