John-Paul Robinson (j...@uab.edu) wrote:
> Hi,
>
> I'm trying to enable nova client access to my controller deployed by
> crowbar from nodes that are not on the public/float network.  In our
> environment the public/float network is a private address range that
> sits behind an additional firewall.  I'd like to change the public URLs
> advertised by keystone to use FQDNs instead of IPs.
>
> I'm able to add a new FQDN-based endpoint directly using the keystone
> admin URL. However, it appears this is all managed by Chef since the new
> entry is removed within 15 minutes.
>
> Indeed there is a nova barclamp and installed nova cookbook on the admin
> node.
>
> It looks like the nova api.rb recipe is responsible for setting this
> value in the "register nova endpoint" section:
>
> endpoint_publicURL "http://#{public_api_ip}:8774/v2/$(tenant_id)s"
>
> The public_api_ip comes from earlier in the recipe and is set from
> (likely) the Crowbar install parameters:
>
> public_api_ip =
> Chef::Recipe::Barclamp::Inventory.get_network_by_type(api, "public").address
>
> I'd like to change public_api_ip to my preferred FQDN of the controller.
>  I'm assuming there is no variable that I can draw from to get this FQDN
> and am fine with starting off hard coding the value in the above
> variable definition (ugly but effective).
>
> What I don't fully grok yet, is where to make this change.  I'm assuming
> it would be best to make it in Chef recipe housed in the nova barclamp
> and then update the barclamp in some way, which would update the
> registered nova cookbook with Chef, which would then change keystone on
> the controller.  How do I do that?

Which release are you using?  In roxy (as used by SUSE Cloud 3), we
already expose this as an option, and in fact the code handles several
related issues:

  - if there is a preferred public name, it gets used
  - if not, the IP is used by default, although ...
  - if SSL is in use, the host's FQDN is used instead (so certificate
    validation works)
  - https protocol is used if SSL enabled
  - if keystone is running inside a Pacemaker cluster then HAproxy
    is automatically configured, a floating IP is set up for its
    frontend, together with an associated hostname in DNS which the
    other barclamps can then consume

e.g. see 
https://github.com/crowbar/barclamp-nova/blob/release/roxy/master/chef/cookbooks/nova/recipes/api.rb#L59

This is achieved via shared helpers so that all barclamps consume
endpoints in a consistent DRY manner:

  
https://github.com/crowbar/barclamp-crowbar/blob/release/roxy/master/chef/cookbooks/utils/libraries/helpers.rb#L12

> Sorry for beating this issue to death, but this is just a place where
> the Crowbar docs don't really (or appear to) help out much.

Right :-/

But these are the kind of common use cases where we want to do the
hard work so you don't have to ;-)

_______________________________________________
Crowbar mailing list
Crowbar@dell.com
https://lists.us.dell.com/mailman/listinfo/crowbar
For more information: http://crowbar.github.com/

Reply via email to