What is an Environment?

An Environment is a user-defined group that brings together applications and all of the services and databases those applications require.
Environments can be mapped to the software project lifecycle stages, such as development, staging, or production.

Network Isolation

Bunnyshell by default creates a namespace in Kubernetes for every environment, but you are free to use as many as needed.

The Network Isolation feature ensures that pods inside an environment (one or more namespaces) can be accessed only from within that particular namespace(s).

The feature is activated by default for docker-compose components and cannot be deactivated.


Types of environments

Primary Environments

Primary environments are manually-created environments that are not destroyed automatically. Typically they are for more traditional staging or production workloads.

They can be set to track application branches and automatically deploy ephemeral environments on a pull request creation in the CVS. Tis way, they can be used as blueprints for generating ephemeral environments.



They are also known as Permanent Environments or Environment Templates.
Find out how you can create and deploy your first Environment.

Ephemeral Environments

Ephemeral environments are designed to be short-lived environments, created automatically based on existing primary environments, and destroyed automatically when they're no longer needed.



Sometimes Ephemeral Environments are also known as Preview Environments, Temporary Environments or Development Environment.

Ephemeral environments are usually environments that live during the lifetime of a Pull Request or are created manually to preview changes, showcase demos, or test new configurations. Find out how you can create and deploy your first ephemeral environment.


Team Workflows

Bunnyshell environment types provide complete flexibility to replicate your custom team workflows. You have the full power to adapt:

  • Agile: one primary environment per sprint and each story in the sprint can have its own ephemeral environment created automatically or on-demand.
  • Developer-centric: Create one or more QA environments and a multiple development environments (per developer / per task).
  • Testing: an operational test environment, a user test environment and a on-demand end-to-end test environments.
  • Hotfix: one environment for every bug, security, or hotfix that needs deployment.