Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why is Atlas a requirement ?? #140

Closed
andreijs opened this issue May 6, 2015 · 6 comments
Closed

Why is Atlas a requirement ?? #140

andreijs opened this issue May 6, 2015 · 6 comments
Labels

Comments

@andreijs
Copy link

andreijs commented May 6, 2015

Hey,

Is atlas a requirement to run this project?

Regards

@tayzlor
Copy link
Member

tayzlor commented May 7, 2015

Depends, If you are using the vagrant provider you wont need Atlas at all.

At the moment if you are using digitalocean or AWS you will. Although for AWS we have made our AMI public (as well as the Atlas artifact) so you should be able to use that https://atlas.hashicorp.com/capgemini/artifacts/apollo-mesos-ubuntu-14.04-amd64.

Unfortunately digitalocean does not support public images so you won't be able to re-use our artifact there but will need to bake your own at present.

Atlas is used at present for artifacts and provisioning from them and also for consul integration (a la https://www.consul.io/docs/guides/atlas.html). This means when you provision you should get a monitoring dashboard with the health of your consul instances at https://atlas.hashicorp.com/environments.

I'm open to discussion about atlas support and whether we maintain it, drop it or change it. I think in an ideal world we would have the ability to deploy using atlas artifacts but by default that would be turned off and just use AMI / droplet IDs in the terraform configuration. The same applies for Consul integration - if using atlas it would discover via atlas, otherwise consul nodes would join each other manually. Unfortunately terraform does not do conditional logic yet (to handle the artifact provisioning), See this issue -
hashicorp/terraform#1604

If it did we could do something like -

if ${var.atlas_enabled} {
  resource "atlas_artifact" "machine" {
    name = "${var.atlas_artifact.name}"
    type = "aws.ami"
  }
}

then in a resource 

resource "aws_instance" "machine" {
  if ${var.atlas_enabled} {
     ami = "${atlas_artifact.machine.id}"
  } else {
     ami = "${var.ami_string}"
  }
}

Reversing the atlas support would be fairly trivial. in fact it was only recently added for digitalocean in this commit 163c735

We'll have an investigation and see if we can make the requirement around atlas a bit more flexible

@wallies
Copy link
Contributor

wallies commented May 7, 2015

We should make Atlas one of the frameworks or things we make pluggable like marathon, vault etc.

@enxebre
Copy link
Contributor

enxebre commented May 7, 2015

Lets figure out the best way to this pluggable. I find atlas a good default approach as for aws it allows to the user skip the step of building the image. Not sure is gce or do is planning to allow public images at some point.

@tayzlor
Copy link
Member

tayzlor commented May 7, 2015

Wondering if we might be able to use terraform modules to optionally load the atlas configuration or fallback to default if atlas is not enabled. For example -

in terraform/aws create a default and atlas folder. move the atlas configuration to a terraform file inside the atlas folder. in the main terraform files do something like -

variable "config_type" {
 default = "atlas"
 description = "Type of configuration to use. can be either default/atlas"
}

module "artifact" {
    source = "./${var.config_type}"
}

the default and atlas modules would provide the same output that could be used in the ami field of the resource type e.g.

ami = "${module.artifact.ami}"

This would mean we could use atlas optionally by setting config_type via an environment variable. Need to have a play around and see if this works though

@enxebre
Copy link
Contributor

enxebre commented May 7, 2015

I raised a ticket here hashicorp/terraform#1846

@tayzlor
Copy link
Member

tayzlor commented Mar 9, 2016

Atlas is no longer a requirement for the project - we've removed the Atlas support. Closing this.

@tayzlor tayzlor closed this as completed Mar 9, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants