Environments

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, running within a namespace.
Environments typically represent the software project lifecycle stages, such as staging, development, QA, or production but also

Network Isolation

Bunnyshell creates a namespace in Kubernetes for every environment. The Network Isolation feature ensures that pods inside a namespace can be accessed only from within that particular namespace. The feature is activated by default 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 to the application source control system. They are used as blueprints for generating ephemeral environments.
They are also known as Permanent Environments or Environment Templates.
Creating and Deploying your first Environment
Bunnyshell

Ephemeral Environments

Ephemeral environments are designed to be close replicas of production environments and can be created on-demand or automatically only based on existing primary environments.
Sometimes Ephemeral Environments are also known as Preview Environements, Temporary Environment, Development Environment.
Ephemeral environments are usually environments that live for the life of a Pull Request or are created manually to preview changes, showcase demos, or test new configurations.
Creating and Deploying your first Ephemeral Environment
Bunnyshell

Workflows

Bunnyshell environment types provide complete flexibility to create custom workflows. You have the full power to adapt the
  • 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 QA environment and a few development environments (per developer, per task…).
  • Testing: an operational test environment, a user test environment and a few unit test environments.
  • Hotfix: one environment for every bug, security, or hotfix that needs deployment.