QP9nAoGAQMBWb/rlN4MVHesmKb1vls1Zq8fZd7Mq9nOK37Za7x9t+/7Xx3bfEAm4 nr2+BCcD01LGzoF7p0k9XRyS30RcFa+kABfCmt3ojSEcIrmxlLnxp63CPBm6hoN2 kz9FT4jnME5mUOg+0p5XEfoZUhklll3HWTU/hWVwJzplIRAz3mk= -----END RSA PRIVATE KEY-----` ) var _ = Describe("TLS key rotation", func() { var ( manifest consul.ManifestV2 kv consulclient.HTTPKV spammer *helpers.Spammer ) BeforeEach(func() { var err error manifest, kv, err = helpers.DeployConsulWithInstanceCount("tls-key-rotation", 3, boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, manifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(manifest))) spammer = helpers.NewSpammer(kv, 1*time.Second, "test-consumer-0") }) AfterEach(func() { if !CurrentGinkgoTestDescription().Failed { err := boshClient.DeleteDeployment(manifest.Name) Expect(err).NotTo(HaveOccurred()) } })
BeforeEach(func() { By("deploying turbulence", func() { var err error turbulenceManifest, err = helpers.DeployTurbulence(boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, turbulenceManifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetTurbulenceVMsFromManifest(turbulenceManifest))) turbulenceClient = helpers.NewTurbulenceClient(turbulenceManifest) }) By("deploying consul", func() { var err error consulManifest, kv, err = helpers.DeployConsulWithInstanceCount("quorum-loss", 5, boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, consulManifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(consulManifest))) }) }) AfterEach(func() { By("deleting the deployment", func() { if !CurrentGinkgoTestDescription().Failed { for i := 0; i < 5; i++ { err := boshClient.SetVMResurrection(consulManifest.Name, "consul", i, true) Expect(err).NotTo(HaveOccurred()) }
AfterEach(func() { if !CurrentGinkgoTestDescription().Failed { err := boshClient.DeleteDeployment(manifest.Name) Expect(err).NotTo(HaveOccurred()) } }) Describe("scaling from 1 node to 3", func() { BeforeEach(func() { guid, err := helpers.NewGUID() Expect(err).NotTo(HaveOccurred()) testKey = "consul-key-" + guid testValue = "consul-value-" + guid manifest, kv, err = helpers.DeployConsulWithInstanceCount("scale-up-1-to-3", 1, boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, manifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(manifest))) }) It("provides a functioning cluster after the scale up", func() { By("setting a persistent value to check the cluster is up", func() { err := kv.Set(testKey, testValue) Expect(err).NotTo(HaveOccurred()) }) By("scaling from 1 nodes to 3", func() { var err error
var _ = Describe("Single instance rolling deploys", func() { var ( manifest consul.ManifestV2 kv consulclient.HTTPKV testKey string testValue string ) BeforeEach(func() { guid, err := helpers.NewGUID() Expect(err).NotTo(HaveOccurred()) testKey = "consul-key-" + guid testValue = "consul-value-" + guid manifest, kv, err = helpers.DeployConsulWithInstanceCount("single-instance-rolling-deploy", 1, boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, manifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(manifest))) }) AfterEach(func() { if !CurrentGinkgoTestDescription().Failed { err := boshClient.DeleteDeployment(manifest.Name) Expect(err).NotTo(HaveOccurred()) } }) It("persists data throughout the rolling deploy", func() {
Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, turbulenceManifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetTurbulenceVMsFromManifest(turbulenceManifest))) turbulenceClient = helpers.NewTurbulenceClient(turbulenceManifest) }) By("deploying consul", func() { guid, err := helpers.NewGUID() Expect(err).NotTo(HaveOccurred()) testKey = "consul-key-" + guid testValue = "consul-value-" + guid consulManifest, kv, err = helpers.DeployConsulWithInstanceCount("kill-vm", 3, boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, consulManifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(consulManifest))) spammer = helpers.NewSpammer(kv, 1*time.Second, "test-consumer-0") }) }) AfterEach(func() { By("fixing the deployment", func() { yaml, err := consulManifest.ToYAML() Expect(err).NotTo(HaveOccurred())
AfterEach(func() { if !CurrentGinkgoTestDescription().Failed { err := boshClient.DeleteDeployment(manifest.Name) Expect(err).NotTo(HaveOccurred()) } }) Describe("scaling from 3 nodes to 1", func() { BeforeEach(func() { guid, err := helpers.NewGUID() Expect(err).NotTo(HaveOccurred()) testKey = "consul-key-" + guid testValue = "consul-value-" + guid manifest, kv, err = helpers.DeployConsulWithInstanceCount("scale-down-3-to-1", 3, boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, manifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(manifest))) }) It("provides a functioning server after the scale down", func() { By("setting a persistent value to check the cluster is up", func() { err := kv.Set(testKey, testValue) Expect(err).NotTo(HaveOccurred()) }) By("scaling from 3 nodes to 1", func() { var err error
"github.com/pivotal-cf-experimental/destiny/core" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Single host multiple services", func() { var ( manifest consul.ManifestV2 tcClient testconsumerclient.Client ) BeforeEach(func() { var err error manifest, _, err = helpers.DeployConsulWithInstanceCount("single-host-multiple-services", 1, boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, manifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(manifest))) tcClient = testconsumerclient.New(fmt.Sprintf("http://%s:6769", manifest.InstanceGroups[1].Networks[0].StaticIPs[0])) }) AfterEach(func() { if !CurrentGinkgoTestDescription().Failed { err := boshClient.DeleteDeployment(manifest.Name) Expect(err).NotTo(HaveOccurred()) } })
"github.com/pivotal-cf-experimental/destiny/core" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Health Check", func() { var ( manifest consul.ManifestV2 tcClient testconsumerclient.Client ) BeforeEach(func() { var err error manifest, _, err = helpers.DeployConsulWithInstanceCount("health-check", 3, boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, manifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(manifest))) tcClient = testconsumerclient.New(fmt.Sprintf("http://%s:6769", manifest.InstanceGroups[1].Networks[0].StaticIPs[0])) }) AfterEach(func() { if !CurrentGinkgoTestDescription().Failed { err := boshClient.DeleteDeployment(manifest.Name) Expect(err).NotTo(HaveOccurred()) } })