Version 3.0.0

Known Issues

  • Configuration details in docs related to installation for EKS and GKE are known to be incomplete and may not work as is. If wanting to install to these platforms using the new installer, ask for details on the #educates channel under the Kubernetes community Slack.

Upcoming Changes

For details on significant changes in future versions, including feature deprecations and removals which may necessitate updates to existing workshops, see Upcoming changes.

New Features

  • New data variable added for registry_auth_token. This combines both the registry username and password, separated by a colon, and base64 encoded. The format is as would be expected for HTTP Basic authentication. The variable can be used when setting headers for a session ingress proxy. This is also available as an environment variable in a workshop session as the variable REGISTRY_AUTH_TOKEN.

  • New data variable added for git_auth_token. This combines both the Git username and password, separated by a colon, and base64 encoded. The format is as would be expected for HTTP Basic authentication. The variable can be used when setting headers for a session ingress proxy. This is also available as an environment variable in a workshop session as the variable GIT_AUTH_TOKEN.

  • The identifier for the user to which a workshop session is allocated is now recorded in the status of the WorkshopSession resource, as well as in the WorkshopAllocation resource.

  • The capacity details for a workshop environment are now recorded in the status of the WorkshopEnvironment resource.

  • When requesting a workshop session via the REST API, if the session param is supplied along with user then an existing workshop session for the user will only be returned if the name of that session also matches that supplied. When session is supplied in this way, a new workshop session will never be created and the response will indicate no session is available instead if no existing workshop session is found. To make use of this any front end would have to remember the prior session name, or otherwise first discover the name of the existing workshop session by looking up via the REST API, sessions which are active for the user.

  • An initial version of a new lookup service has been integrated which provide a REST API for request workshop sessions which can sit in front of multiple training portals, on the same cluster or across multiple clusters. We are still fine tuning this so documentation isn’t yet available, buf if interested then ask about it on the Educates community Slack channel.

Features Changed

  • Installation of Educates to an existing Kubernetes cluster using Carvel PackageRespository mechanism has been removed. Simpler mechanism using Carvel App resource should now be used. See Installation instructions for updated details.

  • Installation of Educates to an existing Kubernetes cluster is now easier using the Educates CLI. See Installation instructions for updated details.

  • The educates admin config group of commands is now accessible using educates local config.

  • The educates admin secrets group of commands is now accessible using educates local secrets.

  • The educates admin registry group of commands is now accessible using educates local registry.

  • The educates admin resolver group of commands is now accessible using educates local resolver.

  • The educates admin platform update command no longer exists for when using local user config with educates create-cluster. If you want to update the in-cluster configuration for Educates when using the local user config, you will need to run educates admin platform deploy command and supply the --local-config option.

    educates local config edit
    educates admin platform deploy --local-config
    
  • Installation of an ingress controller inside of a virtual cluster is no longer dependent on having kapp-controller installed on the underlying host cluster.

  • When the orphaned timeout is specified for a workshop in the training portal, if the browser page has been closed for that period of time the workshop session will be terminated. In addition to this behaviour when the orphaned timeout is specified, if a browser page/tab is hidden for a period of 3 times the orphaned timeout, indicating that the workshop user is not interacting with the workshop session, the workshop session will now also be terminated. Thus if the orphaned timeout had been set to 5 minutes, the workshop session where the browser page had been hidden/inactive for 15 minutes will be terminated. Note that what constitutes hidden may depend on the web browser. For example, a browser may not mark the page as hidden if the browser page is not full screen and is merely covered by another window from the same workspace. Do note that for supervised workshops where the whole event only lasts a certain amount of time, you should avoid the orphaned timeout setting so that a users session is not deleted when they take breaks and their computer goes to sleep.

  • When using the educates create-portal command, labels can now be specified for the portal via command line options.

Bugs Fixed

  • Theme overrides were not being applied to access control pages of the training portal.

  • The changeOrigin property was missing from the Workshop custom resource defintion for ingresses even though was documented as something that could be set.

  • The educates local config edit command would fail if run prior to having ever created a local Educates cluster as the config directory would not exist.

  • Fixes a timing issue where the phase recorded against a WorkshopSession resource created by a training portal, would revert to Available rather than being set to be Allocated.

  • An attempt to reacquire a workshop session for a user via the REST API which had not been created via the REST API but by the web interface would result in an internal error. Now properly disallow the request for this case and return an error saying session cannot be reacquired.

  • When an index URL was supplied to the training portal in the TrainingPortal resource, or via the REST API, if the URL had query string parameters, the query string param added by the training platform with the notification message, was not being merged with the existing set of query string parameters and was instead being added to the value of the last query string parameter in the URL.