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#
# 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.