AIV Config#

Source of truth#

The source of truth for the AIV toolkit configuration is in the aiv-config.yaml file, which consists of a set of key-value pairs within top-level key variables.

In CI pipelines#

This file is directly imported by the gitlab CI pipelines as CI variables.

It is possible to override these variables in the Gitlab CI settings or in the pipeline configuration files (e.g. .gitlab-ci.yml), but it is recommended to keep the configuration in the aiv-config.yaml file.

In local development#

Values from aiv-config.yaml are used as defaults for dpps-aiv-toolkit/Makefile variables.

It is possible to override these variables in the project-level Makefile (which includes dpps-aiv-toolkit/Makefile), but it is recommended to keep the configuration in the aiv-config.yaml file.

Example#

Example of aiv-config.yaml#
# This is the configuration used both in CI and local Makefile

variables:
  CHART_LOCATION: charts/cert-generator-grid
  CHART_NAME: cert-generator-grid

  # used to select requirements
  DPPS_UC_GROUPS: BDMS
  DPPS_RELEASE: v0.0

  # keys off all additional dependency projects used to construct test report, coma-separated
  #EXTRA_REPORT_SONAR_PROJECT_KEYS:

  RELEASE_PLAN_FN: dpps-release-plan/release_development_document/dpps-release-plan.tex
  TRACEABILITY_CSV_FN: requirements-traceability/DPPS_Requirements_Traceability_Matrix.csv

  APPLICATION_NAME: DPPS Certificate Generator
  APPLICATION_AUTHOR: Volodymyr Savchenko
  APPLICATION_AUTHOR_ORGANIZATION: CTAO

  # Directory where project CWL workflows are placed
  CWL_DIR: ${CI_PROJECT_DIR}/workflows


  # By default, test will run all helm tests (all subchart helm tests will be part of the helm chart tests)
  # To select some tests, you can use a select following helm test convention
  DEFAULT_HELM_TEST: "*"


  ALLOW_SONAR_FAILURES: false

  # only collect tests in observability artifacts; could be useful to enable in case of very large application logs
  COLLECT_ONLY_TESTS: false

  # only stream tests in observability artifacts
  STREAM_ONLY_TESTS: true

  # allows to use local repositories list instead of host-wide.
  HELM_REPO_CONFIG: repositories.yaml

  # options for creating kind cluster
  # configures the kind cluster to use registry mirrors. The mirrors need to be started before the cluster is created and can persist across cluster restarts, this can be done with `make registry-mirror`.
  ENABLE_REGISTRY_MIRRORS: true

  # enables ingress controller in kind cluster. note that it is not possible to start several clusters with ingress controller enabled at the same time since they will conflict on the same ports. Ingress controller can be deployed in the cluster with `make ingress-controller`.
  ENABLE_INGRESS: false

  # enables the repository mount from host to the kind cluster. This is useful for local development. The workloads in the cluster will be able to mount the host repository by using the host path.
  MOUNT_REPO: true

For further details on available variables, grouped per CI job, see CI Pipelines.

Dependencies#

CTAO projects often depend on other projects and packages, some of which are managed by CTAO. The AIV toolkit can track these dependencies and include them in the AIV report.

The AIV toolkit automatically detects python and helm dependencies, specified in pyproject.toml and in Chart.yaml files.

For the dependencies managed by CTAO (we call them AIV Dependencies), AIV requires additional verification:

  • Code quality

  • Nested dependencies

AIV Dependencies are specified in aiv-config-dependencies.yml, for example:

dependencies:
- gitlab_path: cta-computing/dpps/bdms/bdms
    revision: v0.1.0-rc1

To take into account these dependencies, the aiv-config.yaml must contain the following entry:

EXTRA_CONFIG_FILES: aiv-config-dependencies.yml

Dependency versions#

If any of the dependencies have unreleased versions, they will be marked as red in the report.