Types of Resources

Compare the three Facets resource types: normal resources deployed per environment, inherited resources shared across environments, and provided externals.

Once you have more than one environment, a resource can behave in one of three ways: deployed per environment, shared from a base environment, or managed entirely outside Facets.

Normal resources

Deployed independently for each environment through the releases mechanism. Each environment keeps its own instance, fully managed by Facets (create, update, delete) and completely isolated from other environments.

Use them for application-specific databases, environment-specific load balancers, dedicated storage, and anything production-critical that needs isolation.

Inherited resources

Shared between a base environment and its dependent environments: the dependent uses the same instance deployed in its base rather than getting its own.

  • Mark a resource as inherited at the blueprint level or at the dependent-environment level.
  • With multiple dependents, each inherits from its designated base environment when the resource is inherited at the blueprint level.
  • Inherited resources are not deployed separately for dependent environments.

Example: a base Production environment holds a shared database and monitoring stack; the dependent Staging and Testing environments inherit both from it.

Using prompt

Mark postgres/main-db as inherited in myproject.

or

Using command

raptor apply resource postgres/main-db -p myproject --inherit

# Back to deployed per environment
raptor apply resource postgres/main-db -p myproject --no-inherit

# Every resource of a kind at once
raptor apply resource --type postgres -p myproject --inherit

New to the CLI? Install it first.

Mark a resource as inherited from the Blueprint tab, or from the dependent environment's Resource Center.

Provided resources

External resources managed outside Facets and only referenced in the blueprint for configuration and dependency mapping. Facets performs no lifecycle operations on them; it keeps the definition so they appear in the dependency graph and can be referenced by other resources.