Как заказать создание объектов в шаблоне Openshift

Я пытаюсь создать шаблон, который позволяет продвигать приложение в нескольких средах. В настоящее время я создаю проект, а затем импортирую в него шаблон, шаблон создает все объекты, необходимые в пространстве имен по умолчанию (проект, который я создал вручную), другие проекты, которые мне нужны, и роль кластера, позволяющую мне продвигать модули через среды. Проблема в том, что я также хочу, чтобы шаблон создавал объекты в недавно созданных проектах, но это не дает сообщения об ошибке:

пространство имен предоставленного объекта не совпадает с пространством имен, отправленным по запросу

Я думаю, что это может быть проблема с Openshift, пытающимся создать объекты одновременно с проектами, и он не находит проект в то время, когда он пытается создать объекты. Чтобы исправить это, я попытался использовать аннотацию service.alpha.openshift.io/dependencies, но получил ту же ошибку

Будем очень благодарны любой помощи


person Richard Chester    schedule 03.12.2019    source источник
comment
Вы также можете использовать диаграммы helm для одновременного развертывания проектов и объектов.   -  person Nick    schedule 21.01.2020


Ответы (1)


Согласно документации:

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

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

apiVersion: template.openshift.io/v1
kind: Template
metadata:
  name: yyy
parameters:
- name: ns3
  value: test3
objects:
- apiVersion: v1
  kind: Namespace
  metadata:
    name: ${ns3}
  spec:
    finalizers:
    - kubernetes
- apiVersion: v1
  data:
    key3: value3
  kind: ConfigMap
  metadata:
    namespace: ${ns3}
    name: cm3
person Oligzeev    schedule 20.01.2020