I'm trying to deploy for testing purposes a standalone setup. I'm using this config:
parameter_defaults:
CloudName: <MYIP>
# default gateway
ControlPlaneStaticRoutes:
- ip_netmask: 0.0.0.0/0
next_hop: <MYGW>
default: true
Debug: true
DeploymentUser: stack
DnsServers:
- <MYDNS>
NtpServer:
- <MYNTP>
# needed for vip & pacemaker
KernelIpNonLocalBind: 1
DockerInsecureRegistryAddress:
- <MYIP>:8787
- <MYDOCKERREGISTRY>
NeutronPublicInterface: eth0
# domain name used by the host
NeutronDnsDomain: foundation.demo
# i'm just adding random flags pretending i know what i'm doing
# stop pretending you all-mighty
NeutronEnableInternalDNS: true
DnsServers: ["<MYDNS>"]
# re-use ctlplane bridge for public net, defined in the standalone
# net config (do not change unless you know what you're doing)
NeutronBridgeMappings: datacentre:br-ctlplane
NeutronPhysicalBridge: br-ctlplane
# enable to force metadata for public net
#NeutronEnableForceMetadata: true
StandaloneEnableRoutedNetworks: false
StandaloneHomeDir: /home/stack
StandaloneLocalMtu: 1500
# Needed if running in a VM, not needed if on baremetal
#StandaloneExtraConfig:
# nova::compute::libvirt::services::libvirt_virt_type: qemu
# nova::compute::libvirt::libvirt_virt_type: qemu
HeatEngineOptVolumes:
- /usr/lib/heat:/usr/lib/heat:ro
resource_registry:
OS::TripleO::Services::HeatApi: /usr/share/openstack-tripleo-heat-templates/docker/services/heat-api.yaml
OS::TripleO::Services::HeatApiCfn: /usr/share/openstack-tripleo-heat-templates/docker/services/heat-api-cfn.yaml
OS::TripleO::Services::HeatEngine: /usr/share/openstack-tripleo-heat-templates/docker/services/heat-engine.yaml
OS::TripleO::Services::OctaviaApi: /usr/share/openstack-tripleo-heat-templates/docker/services/octavia-api.yaml
OS::TripleO::Services::OctaviaDeploymentConfig: /usr/share/openstack-tripleo-heat-templates/docker/services/octavia/octavia-deployment-config.yaml
OS::TripleO::Services::OctaviaHealthManager: /usr/share/openstack-tripleo-heat-templates/docker/services/octavia-health-manager.yaml
OS::TripleO::Services::OctaviaHousekeeping: /usr/share/openstack-tripleo-heat-templates/docker/services/octavia-housekeeping.yaml
OS::TripleO::Services::OctaviaWorker: /usr/share/openstack-tripleo-heat-templates/docker/services/octavia-worker.yaml
I'm able to get it working with the usual command line:
sudo openstack tripleo deploy --templates --local-ip=10.19.227.125/24 -e /usr/share/openstack-tripleo-heat-templates/environments/standalone.yaml -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml -e $HOME/containers-prepare-parameters.yaml -e $HOME/standalone_parameters.yaml --output-dir $HOME/workdir --standalone
But then, if I try to add the Octavia bits, like this:
sudo openstack tripleo deploy --templates --local-ip=10.19.227.125/24 -e /usr/share/openstack-tripleo-heat-templates/environments/standalone.yaml -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/services/octavia.yaml -e $HOME/containers-prepare-parameters.yaml -e $HOME/standalone_parameters.yaml --output-dir $HOME/workdir --standalone
I get:
** Performing Heat stack create.. **
Exception: ERROR: EndpointNotFound: resources.StandaloneServiceChain<file:///home/stack/workdir/tripleo-heat-installer-templates/common/services.yaml>.resources.ServiceChain<nested_stack>.resources.128<file:///home/stack/workdir/tripleo-heat-installer-templates/docker/services/octavia/octavia-deployment-config.yaml>.resources.default_key_pair: publicURL endpoint for compute service in regionOne region not found
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/tripleoclient/v1/tripleo_deploy.py", line 1063, in _standalone_deploy
parsed_args)
File "/usr/lib/python2.7/site-packages/tripleoclient/v1/tripleo_deploy.py", line 708, in _deploy_tripleo_heat_templates
stack = orchestration_client.stacks.create(**stack_args)
File "/usr/lib/python2.7/site-packages/heatclient/v1/stacks.py", line 171, in create
data=kwargs, headers=headers)
File "/usr/lib/python2.7/site-packages/heatclient/common/http.py", line 292, in post
return self.client_request("POST", url, **kwargs)
File "/usr/lib/python2.7/site-packages/heatclient/common/http.py", line 282, in client_request
resp, body = self.json_request(method, url, **kwargs)
File "/usr/lib/python2.7/site-packages/heatclient/common/http.py", line 271, in json_request
resp = self._http_request(url, method, **kwargs)
File "/usr/lib/python2.7/site-packages/heatclient/common/http.py", line 234, in _http_request
raise exc.from_response(resp)
HTTPBadRequest: ERROR: EndpointNotFound: resources.StandaloneServiceChain<file:///home/stack/workdir/tripleo-heat-installer-templates/common/services.yaml>.resources.ServiceChain<nested_stack>.resources.128<file:///home/stack/workdir/tripleo-heat-installer-templates/docker/services/octavia/octavia-deployment-config.yaml>.resources.default_key_pair: publicURL endpoint for compute service in regionOne region not found
None
Not cleaning working directory /home/stack/workdir/tripleo-heat-installer-templates
Not cleaning ansible directory /home/stack/workdir/undercloud-ansible-QVZJDh
Install artifact is located at /home/stack/workdir/undercloud-install-20181130192536.tar.bzip2
Do you have any suggestion on how to make this work, or is it simply not supported and so this can't be considered a bug?
Yea this won't work right now because it wants to query nova for the default keypair but in the standalone there is no compute.
https:/ /github. com/openstack/ tripleo- heat-templates/ blob/4daeccdac7 5d5c14b4f6ca14f 8ab8e221d3af367 /docker/ services/ octavia/ octavia- deployment- config. yaml#L151
This likely could be worked around by allowing the end user provide a public key and only fall back to the default nova keypair when not provided.