tektoncd / operator

Kubernetes operator to manage installation, updation and uninstallation of tektoncd projects (pipeline, …)
Apache License 2.0
438 stars 188 forks source link

Install tekton operator in air-gapped network #1910

Closed lmgsaenz closed 1 month ago

lmgsaenz commented 8 months ago

Feature request

Currently in tekton-operator deployment you can pass variables such as:

And this way you can install all the necessary components except the dashboard, so the ideal would be to also add the logic to be able to define the dashboard image variable.

This configuration is necessary to be able to enjoy Tekton in more restrictive environments that do not have internet access.

Use case

Although images can be defined in this way, it should be possible to create a new flow that is more intuitive, using for example tektonConfig:

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  profile: all
  targetNamespace: tekton-pipelines
  registry_url: localregistry.com/
  pipeline:
    controller_image: pipelines/controller:0.55.0
    webhook_image: pipelines/webhook:0.55.0
  dashboard:
    dashboard_image: dashboard/dashboard:0.42
jkandasa commented 7 months ago

@lmgsaenz thanks for the request. On a operator release the tekton operator holds specific version CRDs(release.yaml) for all the components (as specified in https://github.com/tektoncd/operator/blob/main/components.yaml) Passing image via TektonConfig can easily break the operand environment. hence we have not introduced that option.

However we should add a environment variable to dashboard to fix the disconnected/air gap installation. Changing the image via environment variable is almost managed by cluster admin, and he/shw definitely would do replace the images only to support disconnected/airgap environment or similar requests. Thanks!