Project

General

Profile

Actions

Feature #9659

open

Please add support for AWS compatible Computer resource: Eucalyptus

Added by John Brooker over 9 years ago. Updated over 9 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Compute resources - EC2
Target version:
-
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

Description

I love theforeman, but it's missing something I need: Compute resource support for Eucalyptus.

Relates to #1758

Actions #1

Updated by John Brooker over 9 years ago

Relevant documentation:

https://github.com/eucalyptus/eucalyptus/wiki/Fog
https://github.com/fog/fog

I was able to hack some of the functionality into my existing foreman implementation by applying the following patch:
@
:~$ diff app/models/compute_resources/foreman/model/ec2.rb app/models/compute_resources/foreman/model/ec2.rb.back
107c107
< @client ||= ::Fog::Compute.new(:endpoint => "http://MYIP:8773/services/compute", :version => "2010-08-31", :provider => "AWS", :aws_access_key_id => user, :aws_secret_access_key => password, :region => region)
---

client ||= ::Fog::Compute.new(:provider => "AWS", :aws_access_key_id => user, :aws_secret_access_key => password, :region => region)

This allowed theforeman to contact my euca controller and get a list of regions, which consisted off "eucalyptus".

After that pressing the "Test Connection" button appeared to do nothing.

Finally clicking "Submit" caused the following error:

ArgumentError
Unknown region: "eucalyptus"
app/models/compute_resources/foreman/model/ec2.rb:107:in `client'
app/models/compute_resources/foreman/model/ec2.rb:113:in `setup_key_pair'
app/controllers/compute_resources_controller.rb:27:in `create'
app/models/concerns/foreman/thread_session.rb:33:in `clear_thread'
lib/middleware/catch_json_parse_errors.rb:9:in `call'

Actions #2

Updated by John Brooker over 9 years ago

the change below worked and allowed me to create the resource. from there I was able to:
  • List VM's, Compute Profiles
  • Manually configure an ubuntu 14.04 image
  • Create a VM using that image.
  • Terminate instances.
What I wasn't able to do though was:
  • Stop instances
  • Reboot instances

here's the working change:

diff app/models/compute_resources/foreman/model/ec2.rb app/models/compute_resources/foreman/model/ec2.rb.back
107c107
<       @client ||= ::Fog::Compute.new(:endpoint => "http://SITEURL:8773/services/compute", :provider => "AWS", :aws_access_key_id => user, :aws_secret_access_key => password)
---
>       @client ||= ::Fog::Compute.new(:provider => "AWS", :aws_access_key_id => user, :aws_secret_access_key => password, :region => region)

NOTE: 2010-08-31 is the lastest supported ec2 API version available in Eucalyptus versions 3.2. need to c

Changes needed:

  • Update the UI to enable Eucalyptus configuration. e.g. a "Eucalytus" tickbox which created a box where you cloud add the URL. also no need for a Region spec after that.
  • Replace the concept stopping/starting/destroying VM's with rebooting/terminating in on various screens. *
Actions

Also available in: Atom PDF