| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| --- |
| default_stages: [pre-commit, pre-push] |
| minimum_prek_version: '0.3.4' |
| default_language_version: |
| python: python3 |
| node: 22.19.0 |
| golang: 1.24.0 |
| repos: |
| - repo: https://github.com/Lucas-C/pre-commit-hooks |
| rev: ad1b27d73581aa16cca06fc4a0761fc563ffe8e8 # frozen: v1.5.6 |
| hooks: |
| - id: insert-license |
| name: Add license for all Helm template files |
| files: ^templates/.* |
| args: |
| - --comment-style |
| - "{{/*||*/}}" |
| - --license-filepath |
| - ../scripts/ci/license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - repo: local |
| hooks: |
| - id: update-chart-dependencies |
| name: Update chart dependencies to latest (manual) |
| entry: ../scripts/ci/prek/update_chart_dependencies.py |
| stages: ['manual'] |
| language: python |
| files: ^\.pre-commit-config\.yaml$|^../scripts/ci/prek/update_build_dependencies\.py$ |
| pass_filenames: false |
| require_serial: true |
| - id: mypy-helm-tests |
| name: Run mypy for helm-tests |
| language: python |
| entry: ../scripts/ci/prek/run_mypy_full_dist_local_venv_or_breeze_in_ci.py chart/tests |
| pass_filenames: false |
| files: ^tests/.*\.py$ |
| require_serial: true |
| - repo: https://github.com/pre-commit/pre-commit-hooks |
| rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0 |
| hooks: |
| - id: pretty-format-json |
| name: Format JSON files |
| args: |
| - --autofix |
| - --no-sort-keys |
| - --indent |
| - "4" |
| files: |
| (?x) |
| ^values\.schema\.json$| |
| ^values_schema\.schema\.json$ |
| pass_filenames: true |
| - repo: local |
| hooks: |
| - id: lint-helm-chart |
| name: Lint Helm Chart |
| entry: ../scripts/ci/prek/lint_helm.py |
| language: python |
| pass_filenames: false |
| files: ^.* |
| require_serial: true |
| - id: validate-chart-annotations |
| name: Validate chart annotations |
| entry: ../scripts/ci/prek/validate_chart_annotations.py |
| language: python |
| pass_filenames: false |
| files: ^Chart\.yaml$ |
| - id: kubeconform |
| name: Kubeconform check on our helm chart |
| entry: ../scripts/ci/prek/check_kubeconform.py |
| language: python |
| pass_filenames: false |
| files: ^.* |
| require_serial: true |
| - id: build-kustomize-overlays |
| name: Build and smoke-test Kustomize overlays |
| entry: ../scripts/ci/prek/build_kustomize_overlays.py |
| language: python |
| pass_filenames: false |
| files: ^kustomize-overlays/.*\.(yaml|yml)$|^kustomize-overlays/.*/STATUS$ |
| require_serial: true |
| - id: sort-helm-values-schema-file-type-field |
| name: Sort Helm Values Schema File (type field) |
| entry: ../scripts/ci/prek/sort_helm_values_schema_file_type_field.py |
| language: python |
| pass_filenames: false |
| files: ^values\.schema\.json$ |
| require_serial: true |
| - id: update-helm-values-schema-schema-file-type-field-match |
| name: Update Helm Values Schema Schema File (type field match) |
| entry: ../scripts/ci/prek/update_helm_schema_schema_type_fields_match.py |
| language: python |
| pass_filenames: false |
| files: ^values\.schema\.json$|^values\.schema\.schema\.json$ |
| require_serial: true |
| - id: lint-json-schema |
| name: Lint chart/values.schema.json |
| entry: ../scripts/ci/prek/lint_json_schema.py |
| args: |
| - --spec-file |
| - values_schema.schema.json |
| - values.schema.json |
| language: python |
| pass_filenames: false |
| files: ^values\.schema\.json$|^values_schema\.schema\.json$ |
| require_serial: true |
| - id: update-vendored-in-k8s-json-schema |
| name: Vendor k8s definitions into values.schema.json |
| entry: ../scripts/ci/prek/vendor_k8s_json_schema.py |
| language: python |
| files: ^values\.schema\.json$ |
| - id: lint-json-schema |
| name: Lint chart/values.yaml |
| entry: ../scripts/ci/prek/lint_json_schema.py |
| args: |
| - --enforce-defaults |
| - --spec-file |
| - values.schema.json |
| - values.yaml |
| language: python |
| pass_filenames: false |
| files: ^values\.yaml$|^values\.schema\.json$ |
| require_serial: true |
| - id: lint-chart-schema |
| name: Lint chart/values.schema.json file |
| entry: ../scripts/ci/prek/chart_schema.py |
| language: python |
| pass_filenames: false |
| files: ^values\.schema\.json$ |
| require_serial: true |