Как определить версию продукта#

Последовательность выполнения#

Последовательность выполнения сценария определяется одним из вариантов проверки. Для определения версии продукта DropApp существует несколько способов.

Определение версии DropApp через метку образа#

В дистрибутиве DropApp у каждого образа есть внутреннее свойство образа - метка (label), это пары ключ-значение.

Например:

"Labels": {
  "creation_time": "08-11-2024 16-46-20",
  "dapp_ver": "3.0.0",
  "git_branch": "release/k8sc-3.0.0",
  "git_hash": "<hash_number>",
  "io.buildah.version": "1.33.8",
  "product_version": "Platform V DropApp 3.0.0",
  "upstream_ver": "v3.17.1",
  "vendor": "SBERTECH JSC"
  }, 

Определение версии продукта#

Версию DropApp, для которой собран образ, можно определить с помощью вывода утилиты grep по поиску метки dapp_ver

podman inspect <image_catalog>/<image_name>:<tag> | grep dapp_ver

Где:

  • <tag> - тег;

  • <image_name> - имя образа;

  • <image_catalog> - путь до образа в репозитории.

Результат вывода будет примерно таким:

podman inspect <image_catalog>/<image_name>:<tag> | grep dapp_ver
                    "dapp_ver": "3.0.0",
               "dapp_ver": "3.0.0",

В данном примере выводится информации о версия DropApp 3.0.0.

Определение версии программного компонента DropApp#

Версию программного компонента DropApp, для которой собран образ, можно определить с помощью вывода утилиты grep по поиску метки git_branch

podman inspect <image_catalog>/<image_name>:<tag> | grep git_branch

Результат вывода будет примерно таким:

podman inspect <image_catalog>/<image_name>:<tag> | grep git_branch
                    "git_branch": "release/k8sc-3.0.0",
               "git_branch": "release/k8sc-3.0.0",

В данном примере выводится информации о программном компоненте K8SC версии 3.0.0.

Определение версии DropApp через версию Kubernetes#

Определить версии DropApp через версию Kubernetes можно с помощью утилиты Kubectl.

  1. Для определения версии Kubernetes введите команду:

    kubectl version
    

    В выводе команды версия указана в разделе Server Version: version.Info -> GitVersion:

    [root@cp01 username]# kubectl version
    WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
    Client Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.16", GitCommit:"af01b000f00", GitTreeState:"clean", BuildDate:"2024-10-29T00:00:00Z", GoVersion:"go1.23.2",    Compiler:"gc", Platform:"linux/amd64"}
    Kustomize Version: v5.0.1
    Server Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.16", GitCommit:"<GIT_COMMIT_HASH>", GitTreeState:"clean", BuildDate:"2024-11-08T12:24:34Z",    GoVersion:"go1.22.7", Compiler:"gc", Platform:"linux/amd64"}
    

    В данном примере версия Kubernetes v1.27.16

  2. Для определения версии DropApp воспользуйтесь таблицей сопоставления версий в разделе «Соответствие версий DropApp и Kubernetes» документа «Описание».

    Версия Kubernetes v1.27.16 соответствует версии DropApp k8sc 3.1.0.

Определение версии DropApp через UI интерфейс OKD console#

Вариант определения пользователем версии продукта DropApp через UI интерфейс OKD console представлен в разделе «Как определить версию продукта» документа «Руководство пользователя».

SWID-теги#

Начиная с версии 5.0.0, во все поставляемые образы продукта добавлены теги идентификации программного обеспечения (Software Identification Tag, SWID-теги) в поле annotations.

SWID-теги определяются стандартами ISO / IEC 19770-2:2015, ГОСТ Р ИСО/МЭК 19770-2-2014 «Информационные технологии. Менеджмент программных активов. Часть 2. Тег идентификации программного обеспечения» и представляют собой структурированные метаданные для описания программного продукта. Они идентифицируют программный продукт, характеризуют его версию, организации и отдельных лиц, принимавших участие в разработке и распространении продукта, содержат информацию об артефактах, составляющих программный продукт, связях между программными продуктами и другие описательные метаданные. SWID-теги предоставляют информацию, необходимую для:

  • автоматизации установки программного обеспечения на протяжении всего жизненного цикла его развертывания;

  • автоматизации инвентаризации программного обеспечения в рамках процесса управления программными активами (Software Asset Management, SAM);

  • оценки уязвимостей программного обеспечения;

  • обнаружения отсутствующих исправлений;

  • проверки контрольных списков конфигурации;

  • проверки целостности программного обеспечения;

  • составления белых и черных списков для установки и запуска;

  • других сценариев использования в сфере безопасности и эксплуатации.

В манифест образов контейнеров добавлено поле annotations, в которое добавляются значения из файла для SWID-тега. Заполнение поля annotations можно проверить командой docker buildx imagetools inspect --raw | jq, например:

docker buildx imagetools inspect --raw <repository>/k8sc/5.0.0/dapp-apiserver-network-proxy/proxy-agent-amd64:v0.34.0 | jq

Поле annotations имеет вид:

"annotations": {
  "org.opencontainers.image.base.digest": "",
  "org.opencontainers.image.base.name": "",
  "regid.2021-12.ru.sbertech_k8s-5.0.0.product_title": "Platform V DropApp",
  "regid.2021-12.ru.sbertech_k8s-5.0.0.product_version": "5.0.0",
  "regid.2021-12.ru.sbertech_k8s-5.0.0.software_creator.name": "Sbertech",
  "regid.2021-12.ru.sbertech_k8s-5.0.0.software_creator.regid": "regid.2021-12.ru.sbertech",
  "regid.2021-12.ru.sbertech_k8s-5.0.0.software_id.tag_creator_regid": "regid.2021-12.ru.sbertech",
  "regid.2021-12.ru.sbertech_k8s-5.0.0.software_id.unique_id": "k8s-5.0.0",
  "regid.2021-12.ru.sbertech_k8s-5.0.0.software_licensor.name": "Sbertech",
  "regid.2021-12.ru.sbertech_k8s-5.0.0.software_licensor.regid": "regid.2021-12.ru.sbertech",
  "regid.2021-12.ru.sbertech_k8s-5.0.0.tag_creator.name": "Sbertech",
  "regid.2021-12.ru.sbertech_k8s-5.0.0.tag_creator.regid": "regid.2021-12.ru.sbertech",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.component_of.tag_creator_regid": "regid.2021-12.ru.sbertech",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.component_of.unique_id": "k8s-5.0.0",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.product_title": "K8S Core",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.product_version": "5.0.0",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.software_creator.name": "Sbertech",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.software_creator.regid": "regid.2021-12.ru.sbertech",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.software_id.tag_creator_regid": "regid.2021-12.ru.sbertech",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.software_id.unique_id": "k8sc-5.0.0",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.software_licensor.name": "Sbertech",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.software_licensor.regid": "regid.2021-12.ru.sbertech",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.tag_creator.name": "Sbertech",
  "regid.2021-12.ru.sbertech_k8sc-5.0.0.tag_creator.regid": "regid.2021-12.ru.sbertech"
}