Uploaded image for project: 'OpenShift Request For Enhancement'
  1. OpenShift Request For Enhancement
  2. RFE-6516

Support multiple project templates

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Unresolved
    • Icon: Normal Normal
    • None
    • None
    • None
    • False
    • None
    • False
    • Not Selected

      1. Proposed title of this feature request

      Support multiple project templates

      2. What is the nature and description of the request?
      To have the ability to inject multiple project templates (https://docs.redhat.com/en/documentation/openshift_container_platform/4.16/html-single/building_applications/index#modifying-template-for-new-projects_configuring-project-creation) and make them usable from YAML manifests as well as CLI. The behavior shall be similar to how storageclasses behave, i.e. you will have a default template and can select a different one if you have sufficient permissions to do so.
      Some examples are:
      ```
      oc new-project --template=platform-admin
      oc new-project --template=developer

      oc -n openshift-config get template
      NAME DESCRIPTION PARAMETERS OBJECTS
      developer (default) 5 (5 blank) 4
      platform-admin 5 (5 blank) 4

      oc -n openshift-config get template developer -oyaml
      apiVersion: template.openshift.io/v1
      kind: Template
      metadata:
      name: developer
      objects:
      <...>

      oc -n openshift-config get template platform-admin -oyaml
      apiVersion: template.openshift.io/v1
      kind: Template
      metadata:
      name: platform-admin
      objects:
      <...>
      ```

      To use it from a YAML manifest template, you shall either be able to use a label or a dedicated resource parameter in a Project
      ```
      apiVersion: project.openshift.io/v1
      kind: Project
      metadata:
      name: my-developer-project
      labels:
      projectTemplate: developer

      apiVersion: project.openshift.io/v1
      kind: Project
      metadata:
      name: my-developer-project
      projectTemplate: developer
      ```

      Similar is true for a ProjectRequest
      ```
      apiVersion: project.openshift.io/v1
      kind: ProjectRequest
      metadata:
      name: my-developer-project
      labels:
      projectTemplate: developer
      description: '${NAMESPACE_DESCRIPTION}'
      displayName: '${NAMESPACE_DISPLAY_NAME}'

      apiVersion: project.openshift.io/v1
      kind: ProjectRequest
      metadata:
      name: my-developer-project
      description: '${NAMESPACE_DESCRIPTION}'
      displayName: '${NAMESPACE_DISPLAY_NAME}'
      projectTemplate: developer
      ```
      3. Why does the customer need this? (List the business requirements here)

      Provide more flexibility when utilizing the bootstrap projects for different roles.

      4. List any affected packages or components.

      Project templates

              Unassigned Unassigned
              rh-ee-kniederw Kevin Niederwanger
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: