Skip to content

Latest commit

 

History

History
419 lines (413 loc) · 11 KB

registry-schema.adoc

File metadata and controls

419 lines (413 loc) · 11 KB

Registry Schemas

extraDevfileEntries.yaml

A file called extraDevfileEntries.yaml can be added under the root of the devfile registry source repository to add samples and stacks from other repositories to the registry. This file contains the location information on where the extra samples and stacks can be found.

extraDevfileEntries.yaml schema

  • samples: schema[] - The sample list

  • stacks: schema[] - The stack list Stack/Sample attributes:

  • name: string - The stack name

  • displayName: string - The display name of devfile

  • description: string - The description of devfile

  • tags: string[] - The tags associated to devfile

  • icon: string - The devfile icon

  • language: string - The project language that is used in the devfile

  • git: *git - The information of remote repositories

extraDevfileEntries.yaml sample

schemaVersion: 1.0.0
samples:
  - name: nodejs-basic
    displayName: Basic NodeJS
    description: A simple Hello World Node.js application
    icon: https://github.com/maysunfaisal/node-bulletin-board-2/blob/main/nodejs-icon.png
    tags: ["NodeJS", "Express"]
    projectType: nodejs
    language: nodejs
    git:
      remotes:
        origin: https://github.com/redhat-developer/devfile-sample.git
  - name: code-with-quarkus
    displayName: Basic Quarkus
    description: A simple Hello World Java application using Quarkus
    icon: .devfile/icon/quarkus.png
    tags: ["Java", "Quarkus"]
    projectType: quarkus
    language: java
    git:
      remotes:
        origin: https://github.com/elsony/devfile-sample-code-with-quarkus.git
  - name: java-springboot-basic
    displayName: Basic Spring Boot
    description: A simple Hello World Java Spring Boot application using Maven
    icon: .devfile/icon/spring-logo.png
    tags: ["Java", "Spring"]
    projectType: springboot
    language: java
    git:
      remotes:
        origin: https://github.com/elsony/devfile-sample-java-springboot-basic.git
  - name: python-basic
    displayName: Basic Python
    description: A simple Hello World application using Python
    icon: .devfile/icon/python.png
    tags: ["Python"]
    projectType: python
    language: python
    git:
      remotes:
        origin: https://github.com/elsony/devfile-sample-python-basic.git

index.json

A file called index.json contains the metadata of stacks and samples in the registry, it’s a list of stack and/or sample metadata (devfile index schema). User can get the stack or sample generic information such as name, language and resources.

index.json (devfile index) schema

  • name: string - The stack name

  • version: string - The stack version

  • attributes: map[string]apiext.JSON - Map of implementation-dependant free-form YAML attributes

  • displayName: string - The display name of devfile

  • description: string - The description of devfile

  • type: DevfileType - The type of the devfile, currently supports stack and sample

  • tags: string[] - The tags associated to devfile

  • icon: string - The devfile icon

  • globalMemoryLimit: string - The devfile global memory limit

  • projectType: string - The project framework that is used in the devfile

  • language: string - The project language that is used in the devfile

  • links: map[string]string - Links related to the devfile

  • resources: string[] - The file resources that compose a devfile stack.

  • starterProjects: string[] - The project templates that can be used in the devfile

  • git: *git - The information of remote repositories

index.json sample

[
  {
    "name": "java-maven",
    "version": "1.1.0",
    "displayName": "Maven Java",
    "description": "Upstream Maven and OpenJDK 11",
    "type": "stack",
    "tags": [
      "Java",
      "Maven"
    ],
    "projectType": "maven",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-maven:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "springbootproject"
    ]
  },
  {
    "name": "java-openliberty",
    "version": "0.5.0",
    "displayName": "Open Liberty",
    "description": "Java application stack using Open Liberty runtime",
    "type": "stack",
    "projectType": "docker",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-openliberty:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "user-app"
    ]
  },
  {
    "name": "java-quarkus",
    "version": "1.1.0",
    "displayName": "Quarkus Java",
    "description": "Upstream Quarkus with Java+GraalVM",
    "type": "stack",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "projectType": "quarkus",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-quarkus:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "community",
      "redhat-product"
    ]
  },
  {
    "name": "java-springboot",
    "version": "1.1.0",
    "displayName": "Spring Boot®",
    "description": "Spring Boot® using Java",
    "type": "stack",
    "tags": [
      "Java",
      "Spring"
    ],
    "icon": "https://www.eclipse.org/che/images/logo-eclipseche.svg",
    "globalMemoryLimit": "2674Mi",
    "projectType": "spring",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-springboot:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "springbootproject"
    ]
  },
  {
    "name": "java-vertx",
    "version": "1.1.0",
    "displayName": "Vert.x Java",
    "description": "Upstream Vert.x using Java",
    "type": "stack",
    "tags": [
      "Java",
      "Vert.x"
    ],
    "projectType": "vertx",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-vertx:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "vertx-http-example",
      "vertx-istio-circuit-breaker-booster",
      "vertx-istio-routing-booster",
      "vertx-secured-http-example-redhat",
      "vertx-crud-example-redhat",
      "vertx-istio-security-booster",
      "vertx-crud-example",
      "vertx-circuit-breaker-example",
      "vertx-configmap-example",
      "vertx-circuit-breaker-example-redhat",
      "vertx-cache-example-redhat",
      "vertx-cache-example",
      "vertx-secured-http-example",
      "vertx-health-checks-example-redhat",
      "vertx-http-example-redhat",
      "vertx-health-checks-example",
      "vertx-configmap-example-redhat",
      "vertx-messaging-work-queue-booster",
      "vertx-istio-distributed-tracing-booster"
    ]
  },
  {
    "name": "java-wildfly",
    "version": "1.0.2",
    "displayName": "WildFly Java",
    "description": "Upstream WildFly",
    "type": "stack",
    "tags": [
      "Java",
      "WildFly"
    ],
    "projectType": "wildfly",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-wildfly:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "microprofile-config",
      "microprofile-fault-tolerance",
      "microprofile-health",
      "microprofile-jwt",
      "microprofile-metrics",
      "microprofile-openapi",
      "microprofile-opentracing",
      "microprofile-rest-client"
    ]
  },
  {
    "name": "java-wildfly-bootable-jar",
    "version": "1.0.2",
    "displayName": "WildFly Bootable Jar",
    "description": "Java stack with WildFly in bootable Jar mode, OpenJDK 11 and Maven 3.5",
    "type": "stack",
    "tags": [
      "RHEL8",
      "Java",
      "OpenJDK",
      "Maven",
      "WildFly",
      "Microprofile",
      "WildFly Bootable"
    ],
    "projectType": "WildFly",
    "language": "java",
    "links": {
      "self": "devfile-catalog/java-wildfly-bootable-jar:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "microprofile-config",
      "microprofile-fault-tolerance",
      "microprofile-health",
      "microprofile-jwt",
      "microprofile-metrics",
      "microprofile-openapi",
      "microprofile-opentracing",
      "microprofile-rest-client"
    ]
  },
  {
    "name": "nodejs",
    "version": "1.0.0",
    "displayName": "NodeJS Runtime",
    "description": "Stack with NodeJS 12",
    "type": "stack",
    "tags": [
      "NodeJS",
      "Express",
      "ubi8"
    ],
    "projectType": "nodejs",
    "language": "nodejs",
    "links": {
      "self": "devfile-catalog/nodejs:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "nodejs-starter"
    ]
  },
  {
    "name": "python",
    "version": "1.0.0",
    "displayName": "Python",
    "description": "Python Stack with Python 3.7",
    "type": "stack",
    "tags": [
      "Python",
      "pip"
    ],
    "projectType": "python",
    "language": "python",
    "links": {
      "self": "devfile-catalog/python:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "python-example"
    ]
  },
  {
    "name": "python-django",
    "version": "1.0.0",
    "displayName": "Django",
    "description": "Python3.7 with Django",
    "type": "stack",
    "tags": [
      "Python",
      "pip",
      "Django"
    ],
    "projectType": "django",
    "language": "python",
    "links": {
      "self": "devfile-catalog/python-django:latest"
    },
    "resources": [
      "devfile.yaml"
    ],
    "starterProjects": [
      "django-example"
    ]
  },
  {
    "name": "nodejs-basic",
    "displayName": "Basic NodeJS",
    "description": "A simple Hello World Node.js application",
    "type": "sample",
    "tags": [
      "NodeJS",
      "Express"
    ],
    "icon": "https://github.com/maysunfaisal/node-bulletin-board-2/blob/main/nodejs-icon.png",
    "projectType": "nodejs",
    "language": "nodejs",
    "git": {
      "remotes": {
        "origin": "https://github.com/redhat-developer/devfile-sample.git"
      }
    }
  },
  {
    "name": "code-with-quarkus",
    "displayName": "Basic Quarkus",
    "description": "A simple Hello World Java application using Quarkus",
    "type": "sample",
    "tags": [
      "Java",
      "Quarkus"
    ],
    "icon": ".devfile/icon/quarkus.png",
    "projectType": "quarkus",
    "language": "java",
    "git": {
      "remotes": {
        "origin": "https://github.com/elsony/devfile-sample-code-with-quarkus.git"
      }
    }
  },
  {
    "name": "java-springboot-basic",
    "displayName": "Basic Spring Boot",
    "description": "A simple Hello World Java Spring Boot application using Maven",
    "type": "sample",
    "tags": [
      "Java",
      "Spring"
    ],
    "icon": ".devfile/icon/spring-logo.png",
    "projectType": "springboot",
    "language": "java",
    "git": {
      "remotes": {
        "origin": "https://github.com/elsony/devfile-sample-java-springboot-basic.git"
      }
    }
  },
  {
    "name": "python-basic",
    "displayName": "Basic Python",
    "description": "A simple Hello World application using Python",
    "type": "sample",
    "tags": [
      "Python"
    ],
    "icon": ".devfile/icon/python.png",
    "projectType": "python",
    "language": "python",
    "git": {
      "remotes": {
        "origin": "https://github.com/elsony/devfile-sample-python-basic.git"
      }
    }
  }
]