Octavia: add octavia chart and deployment scripts
This PS adds octavia chart and its deployment scripts. Blueprint name : openstack-helm-octavia - Deployments : api, worker, housekeeping - Daemonset : health-manager - health-manager daemonset creates o-hm device on each controller node. - This is for multi node deployment. - 180-create-resource-for-octavia.sh : Create openstack resources (network, sec groups, flavor, keypair, image for development) - 190-create-octavia-certs.sh : Create certificates to use Octavia (the certs is passed into pod using secret and volume for development) - 200-octavia.sh : Deploy Octavia chart Note: This chart doesn't include amphora image itself and its build. Change-Id: I0bb7dfc7c15d77287c05a8542347e19fc269aba4 Signed-off-by: hagun.kim <hagun.kim@samsung.com>
This commit is contained in:
parent
3af5f78f5c
commit
aac8345c4c
@ -84,6 +84,10 @@ limitations under the License.
|
|||||||
{{- $_ := set $envAll.Values.conf.neutron.nova "password" $envAll.Values.endpoints.identity.auth.nova.password -}}
|
{{- $_ := set $envAll.Values.conf.neutron.nova "password" $envAll.Values.endpoints.identity.auth.nova.password -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if empty $envAll.Values.conf.neutron.octavia.base_url -}}
|
||||||
|
{{- $_ := tuple "load_balancer" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set $envAll.Values.conf.neutron.octavia "base_url" -}}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
nova_metadata_ip can go away when Newton is no longer supported, otherwise
|
nova_metadata_ip can go away when Newton is no longer supported, otherwise
|
||||||
just set it along with nova_metadata_host.
|
just set it along with nova_metadata_host.
|
||||||
|
@ -1765,6 +1765,8 @@ conf:
|
|||||||
memcache_security_strategy: ENCRYPT
|
memcache_security_strategy: ENCRYPT
|
||||||
auth_type: password
|
auth_type: password
|
||||||
auth_version: v3
|
auth_version: v3
|
||||||
|
octavia:
|
||||||
|
request_poll_timeout: 3000
|
||||||
logging:
|
logging:
|
||||||
loggers:
|
loggers:
|
||||||
keys:
|
keys:
|
||||||
@ -2133,6 +2135,21 @@ endpoints:
|
|||||||
api:
|
api:
|
||||||
default: 9696
|
default: 9696
|
||||||
public: 80
|
public: 80
|
||||||
|
load_balancer:
|
||||||
|
name: octavia
|
||||||
|
hosts:
|
||||||
|
default: octavia-api
|
||||||
|
public: octavia
|
||||||
|
host_fqdn_override:
|
||||||
|
default: null
|
||||||
|
path:
|
||||||
|
default: null
|
||||||
|
scheme:
|
||||||
|
default: http
|
||||||
|
port:
|
||||||
|
api:
|
||||||
|
default: 9876
|
||||||
|
public: 80
|
||||||
fluentd:
|
fluentd:
|
||||||
namespace: osh-infra
|
namespace: osh-infra
|
||||||
name: fluentd
|
name: fluentd
|
||||||
|
25
octavia/Chart.yaml
Normal file
25
octavia/Chart.yaml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
description: OpenStack-Helm Octavia
|
||||||
|
name: octavia
|
||||||
|
version: 0.1.0
|
||||||
|
home: https://docs.openstack.org/octavia/latest/
|
||||||
|
icon: https://www.openstack.org/themes/openstack/images/project-mascots/Octavia/OpenStack_Project_Octavia_vertical.png
|
||||||
|
sources:
|
||||||
|
- https://opendev.org/openstack/octavia
|
||||||
|
- https://opendev.org/openstack/openstack-helm
|
||||||
|
maintainers:
|
||||||
|
- name: OpenStack-Helm Authors
|
18
octavia/requirements.yaml
Normal file
18
octavia/requirements.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
- name: helm-toolkit
|
||||||
|
repository: http://localhost:8879/charts
|
||||||
|
version: 0.1.0
|
20
octavia/templates/bin/_bootstrap.sh.tpl
Normal file
20
octavia/templates/bin/_bootstrap.sh.tpl
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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 -ex
|
||||||
|
{{ .Values.bootstrap.script | default "echo 'Not Enabled'" }}
|
21
octavia/templates/bin/_db-sync.sh.tpl
Normal file
21
octavia/templates/bin/_db-sync.sh.tpl
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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 -ex
|
||||||
|
|
||||||
|
octavia-db-manage upgrade head
|
31
octavia/templates/bin/_octavia-api.sh.tpl
Normal file
31
octavia/templates/bin/_octavia-api.sh.tpl
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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 -ex
|
||||||
|
COMMAND="${@:-start}"
|
||||||
|
|
||||||
|
function start () {
|
||||||
|
exec octavia-api \
|
||||||
|
--config-file /etc/octavia/octavia.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop () {
|
||||||
|
kill -TERM 1
|
||||||
|
}
|
||||||
|
|
||||||
|
$COMMAND
|
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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 -ex
|
||||||
|
|
||||||
|
HOSTNAME=$(hostname -s)
|
||||||
|
PORTNAME=octavia-health-manager-port-$HOSTNAME
|
||||||
|
|
||||||
|
HM_PORT_ID=$(openstack port show $PORTNAME -c id -f value)
|
||||||
|
HM_PORT_MAC=$(openstack port show $PORTNAME -c mac_address -f value)
|
||||||
|
|
||||||
|
echo $HM_PORT_ID > /tmp/pod-shared/HM_PORT_ID
|
||||||
|
echo $HM_PORT_MAC > /tmp/pod-shared/HM_PORT_MAC
|
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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 -ex
|
||||||
|
|
||||||
|
HM_PORT_ID=$(cat /tmp/pod-shared/HM_PORT_ID)
|
||||||
|
HM_PORT_MAC=$(cat /tmp/pod-shared/HM_PORT_MAC)
|
||||||
|
|
||||||
|
ovs-vsctl --no-wait show
|
||||||
|
|
||||||
|
ovs-vsctl --may-exist add-port br-int o-hm0 \
|
||||||
|
-- set Interface o-hm0 type=internal \
|
||||||
|
-- set Interface o-hm0 external-ids:iface-status=active \
|
||||||
|
-- set Interface o-hm0 external-ids:attached-mac=$HM_PORT_MAC \
|
||||||
|
-- set Interface o-hm0 external-ids:iface-id=$HM_PORT_ID \
|
||||||
|
-- set Interface o-hm0 external-ids:skip_cleanup=true
|
||||||
|
|
||||||
|
ip link set dev o-hm0 address $HM_PORT_MAC
|
||||||
|
|
||||||
|
iptables -I INPUT -i o-hm0 -p udp --dport {{ .Values.conf.octavia.health_manager.bind_port }} -j ACCEPT
|
38
octavia/templates/bin/_octavia-health-manager.sh.tpl
Normal file
38
octavia/templates/bin/_octavia-health-manager.sh.tpl
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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 -ex
|
||||||
|
COMMAND="${@:-start}"
|
||||||
|
|
||||||
|
function start () {
|
||||||
|
cat > /tmp/dhclient.conf <<EOF
|
||||||
|
request subnet-mask,broadcast-address,interface-mtu;
|
||||||
|
do-forward-updates false;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
dhclient -v o-hm0 -cf /tmp/dhclient.conf
|
||||||
|
|
||||||
|
exec octavia-health-manager \
|
||||||
|
--config-file /etc/octavia/octavia.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop () {
|
||||||
|
kill -TERM 1
|
||||||
|
}
|
||||||
|
|
||||||
|
$COMMAND
|
31
octavia/templates/bin/_octavia-housekeeping.sh.tpl
Normal file
31
octavia/templates/bin/_octavia-housekeeping.sh.tpl
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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 -ex
|
||||||
|
COMMAND="${@:-start}"
|
||||||
|
|
||||||
|
function start () {
|
||||||
|
exec octavia-housekeeping \
|
||||||
|
--config-file /etc/octavia/octavia.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop () {
|
||||||
|
kill -TERM 1
|
||||||
|
}
|
||||||
|
|
||||||
|
$COMMAND
|
31
octavia/templates/bin/_octavia-worker.sh.tpl
Normal file
31
octavia/templates/bin/_octavia-worker.sh.tpl
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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 -ex
|
||||||
|
COMMAND="${@:-start}"
|
||||||
|
|
||||||
|
function start () {
|
||||||
|
exec octavia-worker \
|
||||||
|
--config-file /etc/octavia/octavia.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop () {
|
||||||
|
kill -TERM 1
|
||||||
|
}
|
||||||
|
|
||||||
|
$COMMAND
|
62
octavia/templates/configmap-bin.yaml
Normal file
62
octavia/templates/configmap-bin.yaml
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.configmap_bin }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
{{- $rallyTests := .Values.conf.rally_tests }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: octavia-bin
|
||||||
|
data:
|
||||||
|
{{- if .Values.images.local_registry.active }}
|
||||||
|
image-repo-sync.sh: |
|
||||||
|
{{- include "helm-toolkit.scripts.image_repo_sync" . | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.bootstrap.enabled }}
|
||||||
|
bootstrap.sh: |
|
||||||
|
{{ tuple "bin/_bootstrap.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
rally-test.sh: |
|
||||||
|
{{ tuple $rallyTests | include "helm-toolkit.scripts.rally_test" | indent 4 }}
|
||||||
|
db-init.py: |
|
||||||
|
{{- include "helm-toolkit.scripts.db_init" . | indent 4 }}
|
||||||
|
db-sync.sh: |
|
||||||
|
{{ tuple "bin/_db-sync.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
db-drop.py: |
|
||||||
|
{{- include "helm-toolkit.scripts.db_drop" . | indent 4 }}
|
||||||
|
ks-service.sh: |
|
||||||
|
{{- include "helm-toolkit.scripts.keystone_service" . | indent 4 }}
|
||||||
|
ks-endpoints.sh: |
|
||||||
|
{{- include "helm-toolkit.scripts.keystone_endpoints" . | indent 4 }}
|
||||||
|
ks-user.sh: |
|
||||||
|
{{- include "helm-toolkit.scripts.keystone_user" . | indent 4 }}
|
||||||
|
octavia-api.sh: |
|
||||||
|
{{ tuple "bin/_octavia-api.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
octavia-health-manager.sh: |
|
||||||
|
{{ tuple "bin/_octavia-health-manager.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
octavia-health-manager-nic-init.sh: |
|
||||||
|
{{ tuple "bin/_octavia-health-manager-nic-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
octavia-health-manager-get-port.sh: |
|
||||||
|
{{ tuple "bin/_octavia-health-manager-get-port.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
octavia-housekeeping.sh: |
|
||||||
|
{{ tuple "bin/_octavia-housekeeping.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
octavia-worker.sh: |
|
||||||
|
{{ tuple "bin/_octavia-worker.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
rabbit-init.sh: |
|
||||||
|
{{- include "helm-toolkit.scripts.rabbit_init" . | indent 4 }}
|
||||||
|
{{- end }}
|
117
octavia/templates/configmap-etc.yaml
Normal file
117
octavia/templates/configmap-etc.yaml
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- define "octavia.configmap.etc" }}
|
||||||
|
{{- $configMapName := index . 0 }}
|
||||||
|
{{- $envAll := index . 1 }}
|
||||||
|
{{- with $envAll }}
|
||||||
|
|
||||||
|
{{- if empty .Values.conf.octavia.keystone_authtoken.auth_uri -}}
|
||||||
|
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set .Values.conf.octavia.keystone_authtoken "auth_uri" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if empty .Values.conf.octavia.keystone_authtoken.auth_url -}}
|
||||||
|
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set .Values.conf.octavia.keystone_authtoken "auth_url" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if empty .Values.conf.octavia.keystone_authtoken.region_name -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.keystone_authtoken "region_name" .Values.endpoints.identity.auth.octavia.region_name -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.keystone_authtoken.project_name -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.keystone_authtoken "project_name" .Values.endpoints.identity.auth.octavia.project_name -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.keystone_authtoken.project_domain_name -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.keystone_authtoken "project_domain_name" .Values.endpoints.identity.auth.octavia.project_domain_name -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.keystone_authtoken.user_domain_name -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.keystone_authtoken "user_domain_name" .Values.endpoints.identity.auth.octavia.user_domain_name -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.keystone_authtoken.username -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.keystone_authtoken "username" .Values.endpoints.identity.auth.octavia.username -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.keystone_authtoken.password -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.keystone_authtoken "password" .Values.endpoints.identity.auth.octavia.password -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if empty .Values.conf.octavia.keystone_authtoken.memcached_servers -}}
|
||||||
|
{{- $_ := tuple "oslo_cache" "internal" "memcache" . | include "helm-toolkit.endpoints.host_and_port_endpoint_uri_lookup" | set .Values.conf.octavia.keystone_authtoken "memcached_servers" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.keystone_authtoken.memcache_secret_key -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.keystone_authtoken "memcache_secret_key" ( default ( randAlphaNum 64 ) .Values.endpoints.oslo_cache.auth.memcache_secret_key ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if empty .Values.conf.octavia.service_auth.auth_url -}}
|
||||||
|
{{- $_ := tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set .Values.conf.octavia.service_auth "auth_url" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if empty .Values.conf.octavia.service_auth.project_name -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.service_auth "project_name" .Values.endpoints.identity.auth.admin.project_name -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.service_auth.project_domain_name -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.service_auth "project_domain_name" .Values.endpoints.identity.auth.admin.project_domain_name -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.service_auth.user_domain_name -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.service_auth "user_domain_name" .Values.endpoints.identity.auth.admin.user_domain_name -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.service_auth.username -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.service_auth "username" .Values.endpoints.identity.auth.admin.username -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.service_auth.password -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.service_auth "password" .Values.endpoints.identity.auth.admin.password -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if empty .Values.conf.octavia.service_auth.memcached_servers -}}
|
||||||
|
{{- $_ := tuple "oslo_cache" "internal" "memcache" . | include "helm-toolkit.endpoints.host_and_port_endpoint_uri_lookup" | set .Values.conf.octavia.service_auth "memcached_servers" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if empty .Values.conf.octavia.service_auth.memcache_secret_key -}}
|
||||||
|
{{- $_ := set .Values.conf.octavia.service_auth "memcache_secret_key" ( default ( randAlphaNum 64 ) .Values.endpoints.oslo_cache.auth.memcache_secret_key ) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if empty .Values.conf.octavia.database.connection -}}
|
||||||
|
{{- $_ := tuple "oslo_db" "internal" "octavia" "mysql" . | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup"| set .Values.conf.octavia.database "connection" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if empty .Values.conf.octavia.DEFAULT.transport_url -}}
|
||||||
|
{{- $_ := tuple "oslo_messaging" "internal" "octavia" "amqp" . | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | set .Values.conf.octavia.DEFAULT "transport_url" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if and (empty .Values.conf.logging.handler_fluent) (has "fluent" .Values.conf.logging.handlers.keys) -}}
|
||||||
|
{{- $fluentd_host := tuple "fluentd" "internal" $envAll | include "helm-toolkit.endpoints.hostname_namespaced_endpoint_lookup" }}
|
||||||
|
{{- $fluentd_port := tuple "fluentd" "internal" "service" $envAll | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
|
||||||
|
{{- $fluent_args := printf "('%s.%s', '%s', %s)" .Release.Namespace .Release.Name $fluentd_host $fluentd_port }}
|
||||||
|
{{- $handler_fluent := dict "class" "fluent.handler.FluentHandler" "formatter" "fluent" "args" $fluent_args -}}
|
||||||
|
{{- $_ := set .Values.conf.logging "handler_fluent" $handler_fluent -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if and (empty .Values.conf.logging.formatter_fluent) (has "fluent" .Values.conf.logging.formatters.keys) -}}
|
||||||
|
{{- $formatter_fluent := dict "class" "oslo_log.formatters.FluentFormatter" -}}
|
||||||
|
{{- $_ := set .Values.conf.logging "formatter_fluent" $formatter_fluent -}}
|
||||||
|
{{- end -}}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ $configMapName }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
octavia.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.octavia | b64enc }}
|
||||||
|
logging.conf: {{ include "helm-toolkit.utils.to_oslo_conf" .Values.conf.logging | b64enc }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.configmap_etc }}
|
||||||
|
{{- list "octavia-etc" . | include "octavia.configmap.etc" }}
|
||||||
|
{{- end }}
|
159
octavia/templates/daemonset-health-manager.yaml
Normal file
159
octavia/templates/daemonset-health-manager.yaml
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- define "octavia.health_manager.daemonset" }}
|
||||||
|
{{- $daemonset := index . 0 }}
|
||||||
|
{{- $configMapName := index . 1 }}
|
||||||
|
{{- $serviceAccountName := index . 2 }}
|
||||||
|
{{- $envAll := index . 3 }}
|
||||||
|
{{- with $envAll }}
|
||||||
|
|
||||||
|
{{- $mounts_octavia_health_manager := .Values.pod.mounts.octavia_health_manager.octavia_health_manager }}
|
||||||
|
{{- $mounts_octavia_health_manager_init := .Values.pod.mounts.octavia_health_manager.init_container }}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: octavia-health-manager
|
||||||
|
annotations:
|
||||||
|
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
|
||||||
|
labels:
|
||||||
|
{{ tuple $envAll "octavia" "health_manager" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{ tuple $envAll "octavia" "health_manager" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
|
||||||
|
{{ tuple $envAll "health_manager" | include "helm-toolkit.snippets.kubernetes_upgrades_daemonset" | indent 2 }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{ tuple $envAll "octavia" "health_manager" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
|
||||||
|
annotations:
|
||||||
|
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
|
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
|
spec:
|
||||||
|
serviceAccountName: {{ $serviceAccountName }}
|
||||||
|
dnsPolicy: ClusterFirstWithHostNet
|
||||||
|
hostNetwork: true
|
||||||
|
hostPID: true
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.health_manager.node_selector_key }}: {{ .Values.labels.health_manager.node_selector_value }}
|
||||||
|
initContainers:
|
||||||
|
{{ tuple $envAll "health_manager" $mounts_octavia_health_manager_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||||
|
- name: octavia-health-manager-get-port
|
||||||
|
{{ tuple $envAll "octavia_health_manager_init" | include "helm-toolkit.snippets.image" | indent 10 }}
|
||||||
|
{{ tuple $envAll $envAll.Values.pod.resources.health_manager | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
||||||
|
env:
|
||||||
|
{{- with $env := dict "ksUserSecret" ( index $envAll.Values.secrets.identity "admin" ) }}
|
||||||
|
{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
command:
|
||||||
|
- /tmp/octavia-health-manager-get-port.sh
|
||||||
|
volumeMounts:
|
||||||
|
- name: pod-shared
|
||||||
|
mountPath: /tmp/pod-shared
|
||||||
|
- name: octavia-bin
|
||||||
|
mountPath: /tmp/octavia-health-manager-get-port.sh
|
||||||
|
subPath: octavia-health-manager-get-port.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: octavia-health-manager-nic-init
|
||||||
|
{{ tuple $envAll "openvswitch_vswitchd" | include "helm-toolkit.snippets.image" | indent 10 }}
|
||||||
|
{{ tuple $envAll $envAll.Values.pod.resources.health_manager | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- NET_ADMIN
|
||||||
|
command:
|
||||||
|
- /tmp/octavia-health-manager-nic-init.sh
|
||||||
|
volumeMounts:
|
||||||
|
- name: pod-shared
|
||||||
|
mountPath: /tmp/pod-shared
|
||||||
|
- name: octavia-bin
|
||||||
|
mountPath: /tmp/octavia-health-manager-nic-init.sh
|
||||||
|
subPath: octavia-health-manager-nic-init.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: run
|
||||||
|
mountPath: /run
|
||||||
|
containers:
|
||||||
|
- name: octavia-health-manager
|
||||||
|
{{ tuple $envAll "octavia_health_manager" | include "helm-toolkit.snippets.image" | indent 10 }}
|
||||||
|
{{ tuple $envAll $envAll.Values.pod.resources.health_manager | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- NET_ADMIN
|
||||||
|
command:
|
||||||
|
- /tmp/octavia-health-manager.sh
|
||||||
|
- start
|
||||||
|
lifecycle:
|
||||||
|
preStop:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /tmp/octavia-health-manager.sh
|
||||||
|
- stop
|
||||||
|
volumeMounts:
|
||||||
|
- name: pod-etc-octavia
|
||||||
|
mountPath: /etc/octavia
|
||||||
|
- name: octavia-bin
|
||||||
|
mountPath: /tmp/octavia-health-manager.sh
|
||||||
|
subPath: octavia-health-manager.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: octavia-etc
|
||||||
|
mountPath: /etc/octavia/octavia.conf
|
||||||
|
subPath: octavia.conf
|
||||||
|
readOnly: true
|
||||||
|
- name: octavia-etc
|
||||||
|
mountPath: {{ .Values.conf.octavia.DEFAULT.log_config_append }}
|
||||||
|
subPath: {{ base .Values.conf.octavia.DEFAULT.log_config_append }}
|
||||||
|
readOnly: true
|
||||||
|
{{ if $mounts_octavia_health_manager.volumeMounts }}{{ toYaml $mounts_octavia_health_manager.volumeMounts | indent 12 }}{{ end }}
|
||||||
|
volumes:
|
||||||
|
- name: pod-etc-octavia
|
||||||
|
emptyDir: {}
|
||||||
|
- name: octavia-bin
|
||||||
|
configMap:
|
||||||
|
name: octavia-bin
|
||||||
|
defaultMode: 0555
|
||||||
|
- name: octavia-etc
|
||||||
|
secret:
|
||||||
|
secretName: {{ $configMapName }}
|
||||||
|
defaultMode: 0444
|
||||||
|
- name: pod-shared
|
||||||
|
emptyDir: {}
|
||||||
|
- name: run
|
||||||
|
hostPath:
|
||||||
|
path: /run
|
||||||
|
{{ if $mounts_octavia_health_manager.volumes }}{{ toYaml $mounts_octavia_health_manager.volumes | indent 8 }}{{ end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.daemonset_health_manager }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
{{- $daemonset := "health_manager" }}
|
||||||
|
{{- $configMapName := "octavia-etc" }}
|
||||||
|
{{- $serviceAccountName := "octavia-health-manager" }}
|
||||||
|
|
||||||
|
{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "health_manager" -}}
|
||||||
|
{{- $_ := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }}
|
||||||
|
|
||||||
|
{{ tuple $envAll "pod_dependency" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
|
||||||
|
{{- $daemonset_yaml := list $daemonset $configMapName $serviceAccountName . | include "octavia.health_manager.daemonset" | toString | fromYaml }}
|
||||||
|
{{- $configmap_yaml := "octavia.configmap.etc" }}
|
||||||
|
{{- list $daemonset $daemonset_yaml $configmap_yaml $configMapName . | include "helm-toolkit.utils.daemonset_overrides" }}
|
||||||
|
{{- end }}
|
105
octavia/templates/deployment-api.yaml
Normal file
105
octavia/templates/deployment-api.yaml
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.deployment_api }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
|
||||||
|
{{- $mounts_octavia_api := .Values.pod.mounts.octavia_api.octavia_api }}
|
||||||
|
{{- $mounts_octavia_api_init := .Values.pod.mounts.octavia_api.init_container }}
|
||||||
|
|
||||||
|
{{- $serviceAccountName := "octavia-api" }}
|
||||||
|
{{ tuple $envAll "api" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: octavia-api
|
||||||
|
annotations:
|
||||||
|
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
|
||||||
|
labels:
|
||||||
|
{{ tuple $envAll "octavia" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
|
||||||
|
spec:
|
||||||
|
replicas: {{ .Values.pod.replicas.api }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{ tuple $envAll "octavia" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
|
||||||
|
{{ tuple $envAll | include "helm-toolkit.snippets.kubernetes_upgrades_deployment" | indent 2 }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{ tuple $envAll "octavia" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
|
||||||
|
annotations:
|
||||||
|
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
|
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
|
spec:
|
||||||
|
serviceAccountName: {{ $serviceAccountName }}
|
||||||
|
affinity:
|
||||||
|
{{ tuple $envAll "octavia" "api" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.api.node_selector_key }}: {{ .Values.labels.api.node_selector_value }}
|
||||||
|
terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.api.timeout | default "30" }}
|
||||||
|
initContainers:
|
||||||
|
{{ tuple $envAll "api" $mounts_octavia_api_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||||
|
containers:
|
||||||
|
- name: octavia-api
|
||||||
|
{{ tuple $envAll "octavia_api" | include "helm-toolkit.snippets.image" | indent 10 }}
|
||||||
|
{{ tuple $envAll $envAll.Values.pod.resources.api | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: {{ .Values.pod.user.octavia.uid }}
|
||||||
|
command:
|
||||||
|
- /tmp/octavia-api.sh
|
||||||
|
- start
|
||||||
|
lifecycle:
|
||||||
|
preStop:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /tmp/octavia-api.sh
|
||||||
|
- stop
|
||||||
|
ports:
|
||||||
|
- name: o-api
|
||||||
|
containerPort: {{ tuple "load_balancer" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: {{ tuple "load_balancer" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
|
||||||
|
volumeMounts:
|
||||||
|
- name: pod-etc-octavia
|
||||||
|
mountPath: /etc/octavia
|
||||||
|
- name: octavia-bin
|
||||||
|
mountPath: /tmp/octavia-api.sh
|
||||||
|
subPath: octavia-api.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: octavia-etc
|
||||||
|
mountPath: /etc/octavia/octavia.conf
|
||||||
|
subPath: octavia.conf
|
||||||
|
readOnly: true
|
||||||
|
- name: octavia-etc
|
||||||
|
mountPath: {{ .Values.conf.octavia.DEFAULT.log_config_append }}
|
||||||
|
subPath: {{ base .Values.conf.octavia.DEFAULT.log_config_append }}
|
||||||
|
readOnly: true
|
||||||
|
{{ if $mounts_octavia_api.volumeMounts }}{{ toYaml $mounts_octavia_api.volumeMounts | indent 12 }}{{ end }}
|
||||||
|
volumes:
|
||||||
|
- name: pod-etc-octavia
|
||||||
|
emptyDir: {}
|
||||||
|
- name: octavia-bin
|
||||||
|
configMap:
|
||||||
|
name: octavia-bin
|
||||||
|
defaultMode: 0555
|
||||||
|
- name: octavia-etc
|
||||||
|
secret:
|
||||||
|
secretName: octavia-etc
|
||||||
|
defaultMode: 0444
|
||||||
|
{{ if $mounts_octavia_api.volumes }}{{ toYaml $mounts_octavia_api.volumes | indent 8 }}{{ end }}
|
||||||
|
{{- end }}
|
99
octavia/templates/deployment-housekeeping.yaml
Normal file
99
octavia/templates/deployment-housekeeping.yaml
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.deployment_housekeeping }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
|
||||||
|
{{- $mounts_octavia_housekeeping := .Values.pod.mounts.octavia_housekeeping.octavia_housekeeping }}
|
||||||
|
{{- $mounts_octavia_housekeeping_init := .Values.pod.mounts.octavia_housekeeping.init_container }}
|
||||||
|
|
||||||
|
{{- $serviceAccountName := "octavia-housekeeping" }}
|
||||||
|
{{ tuple $envAll "housekeeping" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: octavia-housekeeping
|
||||||
|
annotations:
|
||||||
|
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
|
||||||
|
labels:
|
||||||
|
{{ tuple $envAll "octavia" "housekeeping" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
|
||||||
|
spec:
|
||||||
|
replicas: {{ .Values.pod.replicas.housekeeping }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{ tuple $envAll "octavia" "housekeeping" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
|
||||||
|
{{ tuple $envAll | include "helm-toolkit.snippets.kubernetes_upgrades_deployment" | indent 2 }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{ tuple $envAll "octavia" "housekeeping" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
|
||||||
|
annotations:
|
||||||
|
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
|
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
|
spec:
|
||||||
|
serviceAccountName: {{ $serviceAccountName }}
|
||||||
|
hostNetwork: true
|
||||||
|
affinity:
|
||||||
|
{{ tuple $envAll "octavia" "housekeeping" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.housekeeping.node_selector_key }}: {{ .Values.labels.housekeeping.node_selector_value }}
|
||||||
|
initContainers:
|
||||||
|
{{ tuple $envAll "housekeeping" $mounts_octavia_housekeeping_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||||
|
containers:
|
||||||
|
- name: octavia-housekeeping
|
||||||
|
{{ tuple $envAll "octavia_housekeeping" | include "helm-toolkit.snippets.image" | indent 10 }}
|
||||||
|
{{ tuple $envAll $envAll.Values.pod.resources.housekeeping | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: {{ .Values.pod.user.octavia.uid }}
|
||||||
|
command:
|
||||||
|
- /tmp/octavia-housekeeping.sh
|
||||||
|
- start
|
||||||
|
lifecycle:
|
||||||
|
preStop:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /tmp/octavia-housekeeping.sh
|
||||||
|
- stop
|
||||||
|
volumeMounts:
|
||||||
|
- name: pod-etc-octavia
|
||||||
|
mountPath: /etc/octavia
|
||||||
|
- name: octavia-bin
|
||||||
|
mountPath: /tmp/octavia-housekeeping.sh
|
||||||
|
subPath: octavia-housekeeping.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: octavia-etc
|
||||||
|
mountPath: /etc/octavia/octavia.conf
|
||||||
|
subPath: octavia.conf
|
||||||
|
readOnly: true
|
||||||
|
- name: octavia-etc
|
||||||
|
mountPath: {{ .Values.conf.octavia.DEFAULT.log_config_append }}
|
||||||
|
subPath: {{ base .Values.conf.octavia.DEFAULT.log_config_append }}
|
||||||
|
readOnly: true
|
||||||
|
{{ if $mounts_octavia_housekeeping.volumeMounts }}{{ toYaml $mounts_octavia_housekeeping.volumeMounts | indent 12 }}{{ end }}
|
||||||
|
volumes:
|
||||||
|
- name: pod-etc-octavia
|
||||||
|
emptyDir: {}
|
||||||
|
- name: octavia-bin
|
||||||
|
configMap:
|
||||||
|
name: octavia-bin
|
||||||
|
defaultMode: 0555
|
||||||
|
- name: octavia-etc
|
||||||
|
secret:
|
||||||
|
secretName: octavia-etc
|
||||||
|
defaultMode: 0444
|
||||||
|
{{ if $mounts_octavia_housekeeping.volumes }}{{ toYaml $mounts_octavia_housekeeping.volumes | indent 8 }}{{ end }}
|
||||||
|
{{- end }}
|
100
octavia/templates/deployment-worker.yaml
Normal file
100
octavia/templates/deployment-worker.yaml
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.deployment_worker }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
|
||||||
|
{{- $mounts_octavia_worker := .Values.pod.mounts.octavia_worker.octavia_worker }}
|
||||||
|
{{- $mounts_octavia_worker_init := .Values.pod.mounts.octavia_worker.init_container }}
|
||||||
|
|
||||||
|
{{- $serviceAccountName := "octavia-worker" }}
|
||||||
|
{{ tuple $envAll "worker" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: octavia-worker
|
||||||
|
annotations:
|
||||||
|
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
|
||||||
|
labels:
|
||||||
|
{{ tuple $envAll "octavia" "worker" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
|
||||||
|
spec:
|
||||||
|
replicas: {{ .Values.pod.replicas.worker }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{ tuple $envAll "octavia" "worker" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
|
||||||
|
{{ tuple $envAll | include "helm-toolkit.snippets.kubernetes_upgrades_deployment" | indent 2 }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{ tuple $envAll "octavia" "worker" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
|
||||||
|
annotations:
|
||||||
|
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
|
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
|
spec:
|
||||||
|
serviceAccountName: {{ $serviceAccountName }}
|
||||||
|
dnsPolicy: ClusterFirstWithHostNet
|
||||||
|
hostNetwork: true
|
||||||
|
affinity:
|
||||||
|
{{ tuple $envAll "octavia" "worker" | include "helm-toolkit.snippets.kubernetes_pod_anti_affinity" | indent 8 }}
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.worker.node_selector_key }}: {{ .Values.labels.worker.node_selector_value }}
|
||||||
|
initContainers:
|
||||||
|
{{ tuple $envAll "worker" $mounts_octavia_worker_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 8 }}
|
||||||
|
containers:
|
||||||
|
- name: octavia-worker
|
||||||
|
{{ tuple $envAll "octavia_worker" | include "helm-toolkit.snippets.image" | indent 10 }}
|
||||||
|
{{ tuple $envAll $envAll.Values.pod.resources.worker | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: {{ .Values.pod.user.octavia.uid }}
|
||||||
|
command:
|
||||||
|
- /tmp/octavia-worker.sh
|
||||||
|
- start
|
||||||
|
lifecycle:
|
||||||
|
preStop:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /tmp/octavia-worker.sh
|
||||||
|
- stop
|
||||||
|
volumeMounts:
|
||||||
|
- name: pod-etc-octavia
|
||||||
|
mountPath: /etc/octavia
|
||||||
|
- name: octavia-bin
|
||||||
|
mountPath: /tmp/octavia-worker.sh
|
||||||
|
subPath: octavia-worker.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: octavia-etc
|
||||||
|
mountPath: /etc/octavia/octavia.conf
|
||||||
|
subPath: octavia.conf
|
||||||
|
readOnly: true
|
||||||
|
- name: octavia-etc
|
||||||
|
mountPath: {{ .Values.conf.octavia.DEFAULT.log_config_append }}
|
||||||
|
subPath: {{ base .Values.conf.octavia.DEFAULT.log_config_append }}
|
||||||
|
readOnly: true
|
||||||
|
{{ if $mounts_octavia_worker.volumeMounts }}{{ toYaml $mounts_octavia_worker.volumeMounts | indent 12 }}{{ end }}
|
||||||
|
volumes:
|
||||||
|
- name: pod-etc-octavia
|
||||||
|
emptyDir: {}
|
||||||
|
- name: octavia-bin
|
||||||
|
configMap:
|
||||||
|
name: octavia-bin
|
||||||
|
defaultMode: 0555
|
||||||
|
- name: octavia-etc
|
||||||
|
secret:
|
||||||
|
secretName: octavia-etc
|
||||||
|
defaultMode: 0444
|
||||||
|
{{ if $mounts_octavia_worker.volumes }}{{ toYaml $mounts_octavia_worker.volumes | indent 8 }}{{ end }}
|
||||||
|
{{- end }}
|
21
octavia/templates/ingress-api.yaml
Normal file
21
octavia/templates/ingress-api.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if and .Values.manifests.ingress_api .Values.network.api.ingress.public }}
|
||||||
|
{{- $ingressOpts := dict "envAll" . "backendServiceType" "load_balancer" "backendPort" "o-api" -}}
|
||||||
|
{{ $ingressOpts | include "helm-toolkit.manifests.ingress" }}
|
||||||
|
{{- end }}
|
||||||
|
|
21
octavia/templates/job-bootstrap.yaml
Normal file
21
octavia/templates/job-bootstrap.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
|
||||||
|
{{- if and .Values.manifests.job_bootstrap .Values.bootstrap.enabled }}
|
||||||
|
{{- $bootstrapJob := dict "envAll" . "serviceName" "octavia" "keystoneUser" .Values.bootstrap.ks_user "logConfigFile" .Values.conf.octavia.DEFAULT.log_config_append -}}
|
||||||
|
{{ $bootstrapJob | include "helm-toolkit.manifests.job_bootstrap" }}
|
||||||
|
{{- end }}
|
20
octavia/templates/job-db-drop.yaml
Normal file
20
octavia/templates/job-db-drop.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.job_db_drop }}
|
||||||
|
{{- $dbDropJob := dict "envAll" . "serviceName" "octavia" -}}
|
||||||
|
{{ $dbDropJob | include "helm-toolkit.manifests.job_db_drop_mysql" }}
|
||||||
|
{{- end }}
|
20
octavia/templates/job-db-init.yaml
Normal file
20
octavia/templates/job-db-init.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.job_db_init }}
|
||||||
|
{{- $dbInitJob := dict "envAll" . "serviceName" "octavia" -}}
|
||||||
|
{{ $dbInitJob | include "helm-toolkit.manifests.job_db_init_mysql" }}
|
||||||
|
{{- end }}
|
20
octavia/templates/job-db-sync.yaml
Normal file
20
octavia/templates/job-db-sync.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.job_db_sync }}
|
||||||
|
{{- $dbSyncJob := dict "envAll" . "serviceName" "octavia" -}}
|
||||||
|
{{ $dbSyncJob | include "helm-toolkit.manifests.job_db_sync" }}
|
||||||
|
{{- end }}
|
20
octavia/templates/job-image-repo-sync.yaml
Normal file
20
octavia/templates/job-image-repo-sync.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if and .Values.manifests.job_image_repo_sync .Values.images.local_registry.active }}
|
||||||
|
{{- $imageRepoSyncJob := dict "envAll" . "serviceName" "octavia" -}}
|
||||||
|
{{ $imageRepoSyncJob | include "helm-toolkit.manifests.job_image_repo_sync" }}
|
||||||
|
{{- end }}
|
20
octavia/templates/job-ks-endpoint.yaml
Normal file
20
octavia/templates/job-ks-endpoint.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.job_ks_endpoints }}
|
||||||
|
{{- $ksServiceJob := dict "envAll" . "serviceName" "octavia" "serviceTypes" ( tuple "load-balancer" ) -}}
|
||||||
|
{{ $ksServiceJob | include "helm-toolkit.manifests.job_ks_endpoints" }}
|
||||||
|
{{- end }}
|
20
octavia/templates/job-ks-service.yaml
Normal file
20
octavia/templates/job-ks-service.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.job_ks_service }}
|
||||||
|
{{- $ksServiceJob := dict "envAll" . "serviceName" "octavia" "serviceTypes" ( tuple "load-balancer" ) -}}
|
||||||
|
{{ $ksServiceJob | include "helm-toolkit.manifests.job_ks_service" }}
|
||||||
|
{{- end }}
|
20
octavia/templates/job-ks-user.yaml
Normal file
20
octavia/templates/job-ks-user.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.job_ks_user }}
|
||||||
|
{{- $ksUserJob := dict "envAll" . "serviceName" "octavia" -}}
|
||||||
|
{{ $ksUserJob | include "helm-toolkit.manifests.job_ks_user" }}
|
||||||
|
{{- end }}
|
19
octavia/templates/job-rabbit-init.yaml
Normal file
19
octavia/templates/job-rabbit-init.yaml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
{{- if .Values.manifests.job_rabbit_init }}
|
||||||
|
{{- $rmqUserJob := dict "envAll" . "serviceName" "octavia" -}}
|
||||||
|
{{ $rmqUserJob | include "helm-toolkit.manifests.job_rabbit_init" }}
|
||||||
|
{{- end }}
|
18
octavia/templates/network_policy.yaml
Normal file
18
octavia/templates/network_policy.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
{{- if .Values.manifests.network_policy -}}
|
||||||
|
{{- $netpol_opts := dict "envAll" . "name" "application" "label" "octavia" -}}
|
||||||
|
{{ $netpol_opts | include "helm-toolkit.manifests.kubernetes_network_policy" }}
|
||||||
|
{{- end -}}
|
29
octavia/templates/pdb-api.yaml
Normal file
29
octavia/templates/pdb-api.yaml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.pdb_api }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
---
|
||||||
|
apiVersion: policy/v1beta1
|
||||||
|
kind: PodDisruptionBudget
|
||||||
|
metadata:
|
||||||
|
name: octavia-api
|
||||||
|
spec:
|
||||||
|
minAvailable: {{ .Values.pod.lifecycle.disruption_budget.api.min_available }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{ tuple $envAll "octavia" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
|
||||||
|
{{- end }}
|
30
octavia/templates/secret-db.yaml
Normal file
30
octavia/templates/secret-db.yaml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.secret_db }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
{{- range $key1, $userClass := tuple "admin" "octavia" }}
|
||||||
|
{{- $secretName := index $envAll.Values.secrets.oslo_db $userClass }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ $secretName }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
DB_CONNECTION: {{ tuple "oslo_db" "internal" $userClass "mysql" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc -}}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
19
octavia/templates/secret-ingress-tls.yaml
Normal file
19
octavia/templates/secret-ingress-tls.yaml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.secret_ingress_tls }}
|
||||||
|
{{- include "helm-toolkit.manifests.secret_ingress_tls" ( dict "envAll" . "backendServiceType" "load_balancer" ) }}
|
||||||
|
{{- end }}
|
30
octavia/templates/secret-keystone.yaml
Normal file
30
octavia/templates/secret-keystone.yaml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.secret_keystone }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
{{- range $key1, $userClass := tuple "admin" "octavia" "test" }}
|
||||||
|
{{- $secretName := index $envAll.Values.secrets.identity $userClass }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ $secretName }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
{{- tuple $userClass "internal" $envAll | include "helm-toolkit.snippets.keystone_secret_openrc" | indent 2 -}}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
30
octavia/templates/secret-rabbitmq.yaml
Normal file
30
octavia/templates/secret-rabbitmq.yaml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.secret_rabbitmq }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
{{- range $key1, $userClass := tuple "admin" "octavia" }}
|
||||||
|
{{- $secretName := index $envAll.Values.secrets.oslo_messaging $userClass }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ $secretName }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
RABBITMQ_CONNECTION: {{ tuple "oslo_messaging" "internal" $userClass "http" $envAll | include "helm-toolkit.endpoints.authenticated_endpoint_uri_lookup" | b64enc }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
36
octavia/templates/service-api.yaml
Normal file
36
octavia/templates/service-api.yaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.service_api }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ tuple "load_balancer" "internal" . | include "helm-toolkit.endpoints.hostname_short_endpoint_lookup" }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: o-api
|
||||||
|
port: {{ tuple "load_balancer" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
|
||||||
|
{{ if .Values.network.api.node_port.enabled }}
|
||||||
|
nodePort: {{ .Values.network.api.node_port.port }}
|
||||||
|
{{ end }}
|
||||||
|
selector:
|
||||||
|
{{ tuple $envAll "octavia" "api" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
|
||||||
|
{{ if .Values.network.api.node_port.enabled }}
|
||||||
|
type: NodePort
|
||||||
|
{{ end }}
|
||||||
|
{{- end }}
|
20
octavia/templates/service-ingress-api.yaml
Normal file
20
octavia/templates/service-ingress-api.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{{/*
|
||||||
|
Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- if and .Values.manifests.service_ingress_api .Values.network.api.ingress.public }}
|
||||||
|
{{- $serviceIngressOpts := dict "envAll" . "backendServiceType" "load_balancer" -}}
|
||||||
|
{{ $serviceIngressOpts | include "helm-toolkit.manifests.service_ingress" }}
|
||||||
|
{{- end }}
|
681
octavia/values.yaml
Normal file
681
octavia/values.yaml
Normal file
@ -0,0 +1,681 @@
|
|||||||
|
# Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
# Default values for octavia.
|
||||||
|
# This is a YAML-formatted file.
|
||||||
|
# Declare name/value pairs to be passed into your templates.
|
||||||
|
# name: value
|
||||||
|
|
||||||
|
release_group: null
|
||||||
|
|
||||||
|
labels:
|
||||||
|
api:
|
||||||
|
node_selector_key: openstack-control-plane
|
||||||
|
node_selector_value: enabled
|
||||||
|
worker:
|
||||||
|
node_selector_key: openstack-control-plane
|
||||||
|
node_selector_value: enabled
|
||||||
|
housekeeping:
|
||||||
|
node_selector_key: openstack-control-plane
|
||||||
|
node_selector_value: enabled
|
||||||
|
health_manager:
|
||||||
|
node_selector_key: openstack-control-plane
|
||||||
|
node_selector_value: enabled
|
||||||
|
job:
|
||||||
|
node_selector_key: openstack-control-plane
|
||||||
|
node_selector_value: enabled
|
||||||
|
|
||||||
|
images:
|
||||||
|
tags:
|
||||||
|
test: docker.io/xrally/xrally-openstack:1.3.0
|
||||||
|
bootstrap: docker.io/openstackhelm/heat:ocata
|
||||||
|
db_init: docker.io/openstackhelm/heat:ocata
|
||||||
|
octavia_db_sync: docker.io/loci/octavia:master-ubuntu
|
||||||
|
db_drop: docker.io/openstackhelm/heat:ocata
|
||||||
|
rabbit_init: docker.io/rabbitmq:3.7-management
|
||||||
|
ks_user: docker.io/openstackhelm/heat:ocata
|
||||||
|
ks_service: docker.io/openstackhelm/heat:ocata
|
||||||
|
ks_endpoints: docker.io/openstackhelm/heat:ocata
|
||||||
|
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
|
||||||
|
image_repo_sync: docker.io/docker:17.07.0
|
||||||
|
octavia_api: docker.io/loci/octavia:master-ubuntu
|
||||||
|
octavia_worker: docker.io/loci/octavia:master-ubuntu
|
||||||
|
octavia_housekeeping: docker.io/loci/octavia:master-ubuntu
|
||||||
|
octavia_health_manager: docker.io/loci/octavia:master-ubuntu
|
||||||
|
octavia_health_manager_init: docker.io/kolla/ubuntu-source-octavia-health-manager:rocky
|
||||||
|
openvswitch_vswitchd: docker.io/kolla/centos-source-openvswitch-vswitchd:rocky
|
||||||
|
pull_policy: "IfNotPresent"
|
||||||
|
local_registry:
|
||||||
|
active: false
|
||||||
|
exclude:
|
||||||
|
- dep_check
|
||||||
|
- image_repo_sync
|
||||||
|
|
||||||
|
bootstrap:
|
||||||
|
enabled: true
|
||||||
|
ks_user: admin
|
||||||
|
script: |
|
||||||
|
openstack role create --or-show load-balancer_admin
|
||||||
|
openstack role create --or-show load-balancer_observer
|
||||||
|
openstack role create --or-show load-balancer_global_observer
|
||||||
|
openstack role create --or-show load-balancer_quota_admin
|
||||||
|
openstack role create --or-show load-balancer_member
|
||||||
|
|
||||||
|
network:
|
||||||
|
api:
|
||||||
|
ingress:
|
||||||
|
public: true
|
||||||
|
classes:
|
||||||
|
namespace: "nginx"
|
||||||
|
cluster: "nginx-cluster"
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/rewrite-target: /
|
||||||
|
external_policy_local: false
|
||||||
|
node_port:
|
||||||
|
enabled: false
|
||||||
|
port: 30826
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
dynamic:
|
||||||
|
common:
|
||||||
|
local_image_registry:
|
||||||
|
jobs:
|
||||||
|
- heat-image-repo-sync
|
||||||
|
services:
|
||||||
|
- endpoint: node
|
||||||
|
service: local_image_registry
|
||||||
|
static:
|
||||||
|
api:
|
||||||
|
jobs:
|
||||||
|
- octavia-db-sync
|
||||||
|
- octavia-ks-user
|
||||||
|
- octavia-ks-endpoints
|
||||||
|
- octavia-rabbit-init
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_db
|
||||||
|
- endpoint: internal
|
||||||
|
service: identity
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_messaging
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_cache
|
||||||
|
- endpoint: internal
|
||||||
|
service: network
|
||||||
|
worker:
|
||||||
|
jobs:
|
||||||
|
- octavia-db-sync
|
||||||
|
- octavia-ks-user
|
||||||
|
- octavia-ks-endpoints
|
||||||
|
- octavia-rabbit-init
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_db
|
||||||
|
- endpoint: internal
|
||||||
|
service: identity
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_messaging
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_cache
|
||||||
|
- endpoint: internal
|
||||||
|
service: network
|
||||||
|
- endpoint: internal
|
||||||
|
service: load_balancer
|
||||||
|
housekeeping:
|
||||||
|
jobs:
|
||||||
|
- octavia-db-sync
|
||||||
|
- octavia-ks-user
|
||||||
|
- octavia-ks-endpoints
|
||||||
|
- octavia-rabbit-init
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_db
|
||||||
|
- endpoint: internal
|
||||||
|
service: identity
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_messaging
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_cache
|
||||||
|
- endpoint: internal
|
||||||
|
service: network
|
||||||
|
- endpoint: internal
|
||||||
|
service: load_balancer
|
||||||
|
health_manager:
|
||||||
|
jobs:
|
||||||
|
- octavia-db-sync
|
||||||
|
- octavia-ks-user
|
||||||
|
- octavia-ks-endpoints
|
||||||
|
- octavia-rabbit-init
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_db
|
||||||
|
- endpoint: internal
|
||||||
|
service: identity
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_messaging
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_cache
|
||||||
|
- endpoint: internal
|
||||||
|
service: network
|
||||||
|
- endpoint: internal
|
||||||
|
service: load_balancer
|
||||||
|
db_init:
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_db
|
||||||
|
db_sync:
|
||||||
|
jobs:
|
||||||
|
- octavia-db-init
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_db
|
||||||
|
ks_endpoints:
|
||||||
|
jobs:
|
||||||
|
- octavia-ks-service
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: identity
|
||||||
|
ks_service:
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: identity
|
||||||
|
ks_user:
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: identity
|
||||||
|
rabbit_init:
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: oslo_messaging
|
||||||
|
image_repo_sync:
|
||||||
|
services:
|
||||||
|
- endpoint: internal
|
||||||
|
service: local_image_registry
|
||||||
|
|
||||||
|
conf:
|
||||||
|
octavia:
|
||||||
|
DEFAULT:
|
||||||
|
log_config_append: /etc/octavia/logging.conf
|
||||||
|
api_settings:
|
||||||
|
api_handler: queue_producer
|
||||||
|
bind_host: 0.0.0.0
|
||||||
|
database:
|
||||||
|
max_retries: -1
|
||||||
|
health_manager:
|
||||||
|
bind_port: 5555
|
||||||
|
bind_ip: 0.0.0.0
|
||||||
|
controller_ip_port_list: 0.0.0.0:5555
|
||||||
|
heartbeat_key: insecure
|
||||||
|
keystone_authtoken:
|
||||||
|
auth_type: password
|
||||||
|
auth_version: v3
|
||||||
|
memcache_security_strategy: ENCRYPT
|
||||||
|
certificates:
|
||||||
|
ca_private_key_passphrase: foobar
|
||||||
|
ca_private_key: /etc/octavia/certs/private/cakey.pem
|
||||||
|
ca_certificate: /etc/octavia/certs/ca_01.pem
|
||||||
|
haproxy_amphora:
|
||||||
|
server_ca: /etc/octavia/certs/ca_01.pem
|
||||||
|
client_cert: /etc/octavia/certs/client.pem
|
||||||
|
base_path: /var/lib/octavia
|
||||||
|
base_cert_dir: /var/lib/octavia/certs
|
||||||
|
connection_max_retries: 1500
|
||||||
|
connection_retry_interval: 1
|
||||||
|
rest_request_conn_timeout: 10
|
||||||
|
rest_request_read_timeout: 120
|
||||||
|
controller_worker:
|
||||||
|
amp_image_owner_id: null
|
||||||
|
amp_secgroup_list: null
|
||||||
|
amp_flavor_id: null
|
||||||
|
amp_boot_network_list: null
|
||||||
|
amp_ssh_key_name: octavia_ssh_key
|
||||||
|
amp_image_tag: amphora
|
||||||
|
network_driver: allowed_address_pairs_driver
|
||||||
|
compute_driver: compute_nova_driver
|
||||||
|
amphora_driver: amphora_haproxy_rest_driver
|
||||||
|
workers: 2
|
||||||
|
amp_active_retries: 100
|
||||||
|
amp_active_wait_sec: 2
|
||||||
|
loadbalancer_topology: SINGLE
|
||||||
|
oslo_messaging:
|
||||||
|
topic: octavia_prov
|
||||||
|
rpc_thread_pool_size: 2
|
||||||
|
oslo_messaging_notifications:
|
||||||
|
driver: messagingv2
|
||||||
|
house_keeping:
|
||||||
|
load_balancer_expiry_age: 3600
|
||||||
|
amphora_expiry_age: 3600
|
||||||
|
service_auth:
|
||||||
|
auth_type: password
|
||||||
|
cafile: ""
|
||||||
|
auth_version: v3
|
||||||
|
memcache_security_strategy: ENCRYPT
|
||||||
|
logging:
|
||||||
|
loggers:
|
||||||
|
keys:
|
||||||
|
- root
|
||||||
|
- octavia
|
||||||
|
handlers:
|
||||||
|
keys:
|
||||||
|
- stdout
|
||||||
|
- stderr
|
||||||
|
- "null"
|
||||||
|
formatters:
|
||||||
|
keys:
|
||||||
|
- context
|
||||||
|
- default
|
||||||
|
logger_root:
|
||||||
|
level: WARNING
|
||||||
|
handlers: 'null'
|
||||||
|
logger_octavia:
|
||||||
|
level: WARNING
|
||||||
|
handlers:
|
||||||
|
- stdout
|
||||||
|
qualname: octavia
|
||||||
|
logger_amqp:
|
||||||
|
level: WARNING
|
||||||
|
handlers: stderr
|
||||||
|
qualname: amqp
|
||||||
|
logger_amqplib:
|
||||||
|
level: WARNING
|
||||||
|
handlers: stderr
|
||||||
|
qualname: amqplib
|
||||||
|
logger_eventletwsgi:
|
||||||
|
level: WARNING
|
||||||
|
handlers: stderr
|
||||||
|
qualname: eventlet.wsgi.server
|
||||||
|
logger_sqlalchemy:
|
||||||
|
level: WARNING
|
||||||
|
handlers: stderr
|
||||||
|
qualname: sqlalchemy
|
||||||
|
logger_boto:
|
||||||
|
level: WARNING
|
||||||
|
handlers: stderr
|
||||||
|
qualname: boto
|
||||||
|
handler_null:
|
||||||
|
class: logging.NullHandler
|
||||||
|
formatter: default
|
||||||
|
args: ()
|
||||||
|
handler_stdout:
|
||||||
|
class: StreamHandler
|
||||||
|
args: (sys.stdout,)
|
||||||
|
formatter: context
|
||||||
|
handler_stderr:
|
||||||
|
class: StreamHandler
|
||||||
|
args: (sys.stderr,)
|
||||||
|
formatter: context
|
||||||
|
formatter_context:
|
||||||
|
class: oslo_log.formatters.ContextFormatter
|
||||||
|
formatter_default:
|
||||||
|
format: "%(message)s"
|
||||||
|
rabbitmq:
|
||||||
|
#NOTE(rk760n): adding rmq policy to mirror messages from notification queues and set expiration time for the ones
|
||||||
|
policies:
|
||||||
|
- vhost: "octavia"
|
||||||
|
name: "ha_ttl_octavia"
|
||||||
|
definition:
|
||||||
|
#mirror messges to other nodes in rmq cluster
|
||||||
|
ha-mode: "all"
|
||||||
|
ha-sync-mode: "automatic"
|
||||||
|
#70s
|
||||||
|
message-ttl: 70000
|
||||||
|
priority: 0
|
||||||
|
apply-to: all
|
||||||
|
pattern: '(notifications)\.'
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
identity:
|
||||||
|
admin: octavia-keystone-admin
|
||||||
|
octavia: octavia-keystone-user
|
||||||
|
test: octavia-keystone-test
|
||||||
|
oslo_db:
|
||||||
|
admin: octavia-db-admin
|
||||||
|
octavia: octavia-db-user
|
||||||
|
oslo_messaging:
|
||||||
|
admin: octavia-rabbitmq-admin
|
||||||
|
octavia: octavia-rabbitmq-user
|
||||||
|
tls:
|
||||||
|
load_balancer:
|
||||||
|
api:
|
||||||
|
public: octavia-tls-public
|
||||||
|
|
||||||
|
endpoints:
|
||||||
|
cluster_domain_suffix: cluster.local
|
||||||
|
local_image_registry:
|
||||||
|
name: docker-registry
|
||||||
|
namespace: docker-registry
|
||||||
|
hosts:
|
||||||
|
default: localhost
|
||||||
|
internal: docker-registry
|
||||||
|
node: localhost
|
||||||
|
host_fqdn_override:
|
||||||
|
default: null
|
||||||
|
port:
|
||||||
|
registry:
|
||||||
|
node: 5000
|
||||||
|
identity:
|
||||||
|
name: keystone
|
||||||
|
auth:
|
||||||
|
admin:
|
||||||
|
region_name: RegionOne
|
||||||
|
username: admin
|
||||||
|
password: password
|
||||||
|
project_name: admin
|
||||||
|
user_domain_name: default
|
||||||
|
project_domain_name: default
|
||||||
|
octavia:
|
||||||
|
role: admin
|
||||||
|
region_name: RegionOne
|
||||||
|
username: octavia
|
||||||
|
password: password
|
||||||
|
project_name: service
|
||||||
|
user_domain_name: service
|
||||||
|
project_domain_name: service
|
||||||
|
test:
|
||||||
|
role: admin
|
||||||
|
region_name: RegionOne
|
||||||
|
username: test
|
||||||
|
password: password
|
||||||
|
project_name: test
|
||||||
|
user_domain_name: service
|
||||||
|
project_domain_name: service
|
||||||
|
hosts:
|
||||||
|
default: keystone
|
||||||
|
internal: keystone-api
|
||||||
|
host_fqdn_override:
|
||||||
|
default: null
|
||||||
|
path:
|
||||||
|
default: /v3
|
||||||
|
scheme:
|
||||||
|
default: 'http'
|
||||||
|
port:
|
||||||
|
api:
|
||||||
|
default: 80
|
||||||
|
internal: 5000
|
||||||
|
load_balancer:
|
||||||
|
name: octavia
|
||||||
|
hosts:
|
||||||
|
default: octavia-api
|
||||||
|
public: octavia
|
||||||
|
host_fqdn_override:
|
||||||
|
default: null
|
||||||
|
path:
|
||||||
|
default: null
|
||||||
|
scheme:
|
||||||
|
default: http
|
||||||
|
port:
|
||||||
|
api:
|
||||||
|
default: 9876
|
||||||
|
public: 80
|
||||||
|
oslo_db:
|
||||||
|
auth:
|
||||||
|
admin:
|
||||||
|
username: root
|
||||||
|
password: password
|
||||||
|
octavia:
|
||||||
|
username: octavia
|
||||||
|
password: password
|
||||||
|
hosts:
|
||||||
|
default: mariadb
|
||||||
|
host_fqdn_override:
|
||||||
|
default: null
|
||||||
|
path: /octavia
|
||||||
|
scheme: mysql+pymysql
|
||||||
|
port:
|
||||||
|
mysql:
|
||||||
|
default: 3306
|
||||||
|
oslo_cache:
|
||||||
|
auth:
|
||||||
|
# NOTE(portdirect): this is used to define the value for keystone
|
||||||
|
# authtoken cache encryption key, if not set it will be populated
|
||||||
|
# automatically with a random value, but to take advantage of
|
||||||
|
# this feature all services should be set to use the same key,
|
||||||
|
# and memcache service.
|
||||||
|
memcache_secret_key: null
|
||||||
|
hosts:
|
||||||
|
default: memcached
|
||||||
|
host_fqdn_override:
|
||||||
|
default: null
|
||||||
|
port:
|
||||||
|
memcache:
|
||||||
|
default: 11211
|
||||||
|
oslo_messaging:
|
||||||
|
auth:
|
||||||
|
admin:
|
||||||
|
username: rabbitmq
|
||||||
|
password: password
|
||||||
|
octavia:
|
||||||
|
username: octavia
|
||||||
|
password: password
|
||||||
|
hosts:
|
||||||
|
default: rabbitmq
|
||||||
|
host_fqdn_override:
|
||||||
|
default: null
|
||||||
|
path: /octavia
|
||||||
|
scheme: rabbit
|
||||||
|
port:
|
||||||
|
amqp:
|
||||||
|
default: 5672
|
||||||
|
http:
|
||||||
|
default: 15672
|
||||||
|
network:
|
||||||
|
name: neutron
|
||||||
|
hosts:
|
||||||
|
default: neutron-server
|
||||||
|
public: neutron
|
||||||
|
host_fqdn_override:
|
||||||
|
default: null
|
||||||
|
path:
|
||||||
|
default: null
|
||||||
|
scheme:
|
||||||
|
default: 'http'
|
||||||
|
port:
|
||||||
|
api:
|
||||||
|
default: 9696
|
||||||
|
public: 80
|
||||||
|
|
||||||
|
pod:
|
||||||
|
user:
|
||||||
|
octavia:
|
||||||
|
uid: 42424
|
||||||
|
affinity:
|
||||||
|
anti:
|
||||||
|
type:
|
||||||
|
default: preferredDuringSchedulingIgnoredDuringExecution
|
||||||
|
topologyKey:
|
||||||
|
default: kubernetes.io/hostname
|
||||||
|
mounts:
|
||||||
|
octavia_api:
|
||||||
|
init_container: null
|
||||||
|
octavia_api:
|
||||||
|
volumeMounts:
|
||||||
|
volumes:
|
||||||
|
octavia_worker:
|
||||||
|
init_container: null
|
||||||
|
octavia_worker:
|
||||||
|
volumeMounts:
|
||||||
|
volumes:
|
||||||
|
octavia_housekeeping:
|
||||||
|
init_container: null
|
||||||
|
octavia_housekeeping:
|
||||||
|
volumeMounts:
|
||||||
|
volumes:
|
||||||
|
octavia_health_manager:
|
||||||
|
init_container: null
|
||||||
|
octavia_health_manager:
|
||||||
|
volumeMounts:
|
||||||
|
volumes:
|
||||||
|
octavia_bootstrap:
|
||||||
|
init_container: null
|
||||||
|
octavia_bootstrap:
|
||||||
|
volumeMounts:
|
||||||
|
volumes:
|
||||||
|
replicas:
|
||||||
|
api: 1
|
||||||
|
worker: 1
|
||||||
|
housekeeping: 1
|
||||||
|
lifecycle:
|
||||||
|
upgrades:
|
||||||
|
deployments:
|
||||||
|
revision_history: 3
|
||||||
|
pod_replacement_strategy: RollingUpdate
|
||||||
|
rolling_update:
|
||||||
|
max_unavailable: 1
|
||||||
|
max_surge: 3
|
||||||
|
daemonsets:
|
||||||
|
pod_replacement_strategy: RollingUpdate
|
||||||
|
health_manager:
|
||||||
|
enabled: true
|
||||||
|
min_ready_seconds: 0
|
||||||
|
max_unavailable: 1
|
||||||
|
disruption_budget:
|
||||||
|
api:
|
||||||
|
min_available: 0
|
||||||
|
termination_grace_period:
|
||||||
|
api:
|
||||||
|
timeout: 30
|
||||||
|
resources:
|
||||||
|
enabled: false
|
||||||
|
api:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
worker:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
housekeeping:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
health_manager:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
jobs:
|
||||||
|
bootstrap:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
rabbit_init:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
db_init:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
db_sync:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
db_drop:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
ks_endpoints:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
ks_service:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
ks_user:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
tests:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
image_repo_sync:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
|
|
||||||
|
network_policy:
|
||||||
|
octavia:
|
||||||
|
ingress:
|
||||||
|
- {}
|
||||||
|
|
||||||
|
manifests:
|
||||||
|
configmap_bin: true
|
||||||
|
configmap_etc: true
|
||||||
|
daemonset_health_manager: true
|
||||||
|
deployment_api: true
|
||||||
|
deployment_worker: true
|
||||||
|
deployment_housekeeping: true
|
||||||
|
ingress_api: true
|
||||||
|
job_bootstrap: true
|
||||||
|
job_db_init: true
|
||||||
|
job_db_sync: true
|
||||||
|
job_db_drop: false
|
||||||
|
job_image_repo_sync: true
|
||||||
|
job_rabbit_init: true
|
||||||
|
job_ks_endpoints: true
|
||||||
|
job_ks_service: true
|
||||||
|
job_ks_user: true
|
||||||
|
pdb_api: true
|
||||||
|
pod_rally_test: false
|
||||||
|
network_policy: false
|
||||||
|
secret_credential_keys: true
|
||||||
|
secret_db: true
|
||||||
|
secret_ingress_tls: true
|
||||||
|
secret_keystone: true
|
||||||
|
secret_rabbitmq: true
|
||||||
|
service_ingress_api: true
|
||||||
|
service_api: true
|
@ -0,0 +1 @@
|
|||||||
|
../common/180-create-resource-for-octavia.sh
|
1
tools/deployment/developer/ceph/190-create-octavia-certs.sh
Symbolic link
1
tools/deployment/developer/ceph/190-create-octavia-certs.sh
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../common/190-create-octavia-certs.sh
|
1
tools/deployment/developer/ceph/200-octavia.sh
Symbolic link
1
tools/deployment/developer/ceph/200-octavia.sh
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../common/200-octavia.sh
|
84
tools/deployment/developer/common/180-create-resource-for-octavia.sh
Executable file
84
tools/deployment/developer/common/180-create-resource-for-octavia.sh
Executable file
@ -0,0 +1,84 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
export OS_CLOUD=openstack_helm
|
||||||
|
|
||||||
|
: ${OSH_LB_SUBNET:="172.31.0.0/24"}
|
||||||
|
: ${OSH_LB_SUBNET_START:="172.31.0.2"}
|
||||||
|
: ${OSH_LB_SUBNET_END="172.31.0.200"}
|
||||||
|
: ${OSH_LB_AMPHORA_IMAGE_NAME:="amphora-x64-haproxy"}
|
||||||
|
: ${OSH_AMPHORA_IMAGE_FILE_PATH:=""}
|
||||||
|
|
||||||
|
sudo pip install python-octaviaclient==1.6.0
|
||||||
|
|
||||||
|
# NOTE(hagun.kim): These resources are required to use Octavia service.
|
||||||
|
|
||||||
|
# Create Octavia management network and its security group
|
||||||
|
openstack network create lb-mgmt-net -f value -c id
|
||||||
|
openstack subnet create --subnet-range $OSH_LB_SUBNET --allocation-pool start=$OSH_LB_SUBNET_START,end=$OSH_LB_SUBNET_END --network lb-mgmt-net lb-mgmt-subnet -f value -c id
|
||||||
|
openstack security group create lb-mgmt-sec-grp
|
||||||
|
openstack security group rule create --protocol icmp lb-mgmt-sec-grp
|
||||||
|
openstack security group rule create --protocol tcp --dst-port 22 lb-mgmt-sec-grp
|
||||||
|
openstack security group rule create --protocol tcp --dst-port 9443 lb-mgmt-sec-grp
|
||||||
|
|
||||||
|
# Create security group for Octavia health manager
|
||||||
|
openstack security group create lb-health-mgr-sec-grp
|
||||||
|
openstack security group rule create --protocol udp --dst-port 5555 lb-health-mgr-sec-grp
|
||||||
|
|
||||||
|
# Create ports for health manager (octavia-health-manager-port-{KUBE_NODE_NAME})
|
||||||
|
# octavia-health-manager pod will be run on each controller node as daemonset.
|
||||||
|
# The pod will create o-hm0 NIC to each controller node.
|
||||||
|
# Each o-hm0 NIC uses the IP of these ports.
|
||||||
|
CONTROLLER_IP_PORT_LIST=''
|
||||||
|
CTRLS=$(kubectl get nodes -l openstack-control-plane=enabled -o name | awk -F"/" '{print $2}')
|
||||||
|
for node in $CTRLS
|
||||||
|
do
|
||||||
|
PORTNAME=octavia-health-manager-port-$node
|
||||||
|
openstack port create --security-group lb-health-mgr-sec-grp --device-owner Octavia:health-mgr --host=$node -c id -f value --network lb-mgmt-net $PORTNAME
|
||||||
|
IP=$(openstack port show $PORTNAME -c fixed_ips -f value | awk -F',' '{print $1}' | awk -F'=' '{print $2}' | tr -d \')
|
||||||
|
if [ -z $CONTROLLER_IP_PORT_LIST ]; then
|
||||||
|
CONTROLLER_IP_PORT_LIST=$IP:5555
|
||||||
|
else
|
||||||
|
CONTROLLER_IP_PORT_LIST=$CONTROLLER_IP_PORT_LIST,$IP:5555
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Each health manager information should be passed into octavia configuration.
|
||||||
|
echo $CONTROLLER_IP_PORT_LIST > /tmp/octavia_hm_controller_ip_port_list
|
||||||
|
|
||||||
|
# Create a flavor for amphora instance
|
||||||
|
openstack flavor create --id auto --ram 1024 --disk 2 --vcpus 1 --private m1.amphora
|
||||||
|
|
||||||
|
# Create key pair to connect amphora instance via management network
|
||||||
|
ssh-keygen -b 2048 -t rsa -N '' -f ~/.ssh/octavia_ssh_key
|
||||||
|
openstack keypair create --public-key ~/.ssh/octavia_ssh_key.pub octavia_ssh_key
|
||||||
|
|
||||||
|
# Create amphora image from file. Default is https://tarballs.openstack.org/octavia/test-images/
|
||||||
|
if [ "$OSH_AMPHORA_IMAGE_FILE_PATH" == "" ]; then
|
||||||
|
curl https://tarballs.openstack.org/octavia/test-images/test-only-amphora-x64-haproxy-ubuntu-xenial.qcow2 \
|
||||||
|
-o /tmp/test-only-amphora-x64-haproxy-ubuntu-xenial.qcow2
|
||||||
|
|
||||||
|
OSH_AMPHORA_IMAGE_FILE_PATH=/tmp/test-only-amphora-x64-haproxy-ubuntu-xenial.qcow2
|
||||||
|
fi
|
||||||
|
|
||||||
|
OSH_AMPHORA_IMAGE_ID=$(openstack image create -f value -c id \
|
||||||
|
--public \
|
||||||
|
--container-format=bare \
|
||||||
|
--disk-format qcow2 < $OSH_AMPHORA_IMAGE_FILE_PATH \
|
||||||
|
$OSH_LB_AMPHORA_IMAGE_NAME)
|
||||||
|
openstack image set --tag amphora $OSH_AMPHORA_IMAGE_ID
|
49
tools/deployment/developer/common/190-create-octavia-certs.sh
Executable file
49
tools/deployment/developer/common/190-create-octavia-certs.sh
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
function trim_data() {
|
||||||
|
local data_path=$1
|
||||||
|
cat $data_path | base64 -w0 | tr -d '\n'
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_secret() {
|
||||||
|
{
|
||||||
|
cat <<EOF
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: octavia-certs
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
ca_01.pem: $(trim_data /tmp/octavia_certs/ca_01.pem)
|
||||||
|
cakey.pem: $(trim_data /tmp/octavia_certs/private/cakey.pem)
|
||||||
|
client.pem: $(trim_data /tmp/octavia_certs/client.pem)
|
||||||
|
EOF
|
||||||
|
}| kubectl apply --namespace openstack -f -
|
||||||
|
}
|
||||||
|
|
||||||
|
rm -rf /tmp/octavia
|
||||||
|
git clone https://github.com/openstack/octavia.git /tmp/octavia
|
||||||
|
|
||||||
|
cd /tmp/octavia/bin
|
||||||
|
|
||||||
|
rm -rf /tmp/octavia_certs
|
||||||
|
./create_certificates.sh /tmp/octavia_certs /tmp/octavia/etc/certificates/openssl.cnf
|
||||||
|
|
||||||
|
create_secret
|
123
tools/deployment/developer/common/200-octavia.sh
Executable file
123
tools/deployment/developer/common/200-octavia.sh
Executable file
@ -0,0 +1,123 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2019 Samsung Electronics Co., Ltd.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
#NOTE: Lint and package chart
|
||||||
|
make octavia
|
||||||
|
export OS_CLOUD=openstack_helm
|
||||||
|
|
||||||
|
: ${OSH_LB_AMPHORA_IMAGE_NAME:="amphora-x64-haproxy"}
|
||||||
|
: ${OSH_LB_HM_HOST_PORT:="5555"}
|
||||||
|
|
||||||
|
#NOTE: Deploy command
|
||||||
|
: ${OSH_EXTRA_HELM_ARGS:=""}
|
||||||
|
tee /tmp/octavia.yaml <<EOF
|
||||||
|
pod:
|
||||||
|
mounts:
|
||||||
|
octavia_api:
|
||||||
|
octavia_api:
|
||||||
|
volumeMounts:
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/private/cakey.pem
|
||||||
|
subPath: cakey.pem
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/ca_01.pem
|
||||||
|
subPath: ca_01.pem
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/client.pem
|
||||||
|
subPath: client.pem
|
||||||
|
volumes:
|
||||||
|
- name: octavia-certs
|
||||||
|
secret:
|
||||||
|
secretName: octavia-certs
|
||||||
|
defaultMode: 0644
|
||||||
|
octavia_worker:
|
||||||
|
octavia_worker:
|
||||||
|
volumeMounts:
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/private/cakey.pem
|
||||||
|
subPath: cakey.pem
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/ca_01.pem
|
||||||
|
subPath: ca_01.pem
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/client.pem
|
||||||
|
subPath: client.pem
|
||||||
|
volumes:
|
||||||
|
- name: octavia-certs
|
||||||
|
secret:
|
||||||
|
secretName: octavia-certs
|
||||||
|
defaultMode: 0644
|
||||||
|
octavia_housekeeping:
|
||||||
|
octavia_housekeeping:
|
||||||
|
volumeMounts:
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/private/cakey.pem
|
||||||
|
subPath: cakey.pem
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/ca_01.pem
|
||||||
|
subPath: ca_01.pem
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/client.pem
|
||||||
|
subPath: client.pem
|
||||||
|
volumes:
|
||||||
|
- name: octavia-certs
|
||||||
|
secret:
|
||||||
|
secretName: octavia-certs
|
||||||
|
defaultMode: 0644
|
||||||
|
octavia_health_manager:
|
||||||
|
octavia_health_manager:
|
||||||
|
volumeMounts:
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/private/cakey.pem
|
||||||
|
subPath: cakey.pem
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/ca_01.pem
|
||||||
|
subPath: ca_01.pem
|
||||||
|
- name: octavia-certs
|
||||||
|
mountPath: /etc/octavia/certs/client.pem
|
||||||
|
subPath: client.pem
|
||||||
|
volumes:
|
||||||
|
- name: octavia-certs
|
||||||
|
secret:
|
||||||
|
secretName: octavia-certs
|
||||||
|
defaultMode: 0644
|
||||||
|
conf:
|
||||||
|
octavia:
|
||||||
|
controller_worker:
|
||||||
|
amp_image_owner_id: $(openstack image show $OSH_LB_AMPHORA_IMAGE_NAME -f value -c owner)
|
||||||
|
amp_secgroup_list: $(openstack security group list -f value | grep lb-mgmt-sec-grp | awk '{print $1}')
|
||||||
|
amp_flavor_id: $(openstack flavor show m1.amphora -f value -c id)
|
||||||
|
amp_boot_network_list: $(openstack network list --name lb-mgmt-net -f value -c ID)
|
||||||
|
health_manager:
|
||||||
|
bind_port: $OSH_LB_HM_HOST_PORT
|
||||||
|
bind_ip: 0.0.0.0
|
||||||
|
controller_ip_port_list: $(cat /tmp/octavia_hm_controller_ip_port_list)
|
||||||
|
EOF
|
||||||
|
helm upgrade --install octavia ./octavia \
|
||||||
|
--namespace=openstack \
|
||||||
|
--values=/tmp/octavia.yaml \
|
||||||
|
${OSH_EXTRA_HELM_ARGS} \
|
||||||
|
${OSH_EXTRA_HELM_ARGS_OCTAVIA}
|
||||||
|
|
||||||
|
#NOTE: Wait for deploy
|
||||||
|
./tools/deployment/common/wait-for-pods.sh openstack
|
||||||
|
|
||||||
|
#NOTE: Validate Deployment info
|
||||||
|
export OS_CLOUD=openstack_helm
|
||||||
|
openstack service list
|
||||||
|
sleep 30 #NOTE(portdirect): Wait for ingress controller to update rules and restart Nginx
|
@ -0,0 +1 @@
|
|||||||
|
../common/180-create-resource-for-octavia.sh
|
1
tools/deployment/developer/nfs/190-create-octavia-certs.sh
Symbolic link
1
tools/deployment/developer/nfs/190-create-octavia-certs.sh
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../common/190-create-octavia-certs.sh
|
1
tools/deployment/developer/nfs/200-octavia.sh
Symbolic link
1
tools/deployment/developer/nfs/200-octavia.sh
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../common/200-octavia.sh
|
Loading…
Reference in New Issue
Block a user