1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-OAM-spec

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
metadata.md 13 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 07:33 76d68d8

Metadata

Этот раздел метаданных состоит из нескольких ключей верхнего уровня.

Метаданные предоставляют информацию о содержимом объекта.

Атрибут Тип Требуется Значение по умолчанию Описание
name string Y Имя схемы. name подчиняется ограничениям, перечисленным под этой таблицей.
labels map[string]string N Набор пар ключ/значение строки, используемых в качестве произвольных меток для этого компонента. См. раздел «Формат метки» сразу ниже.
annotations map[string]string N Набор пар ключ/значение строки, используемый в качестве произвольного описательного текста, связанного с этим объектом. См. раздел «Формат аннотаций» сразу ниже.

Поле name

Комбинация группы, вида и имени должна быть уникальной. Два разных вида (например, компонент и признак) могут иметь одно и то же имя и не вызывать конфликтов. Версия не является отличительным фактором.

Хорошо: Каждый вид допускает имя foo.

apiVersion: core.oam.dev/v1alpha2
kind: Component
metadata:
    name: foo
---
apiVersion: core.oam.dev/v1alpha2
kind: Trait
metadata:
    name: foo

Хорошо: Каждая группа (one.dev и other.dev) допускает вид Component с именем foo.

apiVersion: one.dev/v1alpha2
kind: Component
metadata:
    name: foo
---
apiVersion: other.dev/v1alpha2
kind: Component
metadata:
    name: foo

Нехорошо: Версия не является пространством имён.

apiVersion: core.oam.dev/v1alpha2
kind: Component
metadata:
    name: foo
---
apiVersion: core.oam.dev/v1
kind: Component
metadata:
    name: foo

Поле name должно быть отформатировано следующим образом:

Сегмент имени обязателен и должен содержать 63 символа или меньше, начинаться и заканчиваться буквенно-цифровым символом ([a-z0-9A-Z]) с дефисами (-), подчёркиваниями (_), точками (.) и буквенно-цифровые символы между ними.

Если не указано иное, имена должны быть уникальными в пределах группы/версии/вида.

Формат метки

Метки соответствуют спецификации Kubernetes для маркировки:

Допустимые ключи меток имеют два сегмента: необязательный префикс и имя, разделённые косой чертой (/). Сегмент имени является обязательным и должен содержать 63 символа или менее, начинаться и заканчиваться буквенно-цифровыми символами ([a-z0-9A-Z]), с дефисами (-), подчеркиваниями (_) и точками (.), а также буквенно-цифровыми символами между ними. Префикс является необязательным. Если он указан, префикс должен быть поддоменом DNS: серия меток DNS, разделённых точками (.), не более 253 символов в общей сложности, за которыми следует косая черта (/).

Формат аннотаций

Аннотации предоставляют механизм прикрепления произвольного текста к метаданным объекта. Объект аннотаций соответствует спецификации Kubernetes:

Аннотации представляют собой пары ключ/значение. Допустимые ключи аннотаций имеют два сегмента: необязательный префикс и имя, разделенные косой чертой (/). Сегмент имени является обязательным и должен содержать 63 символа или менее, начинаться и заканчиваться буквенно-цифровыми символами ([a-z0-9A-Z]), с дефисами (-), подчеркиваниями (_) и точками (.), а также буквенно-цифровыми символами между ними. Префикс является необязательным. Если он указан, префикс должен быть поддоменом DNS: серия меток DNS, разделённых точками (.), не более 253 символов в общей сложности, за которыми следует косая черта (/).

Следующие метки аннотаций являются предопределёнными и РЕКОМЕНДУЕМЫМИ.

Атрибут Тип Требуется Значение по умолчанию Описание
description string N Краткое описание компонента.
version string N Пользовательская строка, определяющая семантическую версию компонента, например, версия выпуска этого программного обеспечения.

Если version не указана, предполагается, что по умолчанию используется версия 0.1.0, согласно спецификации SemVer.

Пример:

metadata:
  name: alpine-task
  labels:
    app: my-app-v1  # Не нормативный пример
  annotations: **Версия: «1.0.1»**

**Описание**: Задача, поддерживаемая файловой системой Alpine Linux.

Раздел метаданных используется во всех схемах. Он также совместим с разделом метаданных Kubernetes. Обратите внимание, однако, что метаданные Kubernetes являются надмножеством метаданных OAM и содержат атрибуты, которые OAM не распознаёт.

## Группа, версия и вид

Многие API-объекты, описанные в этом документе, используют схему именования, называемую «Группа, Версия, Вид». Эта схема, популяризированная Kubernetes, обеспечивает последовательный способ пространства имён и управления версиями API-объектов и используется здесь для управления версиями объектов OAM API.

В этом разделе описывается схема.

### Группа

Группа — это пространство имён для сбора нескольких связанных видов. Группы используют соглашение об именах DNS. Примерами групп являются:

* components.oam.dev;
* functions.azure.com;
* my.dev.

Все группы в домене oam.dev считаются зарезервированными для объектов OAM. И все объекты, указанные здесь, принадлежат группам в этом домене.

Группа ДОЛЖНА быть уникальной в глобальном масштабе.

### Версия

Строка версии — это версия API. Следуя общей парадигме, API-интерфейсы версионируются только по основному номеру. Второстепенные и патч-номера опущены из версий API. Фактические второстепенные и патч-версии базовых механизмов могут повторяться, но они ДОЛЖНЫ повторять эту версию при любом критическом изменении. Другими словами, основной номер служит гарантией совместимости, и второстепенные и патч-числа не должны изменять эту гарантию. Поэтому потребители API не могут указать более тонкую детализацию, чем основная версия.

Номер версии API всегда начинается с префикса v, за которым следуют одна или несколько цифр.

Примеры:

* v1;
* v2;
* v973.

Есть два дополнительных модификатора, которые являются частью основного номера версии:

1. alphaN (где N — одна или несколько цифр) указывает, что эта функция является экспериментальной и может быть удалена, но её текущий маркер совместимости равен 1.
2. betaN (где N — одна или несколько цифр), указывает, что эта функция ещё не стабильна. N является маркером совместимости.

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

Можно применять только один из двух модификаторов одновременно:

* v1alpha1;
* v973beta231.

Совместимость устанавливается только точным соответствием. v1 не считается совместимым с v2, v1alpha1 или v1beta2.

У версий нет требования уникальности.

### Вид

Вид — это имя типа. Например, вид компонента — Component, а вид признака — Trait. Виды всегда состоят из слов, где первая буква заглавная, а первая буква каждого слова заглавная. Виды ДОЛЖНЫ использовать заглавные буквы для каждого символа аббревиатуры (например, HTTP, а не Http).

Виды ДОЛЖНЫ быть уникальными в пределах группы.

### Представления группы/версии/вида

Полное представление группы/версии/вида — GROUP/VERSION.KIND. Вот несколько примеров:

* local.dev/v7alpha2.Proxy;
* cache.example.com/v1.Redis;
* azure.com/v2.Functions.

На схемах группа и версия представлены в одном поле, а вид — в другом:

```yaml
apiVersion: local.dev/v7alpha2
kind: Proxy

В редких случаях необходимо связать группу и вид, но без указания версии. Это делается, например, при объявлении рабочей нагрузки по умолчанию. Как правило, такое поведение НЕ РЕКОМЕНДУЕТСЯ, но когда это необходимо, эта спецификация следует шаблону Kubernetes построения имени DNS из множественного имени вида и группы:

Proxies.local.dev # разрешено, но не рекомендуется

Эта форма не принимается в качестве альтернативы полностью квалифицированной версии. Она принимается только в тех случаях, когда модель явно заявляет, что такая форма принята.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-OAM-spec.git
git@api.gitlife.ru:oschina-mirror/mirrors-OAM-spec.git
oschina-mirror
mirrors-OAM-spec
mirrors-OAM-spec
master