#!/bin/bash # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. set -xe sudo -H mkdir -p /etc/openstack sudo -H chown -R $(id -un): /etc/openstack FEATURE_GATE="tls"; if [[ ${FEATURE_GATES//,/ } =~ (^|[[:space:]])${FEATURE_GATE}($|[[:space:]]) ]]; then tee /etc/openstack/clouds.yaml << EOF clouds: openstack_helm: region_name: RegionOne identity_api_version: 3 cacert: /etc/openstack-helm/certs/ca/ca.pem auth: username: 'admin' password: 'password' project_name: 'admin' project_domain_name: 'default' user_domain_name: 'default' auth_url: 'https://keystone.openstack.svc.cluster.local/v3' EOF else tee /etc/openstack/clouds.yaml << EOF clouds: openstack_helm: region_name: RegionOne identity_api_version: 3 auth: username: 'admin' password: 'password' project_name: 'admin' project_domain_name: 'default' user_domain_name: 'default' auth_url: 'http://keystone.openstack.svc.cluster.local/v3' EOF fi sudo tee /usr/local/bin/openstack << EOF #!/bin/bash args=("\$@") sudo docker run \\ --rm \\ --network host \\ -w / \\ -v /etc/openstack/clouds.yaml:/etc/openstack/clouds.yaml \\ -v /etc/openstack-helm:/etc/openstack-helm \\ -e OS_CLOUD=\${OS_CLOUD} \\ \${OPENSTACK_CLIENT_CONTAINER_EXTRA_ARGS} \\ docker.io/openstackhelm/openstack-client:\${OPENSTACK_RELEASE:-2023.2} openstack "\${args[@]}" EOF sudo chmod +x /usr/local/bin/openstack