deploy-templates/values.yaml (119 lines of code) (raw):
## edp-install configuration
## Ref: https://github.com/epam/edp-install
##
##
global:
# -- platform type that can be "kubernetes" or "openshift"
platform: "kubernetes"
# -- a cluster DNS wildcard name
dnsWildCard:
# Specifies the URL of the API Gateway used by widgets in the platform.
# The 'apiGatewayUrl' should be set to the external URL of the KrakenD API Gateway exposed via Ingress.
# Example: https://api.domain.example.com
# By default, this value is left empty, and widgets are disabled.
# -- API Gateway URL configuration for Widget Functionality
apiGatewayUrl: ""
# -- Define the list of available remote clusters to deploy applications. Example: "cluster1, cluster2, cluster3"
availableClusters: ""
# Specify the admin OIDC group name. If empty, default {{ .Release.Namespace }}-oidc-admins.
adminGroupName: ""
# Specify the developer OIDC group name. If empty, default {{ .Release.Namespace }}-oidc-developers.
developerGroupName: ""
# Specify the viewers OIDC group name. If empty, default {{ .Release.Namespace }}-oidc-viewers.
viewerGroupName: ""
# -- Can be gerrit, github, gitlab or bitbucket. Default: github
gitProviders:
- github
# - gitlab
# - gerrit
# - bitbucket
# Define the Image Registry that will be used in Pipelines.
# This section is optional, and users can configure the registry within the KubeRocketCI Portal user interface.
# Ref: https://docs.kuberocketci.io/docs/user-guide/manage-container-registries#add-container-registry
#
# For example to integrate platform with ecr and publish image under 'edp' prefix:
# dockerRegistry:
# type: "ecr"
# url: "<aws_account_id>.dkr.ecr.<aws_region>.amazonaws.com"
# space: "edp"
# awsRegion: "eu-central-1"
# As a result all image artifacts are published under "<aws_account_id>.dkr.ecr.<aws_region>.amazonaws.com/edp/simple-project:0.1.0-SNAPSHOT.1"
#
# For example to integrate platform with harbor and publish image under 'edp' project name:
# dockerRegistry:
# type: "harbor"
# url: "registry.example.com"
# space: "edp"
# As a result all image artifacts are published under https://registry.example.com/edp/simple-project
#
# For example to integrate platform with dockerhub and publish image under 'my_user' account:
# dockerRegistry:
# type: "dockerhub"
# url: "docker.io"
# space: "my_user"
# As a result all image artifacts are published under https://hub.docker.com/repository/docker/my_user
#
# For example to integrate platform with openshift and publish image under 'edp' project name:
# dockerRegistry:
# type: "openshift"
# url: "image-registry.openshift-image-registry.svc:5000"
# space: "edp"
# By default, Kubernetes Service Account has the ability to push images to the registry
# within the namespace where KubeRocketCI is installed.
# Ref: https://github.com/epam/edp-tekton/blob/master/charts/pipelines-library/templates/resources/rolebinding-tekton-registry-editor.yaml
#
# For example to integrate platform with nexus and publish image under 'edp' project name:
# dockerRegistry:
# type: "nexus"
# url: "nexus-container.example.com"
# space: "edp"
# As a result all image artifacts are published under https://nexus-container.example.com/edp
#
# For example to integrate platform with GitHub container registry and publish image under 'my_user' project name:
# dockerRegistry:
# type: "ghcr"
# url: "ghcr.io"
# space: "my_user"
# As a result all image artifacts are published under https://github.com/users/my_user/packages/container/package/simple-project
dockerRegistry:
# -- Defines type of registry. One of `ecr`, `harbor`, `dockerhub`, `openshift`, `nexus` or `ghcr`.
# 'openshift' registry is available only in case if platform is deployed on the OpenShift cluster and the variable global.platform is set to 'openshift'.
type: ""
# Below is an example of endpoint values for each registry type:
# type: | url
# =============================
# ecr | <aws_account_id>.dkr.ecr.<aws_region>.amazonaws.com
# harbor | <registry.example.com>
# dockerhub | 'docker.io'
# openshift | <image-registry.openshift-image-registry.svc:5000>
# nexus | <nexus-container.example.com>
# ghcr | 'ghcr.io'
# -- Defines registry endpoint URL.
url: ""
# Below is a description of space values for each registry type:
# type: | description
# =================================================
# ecr | The suffix project name in registry.
# harbor | The project name in registry.
# dockerhub | The user account id or community user account id with push permission.
# openshift | The project name in registry.
# nexus | The project name in registry.
# ghcr | The user account id or community user account id with push permission.
# -- Defines project name.
space: ""
# -- Defines the geographic area where the (AWS) Elastic Container Registry repository is hosted (optional). E.g. "eu-central-1".
# Mandatory if 'global.dockerRegistry.type=ecr' for kaniko build-task.
# Ref: https://github.com/epam/edp-tekton/blob/release/0.10/charts/pipelines-library/templates/tasks/kaniko.yaml#L73
awsRegion: ""
# Configure External Secrets Operator to provision secrets for Platform and/or KubeRocketCI. Required External Secrets Operator deployment: https://docs.kuberocketci.io/docs/operator-guide/secrets-management/install-external-secrets-operator
# https://external-secrets.io/latest/provider-aws-secrets-manager/
# Description of secrets that can be created using this approach - available in the documentation: https://docs.kuberocketci.io/docs/operator-guide/secrets-management/external-secrets-operator-integration
externalSecrets:
# -- Configure External Secrets for KubeRocketCI platform. Deploy SecretStore. Default: false
enabled: false
# -- Defines provider type. One of `aws` or `generic`.
type: "aws"
secretProvider:
aws:
# -- Use AWS as a Secret Provider. Can be ParameterStore or SecretsManager
service: ParameterStore
# -- IAM Role to be used for Accessing AWS either Parameter Store or Secret Manager. Format: arn:aws:iam::<AWS_ACCOUNT_ID>:role/<AWS_IAM_ROLE_NAME>
role:
# -- AWS Region where secrets are stored, e.g. eu-central-1
region: eu-central-1
generic:
# Defines Secret Store configuration. Used when externalSecrets.type is set to "generic".
secretStore:
# -- Defines SecretStore name.
name: "example-secret-store"
# -- Defines SecretStore provider configuration.
providerConfig: {}
# gcpsm:
# projectID: "alphabet-123"
# When installing KubeRocketCI, three secrets must be created: ci-argocd, ci-defectdojo, ci-dependency-track, kaniko-docker-config and other.
# see https://github.com/epam/edp-install/tree/master/deploy-templates/templates/external-secrets, https://docs.kuberocketci.io/docs/operator-guide/secrets-management/external-secrets-operator-integration
# manageEDPInstallSecrets creates required secrets using ExternalSecretOperator
# Ensure external secret source is configured properly
# -- Create necessary secrets for KubeRocketCI installation, using External Secret Operator
manageEDPInstallSecrets: true
# -- Value name in AWS ParameterStore or AWS SecretsManager. Used when manageEDPInstallSecrets is true
manageEDPInstallSecretsName: /edp/deploy-secrets
manageCodemieSecretsName: /edp/codemie-secrets
manageGitProviderSecretsName: /edp/git-provider-secrets
annotations: {}
codebase-operator:
enabled: true
# image:
# repository: epamedp/codebase-operator
# tag:
# envs:
# - name: RECONCILATION_PERIOD
# value: "360" # The value should be typed in minutes
# # Maximum number of parallel reconciliation codebasebranches
# - name: CODEBASE_BRANCH_MAX_CONCURRENT_RECONCILES
# value: 3
# jira:
# integration: false
# name: "jira"
# apiUrl: "https://jiraeu-api.example.com"
# rootUrl: "https://jiraeu.example.com"
# credentialName: "ci-jira"
cd-pipeline-operator:
enabled: true
# image:
# repository: epamedp/cd-pipeline-operator
# tag:
# -- Defines the type of the tenant engine that can be "none", "kiosk" or "capsule";
# for Stages with external cluster tenancyEngine will be ignored. Default: none
tenancyEngine: "none"
# -- Required tenancyEngine: capsule. Specify Capsule Tenant specification for Environments.
capsuleTenant:
# Enable Capsule Tenant creation as a part of cd-pipeline-operator deployment. Active if tenancyEngine="capsule"
create: true
spec:
# ingressOptions:
# allowWildcardHostnames: false
# allowedHostnames:
# # Enable restriction pattern for ingress hostname creation.
# allowedRegex: ^.*example.com$
# hostnameCollisionScope: Tenant
# limitRanges:
# items:
# - limits:
# # Default limits for cintainer if not specified in upstream manifest
# - default:
# cpu: 256m
# memory: 512Mi
# # Default requests for cintainer if not specified in upstream manifest
# defaultRequest:
# cpu: 128m
# memory: 128Mi
# type: Container
# # Manage PVC creation
# - limits:
# - max:
# storage: 0Gi
# min:
# storage: 0Gi
# type: PersistentVolumeClaim
# # Maximum count of namespace to be created by cd-pipeline-operator
# namespaceOptions:
# quota: 3
# networkPolicies:
# items:
# - ingress:
# - from:
# - namespaceSelector:
# matchLabels:
# # Please fill namespace for match selector
# capsule.clastix.io/tenant: <namespace>
# - podSelector: {}
# - ipBlock:
# cidr: 172.16.0.0/16
# podSelector: {}
# policyTypes:
# - Ingress
# resourceQuotas:
# items:
# - hard:
# limits.cpu: 512m
# limits.memory: 512Mi
# - hard:
# # Maximum count of pods to be deployed
# pods: '5'
# scope: Tenant
# serviceOptions:
# allowedServices:
# # Restrict 'externalName', 'LoadBalancer' and 'NodePort' service type creation
# externalName: false
# loadBalancer: false
# nodePort: false
# -- should the operator manage(create/delete) namespaces for stages
# Refer to the guide for managing namespace (https://docs.kuberocketci.io/docs/operator-guide/auth/namespace-management)
manageNamespace: true
# -- Flag indicating whether the operator should manage secrets for stages.
# This parameter controls the provisioning of the 'regcred' secret within deployed environments, facilitating access to private container registries.
# Set the parameter to "none" under the following conditions:
# - If 'global.dockerRegistry.type=ecr' and IRSA is enabled, or
# - If 'global.dockerRegistry.type=openshift'.
# For private registries, choose the most appropriate method to provide credentials to deployed environments. Refer to the guide for managing container registries (https://docs.kuberocketci.io/docs/user-guide/manage-container-registries).
# Possible values: own/eso/none.
# - own: Copies the secret once from the parent namespace, without subsequent reconciliation. If updated in the parent namespace, manual updating in all created namespaces is required.
# - eso: The secret will be managed by the External Secrets Operator (requires installation and configuration in the cluster: https://docs.kuberocketci.io/docs/operator-guide/secrets-management/install-external-secrets-operator).
# - none: Disables secrets management logic.
secretManager: own
gerrit-operator:
enabled: false
# image:
# repository: epamedp/gerrit-operator
# tag:
# gerrit:
# deploy: true
# name: "gerrit"
# image: "openfrontier/gerrit"
# version:
# imagePullSecrets:
# storage:
# size: 1Gi
# class: gp2
# gerrit:
# # Provide external endpoint access. Default Ingress/Route host pattern: gerrit-{{ .Release.Namespace }}.{{ .Values.global.dnsWildCard }}
# ingress:
# # -- Enable external endpoint access. Default Ingress/Route host pattern: gerrit-{{ .Release.Namespace }}.{{ .Values.global.dnsWildCard }}
# annotations: {}
# # -- pathType is only for k8s >= 1.1=
# pathType: Prefix
# # -- For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
# # -- See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
# # ingressClassName: nginx
# tls: []
# # - secretName: chart-example-tls
# # hosts:
# # - gerrit-edp.example.com
edp-headlamp:
enabled: true
ingress:
# -- Enable external endpoint access. Default Ingress/Route host pattern: portal-{{ .Release.Namespace }}.{{ .Values.global.dnsWildCard }}
enabled: true
# -- Annotations for Ingress resource
annotations:
{}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
# -- Hostname(s) for the Ingress resource
# -- Ingress TLS configuration
tls: []
# - secretName: chart-example-tls
# hosts:
# - portal-edp.example.com
config:
# -- base url path at which headlamp should run
baseURL: ""
# -- Ensure that the specified client is associated with cluster OIDC integration.
# -- For detailed instructions, refer to: https://docs.kuberocketci.io/docs/operator-guide/auth/configure-keycloak-oidc-eks, https://docs.kuberocketci.io/docs/operator-guide/auth/ui-portal-oidc
oidc:
# Enable OIDC integration. Default: false
enabled: false
# -- OIDC Issuer URL for authentication.
# -- This URL identifies the OpenID Connect provider endpoint. Examples:
# -- Keycloak: https://keycloak.example.com/auth/realms/<realm-name>
# -- Azure Entra: https://sts.windows.net/<tenant-id>/
issuerUrl: ""
# -- OIDC client ID
clientID: ""
# -- OIDC client secret name
clientSecretName: "keycloak-client-headlamp-secret"
# -- OIDC client secret key
clientSecretKey: "clientSecret"
# -- OIDC scopes to be used
scopes: ""
# image:
# repository: epamedp/edp-headlamp
# tag:
edp-tekton:
enabled: true
pipelines:
image:
# -- Registry for tekton pipelines images. Default: docker.io
registry: "docker.io"
# -- This section contains the list of pipelines and tasks that will be installed.
deployableResources:
# -- This flag control the installation of the tasks.
tasks: true
# -- This flag control the installation of the Deploy pipelines.
deploy: true
# -- This section control the installation of the review and build pipelines.
c:
cmake: true
make: true
cs:
dotnet3.1: false
dotnet6.0: false
docker: true
groovy: true
go:
beego: true
gin: true
operatorsdk: true
helm: true
helm-pipeline: true
infrastructure: true
java:
java8: false
java11: true
java17: true
js:
angular: true
antora: true
express: true
next: true
react: true
vue: true
opa: false
python:
ansible: true
flask: true
fastapi: true
python3.8: false
terraform: true
# -- This section allows to determine on which nodes to run tekton pipelines
podTemplate: []
# nodeSelector:
# role: tekton
# tolerations:
# - effect: NoSchedule
# key: role
# operator: Equal
# value: tekton
tekton-cache:
# Deploy tekton-cache helm-chart.
enabled: true
# Tekton cache endpoint for pipeline-library helm chart. See charts/pipelines-library/templates/resources/cm-tekton-cache.yaml
# url: http://tekton-cache:8080
dashboard:
# -- Deploy Tekton Dashboard as a part of pipeline library when true. Default: false
# -- WARNING: Default deployment of the dashboard does not involve any proxy and may be accessible to the public.
# -- To enable proxy protect use openshift_proxy or sso.enabled sections.
# -- More details:
# -- https://docs.kuberocketci.io/docs/operator-guide/auth/oauth2-proxy
enabled: false
# -- Define mode for Tekton Dashboard. Enable/disaable capability to create/modify/remove Tekton objects via Tekton Dashboard. Default: false.
readOnly: false
# -- Make it possible to use openshift as OIDC provider to hide tekton-dashboard.
# -- Only for openshift deploy scenario,
# -- For EKS scenario - uncomment dashboard.ingress.annotations block
# -- More details:
# -- https://docs.kuberocketci.io/docs/operator-guide/auth/oauth2-proxy#enable-oauth2-proxy-on-tekton-dashboard
openshift_proxy:
# -- Enable oauth-proxy to include authorization layer on tekton-dashboard. Default: flase
enabled: false
ingress:
# -- Enable external endpoint access. Default Ingress/Route host pattern: tekton-{{ .Release.Namespace }}.{{ .Values.global.dnsWildCard }}
enabled: true
# -- Annotations for Ingress resource
annotations: {}
# -- Uncomment it to enable tekton-dashboard OIDC on EKS cluster
# nginx.ingress.kubernetes.io/auth-signin: 'https://<oauth-ingress-host>/oauth2/start?rd=https://$host$request_uri'
# nginx.ingress.kubernetes.io/auth-url: 'http://oauth2-proxy.edp.svc.cluster.local:8080/oauth2/auth'
tls: []
# - secretName: chart-example-tls
# hosts:
# - tekton-edp.example.com
# -- Enable integration of tekton-pipelines metrics with Prometheus and Grafana monitoring stack
# -- More details:
# -- https://docs.kuberocketci.io/docs/operator-guide/ci/tekton-monitoring
grafana:
enabled: false
# -- Labels applied to the ServiceMonitor resource.
# -- These labels are used by Prometheus to discover and integrate the ServiceMonitor into its configuration.
# -- The labels must match the Prometheus release labels.
# serviceMonitor:
# prometheusReleaseLabels:
# release: prom
# GitServers configuration section
# GitServer creation depends on the gitProviders configuration, if gitProvider is not enabled,
# the GitServer will not be created.
gitServers: {}
# my-github:
# gitProvider: github
# host: github.com
# webhook:
# skipWebhookSSLVerification: false
# eventListener:
# # -- Enable EventListener
# enabled: true
# # -- EventListener resources
# resources:
# requests:
# memory: "64Mi"
# cpu: "50m"
# limits:
# memory: "128Mi"
# cpu: "500m"
# # -- Node labels for EventListener pod assignment
# nodeSelector: {}
# # -- Tolerations for EventListener pod assignment
# tolerations: []
# # -- Affinity for EventListener pod assignment
# affinity: {}
# ingress:
# # -- Enable ingress controller resource
# enabled: true
# # -- Ingress annotations
# annotations: {}
# # -- Ingress TLS configuration
# tls: []
# my-gitlab:
# gitProvider: gitlab
# host: gitlab.com
# webhook:
# skipWebhookSSLVerification: false
# eventListener:
# # -- Enable EventListener
# enabled: true
# # -- EventListener resources
# resources:
# requests:
# memory: "64Mi"
# cpu: "50m"
# limits:
# memory: "128Mi"
# cpu: "500m"
# # -- Node labels for EventListener pod assignment
# nodeSelector: {}
# # -- Tolerations for EventListener pod assignment
# tolerations: []
# # -- Affinity for EventListener pod assignment
# affinity: {}
# ingress:
# # -- Enable ingress controller resource
# enabled: true
# # -- Ingress annotations
# annotations: {}
# # -- Ingress TLS configuration
# tls: []
# my-gerrit:
# gitProvider: gerrit
# host: gerrit.example.com
# gitUser: ci-user
# httpsPort: 443
# nameSshKeySecret: gerrit-ciuser-sshkey
# sshPort: 30022
# webhook:
# skipWebhookSSLVerification: false
# eventListener:
# # -- Enable EventListener
# enabled: true
# # -- EventListener resources
# resources:
# requests:
# memory: "64Mi"
# cpu: "50m"
# limits:
# memory: "128Mi"
# cpu: "500m"
# # -- Node labels for EventListener pod assignment
# nodeSelector: {}
# # -- Tolerations for EventListener pod assignment
# tolerations: []
# # -- Affinity for EventListener pod assignment
# affinity: {}
# ingress:
# # -- Enable ingress controller resource
# enabled: true
# # -- Ingress annotations
# annotations: {}
# # -- Ingress TLS configuration
# tls: []
# my-bitbucket:
# gitProvider: bitbucket
# host: bitbucket.org
# webhook:
# skipWebhookSSLVerification: false
# eventListener:
# # -- Enable EventListener
# enabled: true
# # -- EventListener resources
# resources:
# requests:
# memory: "64Mi"
# cpu: "50m"
# limits:
# memory: "128Mi"
# cpu: "500m"
# # -- Node labels for EventListener pod assignment
# nodeSelector: {}
# # -- Tolerations for EventListener pod assignment
# tolerations: []
# # -- Affinity for EventListener pod assignment
# affinity: {}
# ingress:
# # -- Enable ingress controller resource
# enabled: true
# # -- Ingress annotations
# annotations: {}
# # -- Ingress TLS configuration
# tls: []
# -- Define platform Quick Links, more details: https://github.com/epam/edp-codebase-operator/
# @default -- ``
quickLinks:
# argocd: ""
# defectdojo: ""
# dependency_track: ""
# docker_registry: ""
# grafana: ""
# opensearch: ""
# nexus: ""
# sonar: ""
# codemie: ""
# -- Define extra Quick Links, more details: https://github.com/epam/edp-codebase-operator/
extraQuickLinks: {}
# - prometheus:
# url: https://ingress-prometheus.example.com
# visible: true
# icon: icon_in_base64
# - another_tool:
# url: https://ingress-anothertool.example.com
# visible: true
# icon: icon_in_base64
# -- Array of extra K8s manifests to deploy
extraObjects: []
# - apiVersion: external-secrets.io/v1beta1
# kind: ExternalSecret
# metadata:
# name: example-secret-1
# spec:
# data:
# - remoteRef:
# key: /edp/deploy-secrets
# property: example-secret-1.username
# secretKey: username
# - remoteRef:
# key: /edp/deploy-secrets
# property: example-secret-1.password
# secretKey: password
# secretStoreRef:
# kind: SecretStore
# name: example-parameterstore
# - |
# apiVersion: external-secrets.io/v1beta1
# kind: ExternalSecret
# metadata:
# name: example-secret-2
# spec:
# data:
# - remoteRef:
# key: /edp/deploy-secrets
# property: example-secret-2.username
# secretKey: username
# - remoteRef:
# key: /edp/deploy-secrets
# property: example-secret-2.password
# secretKey: password
# secretStoreRef:
# kind: SecretStore
# name: example-parameterstore