liveBook · Manning

Environment resource

As explained in Platform Engineering on Kubernetes

An environment resource is a declarative platform resource that represents a request for a particular provisioned environment and its configuration.

An environment resource is a declarative request for a provisioned development environment. It forms a contract between application teams and the platform, exposing environment type and team-specific configuration while hiding provisioning details. section 6.1.1

An environment resource supports a platform workflow:

  • Application teams submit requests through the platform API, potentially creating as many development environments as they need. section 6.1.1
  • The resource specifies a type, such as development, plus parameters such as whether infrastructure or application services should be installed. section 6.1.1
  • Platform mechanisms interpret the request and provision an isolated environment without exposing their implementation details to users. section 6.3.2
  • Teams inspect readiness and connection information, then connect to the provisioned environment to work independently. section 6.3.2

Kubernetes environment request

A Kubernetes resource can select a development composition and request infrastructure installation: apiVersion: salaboy.com/v1alpha1; kind: Environment; metadata.name: team-a-dev-env; spec.compositionSelector.matchLabels.type: development; spec.parameters.installInfra: true. Listing environments exposes the environment name, connection target, type, infrastructure setting, and readiness. section 6.3.2

Figure 6.16 Using Crossplane and vcluster to create isolated environments for application development teams

Shows how Crossplane and vcluster provision isolated environments for application development teams. section 6.3.2

How Platform Engineering on Kubernetes covers it

How deep it goes
Explains resource abstraction, parameters, provisioning, readiness, and access, while hiding implementation details from requesters.
Examples
Uses JSON parameters, a Kubernetes Environment manifest, readiness output, and a vcluster connection command.
What it assumes
Assumes access to a platform Kubernetes API and familiarity with submitting Kubernetes resources through tools such as kubectl.
What you can do after
Operate/configure development environments by submitting resources, checking readiness, and connecting to provisioned environments.
How it connects
Connects Kubernetes resources with platform APIs, Crossplane compositions, Helm, vcluster, and isolated development environments.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Platform Engineering on Kubernetes. The section links point to the parts of the book it draws on.