Skip to content
This repository has been archived by the owner on Jul 7, 2021. It is now read-only.

Upgrading to Empire Daemon

Michael Hahn edited this page Jul 21, 2016 · 2 revisions

With https://github.com/remind101/stacker_blueprints/pull/22, the recommended way of running the Empire Controller has changed.

Previously, the majority of the configuration for the Controller took place within https://github.com/remind101/empire_ami. Every time you wanted to upgrade Empire, you had to rebuild the AMI, deploy the new AMI to the Controller's autoscaling group, and replace existing instances to activate the new AMI. This made upgrading Empire more painful than it should be.

Eric came up with the new architecture, which sets up an ECS Cluster for the Controller and deploys the Empire Controller as an ECS Task on top of that cluster. That moves the configuration of the Controller within Stacker, which means upgrading only results in a new task definition vs. having to deal with updating any AMI and replacing instances.

Note: This upgrade affects the Empire Controller and does result in downtime for the Empire Controller. This means while the new stack is coming up, Empire management commands won't be available. The Minion Cluster will be unaffected so your running apps will have no downtime.

Summary of the changes:

Empire Minion

If you've defined MinSize or MaxSize, these are now MinHosts and MaxHosts to maintain consistency with the controller.

Empire Controller

The following is a list of parameters that have been removed from the EmpireController blueprint with the corresponding parameter in the EmpireDaemon blueprint.

ExternalDomain -> ExternalDomain
InternalZoneId -> InternalZoneId
PublicSubnets -> PublicSubnets
TrustedNetwork -> TrustedNetwork
ControllerELBCertName -> ELBCertName
ControllerELBCertType -> ELBCertType
PublicEmpireAppELBSG -> PublicAppELBSG
PrivateEmpireAppELBSG -> PrivateAppELBSG
EmpireDBSecurityGroup -> DBSecurityGroup
EmpireDatabaseUser -> DatabaseUser
EmpireDatabasePassword -> DatabasePassword
EmpireDatabaseHost -> DatabaseHost
EmpireMinionCluster -> MinionCluster
EmpireGithubClientId -> GitHubClientId
EmpireGithubClientSecret -> GitHubClientSecret
EmpireGithubOrganization -> GitHubOrganization
EmpireGithubWebhooksSecret -> GitHubWebhooksSecret
EmpireGithubDeploymentsEnvironment -> GitHubDeploymentsEnvironment
EmpireTokenSecret -> TokenSecret
DisableStreamingLogs -> Moved to empire minion only

You can also check out this commit, which upgraded the example empire stack.

Clone this wiki locally