github.com/freiheit-com/kuberpult@v1.24.2-0.20240328135542-315d5630abe6/charts/kuberpult/values.yaml (about)

     1  # This file is part of kuberpult.
     2  
     3  # Kuberpult is free software: you can redistribute it and/or modify
     4  # it under the terms of the Expat(MIT) License as published by
     5  # the Free Software Foundation.
     6  
     7  # Kuberpult is distributed in the hope that it will be useful,
     8  # but WITHOUT ANY WARRANTY; without even the implied warranty of
     9  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    10  # MIT License for more details.
    11  
    12  # You should have received a copy of the MIT License
    13  # along with kuberpult. If not, see <https://directory.fsf.org/wiki/License:Expat>.
    14  
    15  # Copyright 2023 freiheit.com
    16  # Default values for ..
    17  # This is a YAML-formatted file.
    18  # Declare variables to be passed into your templates.
    19  
    20  git:
    21    # The git url of the manifest repository (git protocol)
    22    url:  # git@github.com/.../...
    23    webUrl:  # only necessary for webhooks to argoCd, e.g. https://github.com/freiheit-com/kuberpult
    24  
    25    # The branch to be use in the manifest repository
    26    branch: "master"
    27  
    28    # If this is set, kuberpult will render a link to apps in the manifest repository (not the source repo).
    29    # Use `{dir}` and `{branch}` to automatically replace with proper values
    30    # Example for GitHub: https://github.com/freiheit-com/kuberpult/tree/{branch}/{dir}
    31    # Example for BitBucket: http://bitbucket.com/projects/projectName/repos/repoName/browse/{dir}/?at=refs%2Fheads%2F{branch}
    32    # Example for Azure: https://dev.azure.com/projectName/_git/repoName?path=/{dir}&version=GB{branch}&_a=contents
    33    manifestRepoUrl: ""
    34  
    35    # If this is set, kuberpult will render a link to the source code of your services (not the manifest repository).
    36    # Use `{branch}` and `{commit}` to automatically replace with proper values
    37    # Example for GitHub: https://github.com/freiheit-com/kuberpult/commit/{commit}
    38    # Example for BitBucket: https://bitbucket.com/path/to/repo/commits/{commit}
    39    # Example for Azure: https://dev.azure.com/path/to/repo/commit/{commit}?refName=refs%2Fheads%2F{branch}
    40    sourceRepoUrl: ""
    41  
    42    # The git author is what kuberpult writes to the manifest repository.
    43    # The git committer cannot be configured. It will always be "kuberpult".
    44    author:
    45      name: local.user@example.com
    46      email: defaultUser
    47  
    48    # Timeout used for network operations
    49    networkTimeout: 1m
    50  
    51    # If enabled, write data to the `/commit` directory in the manifest repo on every release.
    52    # Disabling this option does not delete the `/commit` directory.
    53    enableWritingCommitData: false
    54  
    55    # Kuberpult tries to reduce the number of pushes and can bundle concurrent commits into a single push.
    56    # This can reduce the time it takes to process requests ariving at the same time and improve throughput.
    57    # The correct number largely depends on the performance of the git host and repository size. For small to medium sized deployments the default is good.
    58    # We recommend values between 1 and 20.
    59    maximumCommitsPerPush: 5
    60  
    61  hub: europe-west3-docker.pkg.dev/fdc-public-docker-registry/kuberpult
    62  
    63  log:
    64    # Possible values are "gcp" for a gcp-optimized format and "default" for json
    65    format: ""
    66    # Other possible values are "DEBUG", "INFO", "ERROR"
    67    level: "WARN"
    68  cd:
    69    image: kuberpult-cd-service
    70    backendConfig:
    71      create: false   # Add backend config for health checks on GKE only
    72      timeoutSec: 300  # 30sec is the default on gcp loadbalancers, however kuberpult needs more with parallel requests. It is the time how long the loadbalancer waits for kuberpult to finish calls to the rest endpoint "release"
    73      queueSize: 5
    74    resources:
    75      limits:
    76        cpu: 2
    77        memory: 3Gi
    78      requests:
    79        cpu: 2
    80        memory: 3Gi
    81    enableSqlite: true
    82    probes:
    83      liveness:
    84        periodSeconds: 10
    85        successThreshold: 1
    86        timeoutSeconds: 5
    87        failureThreshold: 10
    88        initialDelaySeconds: 5
    89      readiness:
    90        periodSeconds: 10
    91        successThreshold: 1
    92        timeoutSeconds: 5
    93        failureThreshold: 10
    94        initialDelaySeconds: 5
    95  frontend:
    96    image: kuberpult-frontend-service
    97  # Annotations given here will be added to kuberpult-frontend-service annotations.
    98  # See frontend-service.yaml for automatically added annotations.
    99    service:
   100      annotations: {}
   101    resources:
   102      limits:
   103        cpu: 500m
   104        memory: 250Mi
   105      requests:
   106        cpu: 500m
   107        memory: 250Mi
   108  # Limit for the wait time for resources that support waiting on conditions ( e.g. rollout-status ).
   109  # This MUST be lower than the combined timeouts of ALL http proxies in use.
   110    maxWaitDuration: 10m
   111    batchClient:
   112      # This value needs to be higher than the network timeout for git
   113      timeout: 2m
   114  rollout:
   115    enabled: false
   116    image: kuberpult-rollout-service
   117    resources:
   118      limits:
   119        cpu: 500m
   120        memory: 250Mi
   121      requests:
   122        cpu: 500m
   123        memory: 250Mi
   124    # annotations given here will take precedence over the defaults defined in _helpers.tpl
   125    podAnnotations: {}
   126  
   127  ingress:
   128    # The simplest setup involves an ingress, to make kuberpult available outside the cluster.
   129    # set to false, if you want use your own ingress:
   130    create: true
   131    annotations:
   132      nginx.ingress.kubernetes.io/proxy-read-timeout: 300
   133    domainName: null
   134    # note that IAP is a GCP specific feature. On GCP we recommend to enable it.
   135    iap:
   136      enabled: false
   137      secretName: null
   138    tls:
   139      host: null
   140      secretName: kuberpult-tls-secret
   141  ssh:
   142    # This section is necessary to checkout the manifest repo from git. Only ssh is supported (no https).
   143    identity: |
   144      -----BEGIN OPENSSH PRIVATE KEY-----
   145      -----END OPENSSH PRIVATE KEY-----
   146    known_hosts: |
   147      github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
   148  pgp:
   149    # The pgp keyring is used as an authentication measure for kuberpult rest endpoints that are publicly available.
   150    # If you do not use IAP, it is highly recommended to enable this.
   151    keyRing: null
   152  
   153  argocd:
   154    # The base url is used to generate links to argocd in the UI. Kuberpult never uses this to talk to argocd.
   155    baseUrl: ""
   156    # The token is generated by adding a user in argocd with apiKey permssions and generating a token.
   157    # 1. Add an entry to the configmap argocd-cm data with key "accounts.kuberpult" and value "apiKey"
   158    # 2. Run `argocd account generate-token --account kuberpult` and put the result here
   159    # 3. Grant kuberpult the necessary rights by adding these lines to the argocd-rbac-cm config map:
   160    #
   161    #  policy.csv: |
   162    #    p, role:kuberpult, applications, get, */*, allow
   163    #    g, kuberpult, role:kuberpult
   164    #
   165    token: ""
   166    # The argocd server url is used by kuberpult to reach out to argocd. If argocd is running in the same cluster, use the service name of the api server.
   167    # Also must include the protocol and port e.g. http://argocd-server.argocd.svc.cluster.local:80 or https://argocd.example.com:443
   168    server: ""
   169    # Disables tls verification. This is useful when running in the same cluster as argocd and using a self-signed certificate.
   170    insecure: false
   171    # Enable sending webhooks to argocd
   172    sendWebhooks: false
   173  
   174    refresh:
   175      # Enable sending refresh requests to argocd
   176      enabled: false
   177      # Send up to that many parallel refresh requests to argocd.
   178      # The number is determined by the power of the deployed argocd.
   179      concurrency: 50
   180  
   181  datadogTracing:
   182    enabled: false
   183    debugging: false
   184    environment: "shared"
   185  
   186  datadogProfiling:
   187    # Note that the profiling environment is taken from the field `datadogTracing.environment`
   188    enabled: false
   189    # In order to use the datadog profile, you must provide a datadog api key:
   190    apiKey: ""
   191  
   192  dogstatsdMetrics:
   193    # send metrics:
   194    enabled: false
   195  
   196    # sends additional events for each deployments:
   197    # dogstatsdMetrics.enabled must be true for this to have an effect.
   198    eventsEnabled: false
   199  
   200    #  dogstatsD listens on port udp:8125 by default.
   201    #  https://docs.datadoghq.com/developers/dogstatsd/?tab=hostagent#agent
   202    #  datadog.dogstatsd.socketPath -- Path to the DogStatsD socket
   203    address: unix:///var/run/datadog/dsd.socket
   204    # datadog.dogstatsd.hostSocketPath -- Host path to the DogStatsD socket
   205    hostSocketPath: /var/run/datadog
   206  
   207  imagePullSecrets: []
   208  
   209  gke:
   210    # The backend service id and project number are used to verify IAP tokens.
   211    #
   212    # The backend service id can only be obtained _after_ everything is installed.
   213    # Use this bash script to obtain it (after login to gcloud and select the correct project):
   214    #
   215    # ```
   216    # gcloud compute backend-services describe --global $(gcloud compute backend-services list | grep "kuberpult-frontend-service-80" | cut -d" " -f1) | yq .id
   217    # ```
   218    # Alternatively, you can set the name of the backend service as regex, and kuberpult will try to get the id of the first matching backend service using google compute SDK.
   219    # Only one of backend_service_id and backend_service_name should be set. Setting both is not supported and lead to an error.
   220    backend_service_id: ""
   221    backend_service_name: ""
   222    #
   223    # Use this bash script to obtain the project number:
   224    #
   225    # ```
   226    # gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)"
   227    # ```
   228    project_number: ""
   229  
   230  environment_configs:
   231    bootstrap_mode: false
   232    # environment_configs_json: |
   233    #   {
   234    #     "production": {
   235    #       "upstream": {
   236    #           "latest": true
   237    #        },
   238    #        "argocd" :{}
   239    #     }
   240    #   }
   241    environment_configs_json: null
   242  
   243  auth:
   244    azureAuth:
   245      enabled: false
   246      cloudInstance: "https://login.microsoftonline.com/"
   247      clientId: ""
   248      tenantId: ""
   249    dexAuth:
   250      enabled: false
   251      # Indicates if dex is to be installed. If you want to use your own Dex instance do not enable this flag.
   252      installDex: false
   253      # Defines the rbac policy when using Dex.
   254      # The permissions are added using the following format (<ROLE>, <ACTION>, <ENVIRONMENT_GROUP>:<ENVIRONMENT>, <APPLICATION>, allow).
   255      #
   256      # Available actions are: CreateLock, DeleteLock, CreateRelease, DeployRelease, CreateUndeploy, DeployUndeploy, CreateEnvironment, CreateEnvironmentApplication and DeployReleaseTrain.
   257      # The actions CreateUndeploy, DeployUndeploy and CreateEnvironmentApplication are environment independent meaning that the environment specified on the permission
   258      # needs to follow the following format <ENVIRONMENT_GROUP>:*, otherwise an error will be thrown.
   259      #
   260      # Example permission: Developer, CreateLock, development:development, *, allow
   261      # If no group is configured for an environment, the environment group name is the same as the environment name, here "development".
   262      # The policy will be available on the kuberpult-rbac config map.
   263      policy_csv: ""
   264      clientId: ""
   265      clientSecret: ""
   266      baseURL: ""
   267      # List of scopes to validate the token. Please add them as comma separated values.
   268      scopes: ""
   269    api:
   270      # New api endpoints (starting with `/api/`), are by default only turned on when IAP is enabled.
   271      # As of now this applies only to the manifest endpoint `/api/application/<application>/release/<release>/manifests`.
   272      # If you do not have Googles IAP enabled, but still want to use the API, be aware that it is publicly available,
   273      # so you would need a protection outside of kuberpult (e.g. a VPN).
   274      # If `enableDespiteNoAuth=true`, then the API will respond, even if IAP is disabled in this helm chart (`ingress.iap.enabled=true`).
   275      enableDespiteNoAuth: false
   276  
   277  # The Dex configuration values. For more information please check the Dex repository https://github.com/dexidp/dex
   278  dex:
   279    # List of environment variables to be added to the dex service pod.
   280    # Example, if you want your DEX service to have access to to the OAUTH_CLIENT_ID, you can specify
   281    # it the following way:
   282    #
   283    #  - name: OAUTH_CLIENT_ID
   284    #    valueFrom:
   285    #      secretKeyRef:
   286    #      name: kuberpult-oauth-client-id
   287    #        key: kuberpult-oauth-client-id
   288    envVars: []
   289    # The configuration of the OAUTH provider.
   290    # For more information on the connectors to use see https://dexidp.io/docs/connectors/
   291    # Here is an example on how to connect with Google connector:
   292    #
   293    #     connectors:
   294    #     - type: google
   295    #     id: google
   296    #     name: Google
   297    #     config:
   298    #       clientID: $GOOGLE_CLIENT_ID
   299    #       clientSecret: $GOOGLE_CLIENT_SECRET
   300    #       redirectURI: http://127.0.0.1:5556/callback
   301    config: {}
   302  # Configuration for revolution dora metrics. If you are not using revolution you can safely ignore this.
   303  revolution:
   304    dora:
   305      enabled: false
   306      # The default url in revolution is https://revolution.dev/api/dora/kuberpult?companyID=myCompany&productID=myProductID&projectID=myProductId
   307      url: ""
   308      # The token can be obtained from revolution.
   309      token: ""
   310      # Maximum number of requests send in parallel.
   311      concurrency: 20
   312  
   313  # Whether the rollout service should self-manage applications
   314  manageArgoApplications:
   315    enabled: false
   316    # List of teams that should be self managed by the rollout service.
   317    filter: []