This repository holds meta.yaml files that refer to the samples with Devfiles.
Here is an example meta.yaml
file:
---
displayName: Python
description: Python Stack with Python 3.8
tags: ["Community", "Centos", "Python", "pip"]
icon: /images/python.svg
links:
v2: https://github.com/che-samples/python-hello-world/tree/main
Here are all the supported values:
---
# the name of the stack
displayName: Python
# the description of the stack
description: Python Stack with Python 3.8
# the list of tags that will be used to search for the devfile
tags: ["Community", "Centos", "Python", "pip"]
# the path to the icon of the stack
icon: /images/python.svg
links:
# The link to the repository of the project that contains the devfile.yaml with schemaVersion 2.x.y
v2: https://github.com/che-samples/python-hello-world/tree/main
The contents of the devfile registry are published to GitHub pages on every commit. Furthermore, every version is also published to GitHub pages at release time. As an example the 7.31.2
version of the devfile registry was published here.
All published versions of the devfile registry explicitly use plugins from the che-plugin-registry by specifying the registryUrl
field.
This repository contains a build.sh
script at its root that can be used to build the registry:
Usage: ./build.sh [OPTIONS]
Options:
--help
Print this message.
--tag, -t [TAG]
Docker image tag to be used for image; default: 'next'
--registry, -r [REGISTRY]
Docker registry to be used for image; default 'quay.io'
--organization, -o [ORGANIZATION]
Docker image organization to be used for image; default: 'eclipse'
--offline
Build offline version of registry, with all artifacts included
cached in the registry; disabled by default.
--rhel
Build using the rhel.Dockerfile (UBI images) instead of default
By default, the built registry will be tagged quay.io/eclipse/che-devfile-registry:next
, and will be built with offline mode disabled.
This script listens to the BUILDER
variable, and will use the tool specified there to build the image. For example:
BUILDER=buildah ./build.sh
will force the build to use buildah
. If BUILDER
is not specified, the script will try to use podman
by default. If podman
is not installed, then buildah
will be chosen. If neither podman
nor buildah
are installed, the script will finally try to build with docker
.
Note that the Dockerfiles in this repository utilize multi-stage builds, so Docker version 17.05 or higher is required.
Using the --offline
option in build.sh
will build the registry to contain zip
files for all projects referenced, which is useful for running Che in clusters that may not have access to GitHub. When building the offline registry, the docker build will
- Clone all git projects referenced in devfiles, and
git archive
them in the/resources
path, making them available to workspaces.
When deploying this offline registry, it is necessary to set the environment variable CHE_DEVFILE_REGISTRY_URL
to the URL of the route/endpoint that exposes the devfile registry, as devfiles need to be rewritten to point to internally hosted zip files.
You can deploy the registry to Openshift as follows:
oc new-app -f deploy/openshift/che-devfile-registry.yaml \
-p IMAGE="quay.io/eclipse/che-devfile-registry" \
-p IMAGE_TAG="next" \
-p PULL_POLICY="Always"
You can deploy Che devfile registry on Kubernetes using helm. For example if you want to deploy it in the namespace kube-che
and you are using minikube
you can use the following command.
NAMESPACE="kube-che"
DOMAIN="$(minikube ip).nip.io"
helm upgrade --install che-devfile-registry \
--debug \
--namespace ${NAMESPACE} \
--set global.ingressDomain=${DOMAIN} \
./deploy/kubernetes/che-devfile-registry/
You can use the following command to uninstall it.
helm delete --purge che-devfile-registry
- Run
docker run -it --rm --entrypoint httpd-foreground -p 8080:8080 quay.io/eclipse/che-devfile-registry:next
This repo contains several actions, including:
Want to contribute? Open this project in a Che
Maintainers can run the latest
Downstream builds can be found at the link below, which is internal to Red Hat. Stable builds can be found by replacing the 3.x with a specific version like 3.2.
NOTE: The registry downstream is a fork of upstream, with different devfile content and support for restricted environments enabled by default.
Che is open sourced under the Eclipse Public License 2.0.