Настройка распространения меток сборки

Материал из Документация Ключ-АСТРОМ
Версия от 17:26, 3 декабря 2025; IKuznetsov (обсуждение | вклад) (Новая страница: «Распространение меток сборки позволяет передавать метаданные сборки и версии внедренн...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Распространение меток сборки позволяет передавать метаданные сборки и версии внедренному ЕдиномуАгенту для вновь развёрнутых подов. Эта информация затем отображается в разделе «Свойства и теги» на страницах объектов.

Как это работает

Вы можете ссылаться на значение поля метаданных в переменной среды.

env:

   - name: MY_POD_NAMESPACE

     valueFrom:

       fieldRef:

         fieldPath: metadata.namespace

Затем ЕдиныйАгент внедряется во вновь развернутые поды и собирает метаданные, предоставленные через переменные среды.

Включение распространения меток сборки

Чтобы включить распространение меток сборки, необходимо установить для feature.astromkey.com/label-version-detection значение true в DynaKube. Обратите внимание: поскольку для включения распространения меток сборки требуется внедрение веб-перехватчика, это работает только с развёртываниями applicationMonitoring и .cloudNativeFullStack

apiVersion: astromkey.com/v1beta5

kind: DynaKube

metadata:

  name: dynakube

  namespace: astromkey

  annotations:

    feature.astromkey.com/label-version-detection: "true"

...

spec:

  oneAgent:

    cloudNativeFullStack: {}

Действия по умолчанию

  • Переменная окружения DT_RELEASE_VERSION получает значение из metadata.labels['app.kubernetes.io/version'].
  • Переменная окружения DT_RELEASE_PRODUCT получает значение из metadata.labels['app.kubernetes.io/part-of'].

Например, если в вашем приложении есть следующий под:

apiVersion: v1

kind: Pod

metadata:

  ...

  labels:

    app.kubernetes.io/version: "1.0.0"

    app.kubernetes.io/part-of: "store"

spec:

...

значение меток добавляется к переменным окружения внедренных контейнеров:

apiVersion: v1

kind: Pod

metadata:

  ...

  labels:

    app.kubernetes.io/version: "1.0.0"

    app.kubernetes.io/part-of: "Store"

spec:

...

  containers:

  - name: app

      ...

      env:

      - name: "DT_RELEASE_VERSION"

        valueFrom:

          fieldRef:

            fieldPath: metadata.labels['app.kubernetes.io/version']

      - name: "DT_RELEASE_PRODUCT"

        valueFrom:

          fieldRef:

            fieldPath: metadata.labels['app.kubernetes.io/part-of']

Если переменные среды DT_RELEASE_VERSION или DT_RELEASE_PRODUCT уже установлены в контейнере до внедрения ЕдиногоАгента, они не будут перезаписаны.

Параметры конфигурации

Вы можете аннотировать свое пространство имен, чтобы предоставить дополнительные сопоставления или переопределить значения по умолчанию для подов в этом пространстве имен.

  • Каждый ключ аннотации сопоставляется с определенной переменной среды.
  • Каждое значение аннотации — это справочный путь в fieldPath.
  • Доступная информация для fieldPath та же самая, что и для fieldRef.

Пример перезаписи значений по умолчанию для version и product, а также включения stage и build-version:

annotations:

  mapping.release.astromkey.com/version: "metadata.annotations['my-version']"

  mapping.release.astromkey.com/product: "metadata.labels['app.kubernetes.io/name']"

  mapping.release.astromkey.com/stage: "metadata.namespace"

  mapping.release.astromkey.com/build-version: "metadata.labels['release.astromkey.com/stage']"

Каждая из этих аннотаций настраивает отдельную переменную среды:

mapping.release.astromkey.com/version Содержит fieldPath используемый для DT_RELEASE_VERSION.

Если эта аннотация отсутствует, сопоставление возвращается к действию по умолчанию .

mapping.release.astromkey.com/product Содержит fieldPath используемый для DT_RELEASE_PRODUCT.

Если эта аннотация отсутствует, сопоставление возвращается к действию по умолчанию.

mapping.release.astromkey.com/stage Содержит fieldPath используемый для DT_RELEASE_STAGE.
mapping.release.astromkey.com/build-version Содержит fieldPath используемый для DT_RELEASE_BUILD_VERSION.

Значения не проверяются Ключ-АСТРОМ Operator или веб-перехватчиком, поэтому убедитесь, что они действительны.