Workshop Request

The WorkshopRequest custom resource defines a workshop request.

The raw custom resource definition for the WorkshopRequest custom resource can be viewed at:

kubectl get crd/workshoprequests.training.educates.dev -o yaml

Note that the WorkshopRequest custom resource is deprecated and should not be used. As deployment and use of workshops is now all typically managed via a training portal, there is no need to interact with internal custom resources directly such as WorkshopEnvironment, WorkshopSession and WorkshopRequest. In the case of WorkshopRequest, it may be reimplemented and repurposed at a later time to allow request of workshop sessions via the training portal instance as an alternative to the training portal REST API.

Specifying workshop environment

The WorkshopRequest custom resource is only used to request a workshop instance. It does not specify actual details needed to perform the deployment of the workshop instance. That information is instead sourced by the Educates operator from the WorkshopEnvironment and Workshop custom resources.

The minimum required information in the workshop request is therefore just the name of the workshop environment. This is supplied by setting the environment.name field.

apiVersion: training.educates.dev/v1beta1
kind: WorkshopRequest
metadata:
  name: lab-markdown-sample
spec:
  environment:
    name: lab-markdown-sample

A request will only be successful if the ability to request a workshop instance for a workshop environment has been enabled for that workshop. Enabling of requests needs to have been specified in the WorkshopEnvironment custom resource for the workshop environment.

If multiple workshop requests, whether for the same workshop environment or different ones, are created in the same namespace, the name defined in the metadata for the workshop request must be different for each. The value of this name is not important and is not used in naming of workshop instances. A user will need to remember it if they want to delete the workshop instance, which is done by deleting the workshop request.

Specifying required access token

Where a workshop environment has been configured to require an access token when making workshop request against that environment, it can be specified by setting the environment.token field.

apiVersion: training.educates.dev/v1beta1
kind: WorkshopRequest
metadata:
  name: lab-markdown-sample
spec:
  environment:
    name: lab-markdown-sample
    token: lab-markdown-sample

Even with the token, if the workshop environment has restricted the namespaces a workshop request has been made from, and the workshop request was not created in one of the white listed namespaces, the request will fail.