Helm replaces (rather than merges) list values when several --values
files are combined, so two overrides files that both define
extraObjects as a list silently drop each other's objects: only the
last file takes effect. Rendering cinder with gateway.yaml and
mariadb-operator.yaml together, for instance, quietly lost the
HTTPRoute.
Change the default of .Values.extraObjects from [] to {} in all charts
and document the trap in the values comment and in the install docs.
The extra-manifests.yaml template needs no change since range iterates
map values too, so both forms keep working and existing deployments
passing a list of manifests are unaffected.
Convert every values_overrides file to the map form as well, using keys
derived from the manifest kind and name so they stay unique per chart.
The overrides otherwise keep their current layout: each of gateway.yaml,
gateway-tls.yaml and tls-gateway-and-sidecar.yaml remains a complete,
self-contained example of exposing a service via the Gateway API with no
TLS, with TLS terminated at the gateway, and with TLS terminated in the
pods respectively.
Verified by rendering every chart with each of its overrides before and
after: the output is unchanged apart from two pre-existing sources of
non-determinism unrelated to this change (the unsorted sprig "keys" call
in the nagios chart and randomly generated secrets).
Signed-off-by: Vladimir Kozhukalov <kozhukalov@gmail.com>
Change-Id: Ie6bd3df6751eee4448a7b1bdc377cf07a134eda4
2759 lines
81 KiB
YAML
2759 lines
81 KiB
YAML
# 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 nova.
|
|
# This is a YAML-formatted file.
|
|
# Declare name/value pairs to be passed into your templates.
|
|
# name: value
|
|
|
|
---
|
|
release_group: null
|
|
|
|
labels:
|
|
agent:
|
|
compute:
|
|
node_selector_key: openstack-compute-node
|
|
node_selector_value: enabled
|
|
compute_ironic:
|
|
node_selector_key: openstack-compute-node
|
|
node_selector_value: enabled
|
|
api_metadata:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
conductor:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
job:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
novncproxy:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
osapi:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
scheduler:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
serialproxy:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
spiceproxy:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
test:
|
|
node_selector_key: openstack-control-plane
|
|
node_selector_value: enabled
|
|
|
|
images:
|
|
pull_policy: IfNotPresent
|
|
tags:
|
|
bootstrap: quay.io/airshipit/openstack-client:2026.1-ubuntu_noble
|
|
db_drop: quay.io/airshipit/openstack-client:2026.1-ubuntu_noble
|
|
db_init: quay.io/airshipit/openstack-client:2026.1-ubuntu_noble
|
|
dep_check: quay.io/airshipit/kubernetes-entrypoint:latest-ubuntu_noble
|
|
rabbit_init: docker.io/rabbitmq:3.13-management
|
|
ks_user: quay.io/airshipit/openstack-client:2026.1-ubuntu_noble
|
|
ks_service: quay.io/airshipit/openstack-client:2026.1-ubuntu_noble
|
|
nova_archive_deleted_rows: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
ks_endpoints: quay.io/airshipit/openstack-client:2026.1-ubuntu_noble
|
|
nova_api: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_cell_setup: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_cell_setup_init: quay.io/airshipit/openstack-client:2026.1-ubuntu_noble
|
|
nova_compute: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_compute_ironic: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_compute_ssh: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_conductor: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_db_sync: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_novncproxy: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_novncproxy_assets: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_scheduler: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_storage_init: quay.io/airshipit/ceph-config-helper:latest-ubuntu_jammy
|
|
# NOTE(portdirect): we simply use the ceph config helper here,
|
|
# as it has both oscli and jq.
|
|
nova_service_cleaner: quay.io/airshipit/ceph-config-helper:latest-ubuntu_jammy
|
|
nova_serialproxy: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_spiceproxy: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
nova_spiceproxy_assets: quay.io/airshipit/nova:2026.1-ubuntu_noble
|
|
test: docker.io/xrally/xrally-openstack:2.0.0
|
|
image_repo_sync: docker.io/docker:17.07.0
|
|
nova_wait_for_computes_init: quay.io/airshipit/ceph-config-helper:latest-ubuntu_jammy
|
|
local_registry:
|
|
active: false
|
|
exclude:
|
|
- dep_check
|
|
- image_repo_sync
|
|
|
|
jobs:
|
|
# NOTE(portdirect): When using cells new nodes will be added to the cell on the hour by default.
|
|
# TODO(portdirect): Add a post-start action to nova compute pods that registers themselves.
|
|
cell_setup:
|
|
cron: "0 */1 * * *"
|
|
starting_deadline: 600
|
|
history:
|
|
success: 3
|
|
failed: 1
|
|
extended_wait:
|
|
enabled: false
|
|
iteration: 3
|
|
duration: 5
|
|
extra_command: null
|
|
service_cleaner:
|
|
cron: "0 */1 * * *"
|
|
starting_deadline: 600
|
|
history:
|
|
success: 3
|
|
failed: 1
|
|
sleep_time: 60
|
|
extra_command: null
|
|
archive_deleted_rows:
|
|
cron: "0 */1 * * *"
|
|
starting_deadline: 600
|
|
history:
|
|
success: 3
|
|
failed: 1
|
|
|
|
bootstrap:
|
|
enabled: true
|
|
ks_user: admin
|
|
script: null
|
|
structured:
|
|
flavors:
|
|
enabled: true
|
|
options:
|
|
m1_tiny:
|
|
name: "m1.tiny"
|
|
ram: 512
|
|
disk: 1
|
|
vcpus: 1
|
|
m1_small:
|
|
name: "m1.small"
|
|
ram: 2048
|
|
disk: 20
|
|
vcpus: 1
|
|
m1_medium:
|
|
name: "m1.medium"
|
|
ram: 4096
|
|
disk: 40
|
|
vcpus: 2
|
|
m1_large:
|
|
name: "m1.large"
|
|
ram: 8192
|
|
disk: 80
|
|
vcpus: 4
|
|
m1_xlarge:
|
|
name: "m1.xlarge"
|
|
ram: 16384
|
|
disk: 160
|
|
vcpus: 8
|
|
wait_for_computes:
|
|
enabled: false
|
|
# Wait percentage is the minimum percentage of compute hypervisors which
|
|
# must be available before the remainder of the bootstrap script can be run.
|
|
wait_percentage: 70
|
|
# Once the wait_percentage above is achieved, the remaining_wait is the
|
|
# amount of time in seconds to wait before executing the remainder of the
|
|
# boostrap script.
|
|
remaining_wait: 300
|
|
scripts:
|
|
init_script: |
|
|
# This runs in a bootstrap init container. It counts the number of compute nodes.
|
|
COMPUTE_NODES=$(kubectl get nodes -o custom-columns=NAME:.metadata.name -l openstack-compute-node=enabled --no-headers | sort)
|
|
/bin/echo $COMPUTE_NODES > /tmp/compute_nodes.txt
|
|
wait_script: |
|
|
# This script runs in the main bootstrap container just before the
|
|
# bootstrap.script is called.
|
|
COMPUTE_HOSTS=`cat /tmp/compute_nodes.txt | wc -w`
|
|
if [[ $COMPUTE_HOSTS == 0 ]]; then
|
|
echo "There are no compute hosts found!"
|
|
exit 1
|
|
fi
|
|
|
|
# Wait for all hypervisors to come up before moving on with the deployment
|
|
HYPERVISOR_WAIT=true
|
|
WAIT_AFTER_READY=0
|
|
SLEEP=5
|
|
while [[ $HYPERVISOR_WAIT == true ]]; do
|
|
date '+%Y-%m-%d %H:%M:%S.%3N'
|
|
# Its possible that openstack command may fail due to not being able to
|
|
# reach the compute service
|
|
set +e
|
|
HYPERVISORS=$(openstack hypervisor list -f value -c 'Hypervisor Hostname' | wc -w)
|
|
set -e
|
|
|
|
PERCENT_READY=$(( $HYPERVISORS * 100 / $COMPUTE_HOSTS ))
|
|
if [[ $PERCENT_READY -ge $WAIT_PERCENTAGE ]]; then
|
|
echo "Hypervisor ready percentage is $PERCENT_READY"
|
|
if [[ $PERCENT_READY == 100 ]]; then
|
|
HYPERVISOR_WAIT=false
|
|
echo "All hypervisors are ready."
|
|
elif [[ $WAIT_AFTER_READY -ge $REMAINING_WAIT ]]; then
|
|
HYPERVISOR_WAIT=false
|
|
echo "Waited the configured time -- $HYPERVISORS out of $COMPUTE_HOSTS hypervisor(s) ready -- proceeding with the bootstrap."
|
|
else
|
|
sleep $SLEEP
|
|
WAIT_AFTER_READY=$(( $WAIT_AFTER_READY + $SLEEP ))
|
|
fi
|
|
else
|
|
echo "Waiting $SLEEP seconds for enough hypervisors to be discovered..."
|
|
sleep $SLEEP
|
|
fi
|
|
done
|
|
|
|
network:
|
|
# provide what type of network wiring will be used
|
|
# possible options: openvswitch, sriov
|
|
backend:
|
|
- openvswitch
|
|
osapi:
|
|
# Pod port the Service routes to; null => Kubernetes uses the Service port.
|
|
# A deployment override sets this (e.g. 443) to point at a TLS sidecar.
|
|
target_port: null
|
|
port: 8774
|
|
external_policy_local: false
|
|
node_port:
|
|
enabled: false
|
|
port: 30774
|
|
metadata:
|
|
# Pod port the Service routes to; null => Kubernetes uses the Service port.
|
|
# A deployment override sets this (e.g. 443) to point at a TLS sidecar.
|
|
target_port: null
|
|
port: 8775
|
|
external_policy_local: false
|
|
node_port:
|
|
enabled: false
|
|
port: 30775
|
|
novncproxy:
|
|
node_port:
|
|
enabled: false
|
|
port: 30680
|
|
serialproxy:
|
|
node_port:
|
|
enabled: false
|
|
port: 30683
|
|
spiceproxy:
|
|
node_port:
|
|
enabled: false
|
|
port: 30682
|
|
ssh:
|
|
enabled: false
|
|
port: 8022
|
|
from_subnet: 0.0.0.0/0
|
|
key_types:
|
|
- rsa
|
|
- dsa
|
|
- ecdsa
|
|
- ed25519
|
|
private_key: 'null'
|
|
public_key: 'null'
|
|
|
|
dependencies:
|
|
dynamic:
|
|
common:
|
|
local_image_registry:
|
|
jobs:
|
|
- nova-image-repo-sync
|
|
services:
|
|
- endpoint: node
|
|
service: local_image_registry
|
|
targeted:
|
|
ovn:
|
|
compute:
|
|
pod:
|
|
- requireSameNode: true
|
|
labels:
|
|
application: ovn
|
|
component: ovn-controller
|
|
openvswitch:
|
|
compute:
|
|
pod:
|
|
- requireSameNode: true
|
|
labels:
|
|
application: neutron
|
|
component: neutron-ovs-agent
|
|
sriov:
|
|
compute:
|
|
pod:
|
|
- requireSameNode: true
|
|
labels:
|
|
application: neutron
|
|
component: neutron-sriov-agent
|
|
static:
|
|
api:
|
|
jobs:
|
|
- nova-db-sync
|
|
- nova-ks-user
|
|
- nova-ks-endpoints
|
|
- nova-rabbit-init
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_messaging
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
- endpoint: internal
|
|
service: identity
|
|
api_metadata:
|
|
jobs:
|
|
- nova-db-sync
|
|
- nova-ks-user
|
|
- nova-ks-endpoints
|
|
- nova-rabbit-init
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_messaging
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
- endpoint: internal
|
|
service: identity
|
|
bootstrap:
|
|
jobs:
|
|
- nova-cell-setup
|
|
services:
|
|
- endpoint: internal
|
|
service: identity
|
|
- endpoint: internal
|
|
service: compute
|
|
cell_setup:
|
|
jobs:
|
|
- nova-db-sync
|
|
- nova-rabbit-init
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_messaging
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
- endpoint: internal
|
|
service: identity
|
|
- endpoint: internal
|
|
service: compute
|
|
pod:
|
|
- requireSameNode: false
|
|
labels:
|
|
application: nova
|
|
component: compute
|
|
service_cleaner:
|
|
jobs:
|
|
- nova-db-sync
|
|
- nova-rabbit-init
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_messaging
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
- endpoint: internal
|
|
service: identity
|
|
- endpoint: internal
|
|
service: compute
|
|
compute:
|
|
pod:
|
|
- requireSameNode: true
|
|
labels:
|
|
application: libvirt
|
|
component: libvirt
|
|
jobs:
|
|
- nova-db-sync
|
|
- nova-rabbit-init
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_messaging
|
|
- endpoint: internal
|
|
service: image
|
|
- endpoint: internal
|
|
service: compute
|
|
- endpoint: internal
|
|
service: network
|
|
- endpoint: internal
|
|
service: compute_metadata
|
|
compute_ironic:
|
|
jobs:
|
|
- nova-db-sync
|
|
- nova-rabbit-init
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_messaging
|
|
- endpoint: internal
|
|
service: image
|
|
- endpoint: internal
|
|
service: compute
|
|
- endpoint: internal
|
|
service: network
|
|
- endpoint: internal
|
|
service: baremetal
|
|
conductor:
|
|
jobs:
|
|
- nova-db-sync
|
|
- nova-rabbit-init
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_messaging
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
- endpoint: internal
|
|
service: identity
|
|
- endpoint: internal
|
|
service: compute
|
|
db_drop:
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
archive_deleted_rows:
|
|
jobs:
|
|
- nova-db-init
|
|
- nova-db-sync
|
|
db_init:
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
db_sync:
|
|
jobs:
|
|
- nova-db-init
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
ks_endpoints:
|
|
jobs:
|
|
- nova-ks-service
|
|
services:
|
|
- endpoint: internal
|
|
service: identity
|
|
ks_service:
|
|
services:
|
|
- endpoint: internal
|
|
service: identity
|
|
ks_user:
|
|
services:
|
|
- endpoint: internal
|
|
service: identity
|
|
rabbit_init:
|
|
services:
|
|
- service: oslo_messaging
|
|
endpoint: internal
|
|
novncproxy:
|
|
jobs:
|
|
- nova-db-sync
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
serialproxy:
|
|
jobs:
|
|
- nova-db-sync
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
spiceproxy:
|
|
jobs:
|
|
- nova-db-sync
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
scheduler:
|
|
jobs:
|
|
- nova-db-sync
|
|
- nova-rabbit-init
|
|
services:
|
|
- endpoint: internal
|
|
service: oslo_messaging
|
|
- endpoint: internal
|
|
service: oslo_db
|
|
- endpoint: internal
|
|
service: identity
|
|
- endpoint: internal
|
|
service: compute
|
|
tests:
|
|
services:
|
|
- endpoint: internal
|
|
service: image
|
|
- endpoint: internal
|
|
service: compute
|
|
- endpoint: internal
|
|
service: network
|
|
- endpoint: internal
|
|
service: compute_metadata
|
|
image_repo_sync:
|
|
services:
|
|
- endpoint: internal
|
|
service: local_image_registry
|
|
|
|
console:
|
|
# serial | spice | novnc | none
|
|
console_kind: novnc
|
|
serial:
|
|
compute:
|
|
# IF blank, search default routing interface
|
|
server_proxyclient_interface: null
|
|
# or set network cidr
|
|
server_proxyclient_network_cidr: 0/0
|
|
proxy:
|
|
# IF blank, search default routing interface
|
|
server_proxyclient_interface: null
|
|
# or set network cidr
|
|
server_proxyclient_network_cidr: 0/0
|
|
spice:
|
|
compute:
|
|
# IF blank, search default routing interface
|
|
server_proxyclient_interface: null
|
|
# or set network cidr
|
|
server_proxyclient_network_cidr: 0/0
|
|
proxy:
|
|
# IF blank, search default routing interface
|
|
server_proxyclient_interface: null
|
|
# or set network cidr
|
|
server_proxyclient_network_cidr: 0/0
|
|
novnc:
|
|
compute:
|
|
# IF blank, search default routing interface
|
|
vncserver_proxyclient_interface: null
|
|
# or set network cidr
|
|
vncserver_proxyclient_network_cidr: 0/0
|
|
vncproxy:
|
|
# IF blank, search default routing interface
|
|
vncserver_proxyclient_interface: null
|
|
# or set network cidr
|
|
vncserver_proxyclient_network_cidr: 0/0
|
|
address_search_enabled: true
|
|
|
|
ceph_client:
|
|
configmap: ceph-etc
|
|
user_secret_name: pvc-ceph-client-key
|
|
|
|
rbd_pool:
|
|
app_name: nova-vms
|
|
replication: 3
|
|
crush_rule: replicated_rule
|
|
chunk_size: 8
|
|
|
|
conf:
|
|
security: |
|
|
#
|
|
# Disable access to the entire file system except for the directories that
|
|
# are explicitly allowed later.
|
|
#
|
|
# This currently breaks the configurations that come with some web application
|
|
# Debian packages.
|
|
#
|
|
#<Directory />
|
|
# AllowOverride None
|
|
# Require all denied
|
|
#</Directory>
|
|
|
|
# Changing the following options will not really affect the security of the
|
|
# server, but might make attacks slightly more difficult in some cases.
|
|
|
|
#
|
|
# ServerTokens
|
|
# This directive configures what you return as the Server HTTP response
|
|
# Header. The default is 'Full' which sends information about the OS-Type
|
|
# and compiled in modules.
|
|
# Set to one of: Full | OS | Minimal | Minor | Major | Prod
|
|
# where Full conveys the most information, and Prod the least.
|
|
ServerTokens Prod
|
|
|
|
#
|
|
# Optionally add a line containing the server version and virtual host
|
|
# name to server-generated pages (internal error documents, FTP directory
|
|
# listings, mod_status and mod_info output etc., but not CGI generated
|
|
# documents or custom error documents).
|
|
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
|
|
# Set to one of: On | Off | EMail
|
|
ServerSignature Off
|
|
|
|
#
|
|
# Allow TRACE method
|
|
#
|
|
# Set to "extended" to also reflect the request body (only for testing and
|
|
# diagnostic purposes).
|
|
#
|
|
# Set to one of: On | Off | extended
|
|
TraceEnable Off
|
|
|
|
#
|
|
# Forbid access to version control directories
|
|
#
|
|
# If you use version control systems in your document root, you should
|
|
# probably deny access to their directories. For example, for subversion:
|
|
#
|
|
#<DirectoryMatch "/\.svn">
|
|
# Require all denied
|
|
#</DirectoryMatch>
|
|
|
|
#
|
|
# Setting this header will prevent MSIE from interpreting files as something
|
|
# else than declared by the content type in the HTTP headers.
|
|
# Requires mod_headers to be enabled.
|
|
#
|
|
#Header set X-Content-Type-Options: "nosniff"
|
|
|
|
#
|
|
# Setting this header will prevent other sites from embedding pages from this
|
|
# site as frames. This defends against clickjacking attacks.
|
|
# Requires mod_headers to be enabled.
|
|
#
|
|
#Header set X-Frame-Options: "sameorigin"
|
|
ceph:
|
|
enabled: true
|
|
admin_keyring: null
|
|
cinder:
|
|
user: "cinder"
|
|
keyring: null
|
|
secret_uuid: 457eb676-33da-42ec-9a8c-9293d545c337
|
|
rally_tests:
|
|
run_tempest: false
|
|
clean_up: |
|
|
FLAVORS=$(openstack flavor list -f value --all | awk '$2 ~ /^s_rally_/ { print $1 }')
|
|
if [ -n "$FLAVORS" ]; then
|
|
echo $FLAVORS | xargs openstack flavor delete
|
|
fi
|
|
SERVERS=$(openstack server list -f value --all | awk '$2 ~ /^s_rally_/ { print $1 }')
|
|
if [ -n "$SERVERS" ]; then
|
|
echo $SERVERS | xargs openstack server delete
|
|
fi
|
|
IMAGES=$(openstack image list -f value | awk '$2 ~ /^c_rally_/ { print $1 }')
|
|
if [ -n "$IMAGES" ]; then
|
|
echo $IMAGES | xargs openstack image delete
|
|
fi
|
|
tests:
|
|
NovaAggregates.create_and_get_aggregate_details:
|
|
- args:
|
|
availability_zone: nova
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaAggregates.create_and_update_aggregate:
|
|
- args:
|
|
availability_zone: nova
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaAggregates.list_aggregates:
|
|
- runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaAvailabilityZones.list_availability_zones:
|
|
- args:
|
|
detailed: true
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaFlavors.create_and_delete_flavor:
|
|
- args:
|
|
disk: 1
|
|
ram: 500
|
|
vcpus: 1
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaFlavors.create_and_list_flavor_access:
|
|
- args:
|
|
disk: 1
|
|
ram: 500
|
|
vcpus: 1
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaFlavors.create_flavor:
|
|
- args:
|
|
disk: 1
|
|
ram: 500
|
|
vcpus: 1
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaFlavors.create_flavor_and_add_tenant_access:
|
|
- args:
|
|
disk: 1
|
|
ram: 500
|
|
vcpus: 1
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaFlavors.create_flavor_and_set_keys:
|
|
- args:
|
|
disk: 1
|
|
extra_specs:
|
|
'quota:disk_read_bytes_sec': 10240
|
|
ram: 500
|
|
vcpus: 1
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaFlavors.list_flavors:
|
|
- args:
|
|
detailed: true
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaHypervisors.list_and_get_hypervisors:
|
|
- args:
|
|
detailed: true
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaHypervisors.list_and_get_uptime_hypervisors:
|
|
- args:
|
|
detailed: true
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaHypervisors.list_and_search_hypervisors:
|
|
- args:
|
|
detailed: true
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaHypervisors.list_hypervisors:
|
|
- args:
|
|
detailed: true
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaHypervisors.statistics_hypervisors:
|
|
- args: {}
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaKeypair.create_and_delete_keypair:
|
|
- runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaKeypair.create_and_list_keypairs:
|
|
- runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaServerGroups.create_and_list_server_groups:
|
|
- args:
|
|
all_projects: false
|
|
kwargs:
|
|
policies:
|
|
- affinity
|
|
runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
NovaServices.list_services:
|
|
- runner:
|
|
concurrency: 1
|
|
times: 1
|
|
type: constant
|
|
sla:
|
|
failure_rate:
|
|
max: 0
|
|
paste:
|
|
composite:metadata:
|
|
use: egg:Paste#urlmap
|
|
/: meta
|
|
pipeline:meta:
|
|
pipeline: cors metaapp
|
|
app:metaapp:
|
|
paste.app_factory: nova.api.metadata.handler:MetadataRequestHandler.factory
|
|
composite:osapi_compute:
|
|
use: call:nova.api.openstack.urlmap:urlmap_factory
|
|
/: oscomputeversions
|
|
/v2: openstack_compute_api_v21_legacy_v2_compatible
|
|
/v2.1: openstack_compute_api_v21
|
|
composite:openstack_compute_api_v21:
|
|
use: call:nova.api.auth:pipeline_factory_v21
|
|
noauth2: cors http_proxy_to_wsgi compute_req_id faultwrap sizelimit noauth2 osapi_compute_app_v21
|
|
keystone: cors http_proxy_to_wsgi compute_req_id faultwrap sizelimit authtoken audit keystonecontext osapi_compute_app_v21
|
|
composite:openstack_compute_api_v21_legacy_v2_compatible:
|
|
use: call:nova.api.auth:pipeline_factory_v21
|
|
noauth2: cors http_proxy_to_wsgi compute_req_id faultwrap sizelimit noauth2 legacy_v2_compatible osapi_compute_app_v21
|
|
keystone: cors http_proxy_to_wsgi compute_req_id faultwrap sizelimit authtoken audit keystonecontext legacy_v2_compatible osapi_compute_app_v21
|
|
filter:request_id:
|
|
paste.filter_factory: oslo_middleware:RequestId.factory
|
|
filter:compute_req_id:
|
|
paste.filter_factory: nova.api.compute_req_id:ComputeReqIdMiddleware.factory
|
|
filter:faultwrap:
|
|
paste.filter_factory: nova.api.openstack:FaultWrapper.factory
|
|
filter:noauth2:
|
|
paste.filter_factory: nova.api.openstack.auth:NoAuthMiddleware.factory
|
|
filter:sizelimit:
|
|
paste.filter_factory: oslo_middleware:RequestBodySizeLimiter.factory
|
|
filter:http_proxy_to_wsgi:
|
|
paste.filter_factory: oslo_middleware.http_proxy_to_wsgi:HTTPProxyToWSGI.factory
|
|
filter:legacy_v2_compatible:
|
|
paste.filter_factory: nova.api.openstack:LegacyV2CompatibleWrapper.factory
|
|
app:osapi_compute_app_v21:
|
|
paste.app_factory: nova.api.openstack.compute:APIRouterV21.factory
|
|
pipeline:oscomputeversions:
|
|
pipeline: faultwrap http_proxy_to_wsgi oscomputeversionapp
|
|
app:oscomputeversionapp:
|
|
paste.app_factory: nova.api.openstack.compute.versions:Versions.factory
|
|
filter:cors:
|
|
paste.filter_factory: oslo_middleware.cors:filter_factory
|
|
oslo_config_project: nova
|
|
filter:keystonecontext:
|
|
paste.filter_factory: nova.api.auth:NovaKeystoneContext.factory
|
|
filter:authtoken:
|
|
paste.filter_factory: keystonemiddleware.auth_token:filter_factory
|
|
filter:audit:
|
|
paste.filter_factory: keystonemiddleware.audit:filter_factory
|
|
audit_map_file: /etc/nova/api_audit_map.conf
|
|
policy: {}
|
|
nova_sudoers: |
|
|
# This sudoers file supports rootwrap for both Kolla and LOCI Images.
|
|
Defaults !requiretty
|
|
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/var/lib/openstack/bin:/var/lib/kolla/venv/bin"
|
|
nova ALL = (root) NOPASSWD: /var/lib/kolla/venv/bin/nova-rootwrap /etc/nova/rootwrap.conf *, /var/lib/openstack/bin/nova-rootwrap /etc/nova/rootwrap.conf *
|
|
api_audit_map:
|
|
DEFAULT:
|
|
target_endpoint_type: None
|
|
custom_actions:
|
|
enable: enable
|
|
disable: disable
|
|
delete: delete
|
|
startup: start/startup
|
|
shutdown: stop/shutdown
|
|
reboot: start/reboot
|
|
os-migrations/get: read
|
|
os-server-password/post: update
|
|
path_keywords:
|
|
add: None
|
|
action: None
|
|
enable: None
|
|
disable: None
|
|
configure-project: None
|
|
defaults: None
|
|
delete: None
|
|
detail: None
|
|
diagnostics: None
|
|
entries: entry
|
|
extensions: alias
|
|
flavors: flavor
|
|
images: image
|
|
ips: label
|
|
limits: None
|
|
metadata: key
|
|
os-agents: os-agent
|
|
os-aggregates: os-aggregate
|
|
os-availability-zone: None
|
|
os-certificates: None
|
|
os-cloudpipe: None
|
|
os-fixed-ips: ip
|
|
os-extra_specs: key
|
|
os-flavor-access: None
|
|
os-floating-ip-dns: domain
|
|
os-floating-ips-bulk: host
|
|
os-floating-ip-pools: None
|
|
os-floating-ips: floating-ip
|
|
os-hosts: host
|
|
os-hypervisors: hypervisor
|
|
os-instance-actions: instance-action
|
|
os-keypairs: keypair
|
|
os-migrations: None
|
|
os-networks: network
|
|
os-quota-sets: tenant
|
|
os-security-groups: security_group
|
|
os-security-group-rules: rule
|
|
os-server-password: None
|
|
os-services: None
|
|
os-simple-tenant-usage: tenant
|
|
os-virtual-interfaces: None
|
|
os-volume_attachments: attachment
|
|
os-volumes_boot: None
|
|
os-volumes: volume
|
|
os-volume-types: volume-type
|
|
os-snapshots: snapshot
|
|
reboot: None
|
|
servers: server
|
|
shutdown: None
|
|
startup: None
|
|
statistics: None
|
|
service_endpoints:
|
|
compute: service/compute
|
|
rootwrap: |
|
|
# Configuration for nova-rootwrap
|
|
# This file should be owned by (and only-writeable by) the root user
|
|
|
|
[DEFAULT]
|
|
# List of directories to load filter definitions from (separated by ',').
|
|
# These directories MUST all be only writeable by root !
|
|
filters_path=/etc/nova/rootwrap.d,/usr/share/nova/rootwrap
|
|
|
|
# List of directories to search executables in, in case filters do not
|
|
# explicitely specify a full path (separated by ',')
|
|
# If not specified, defaults to system PATH environment variable.
|
|
# These directories MUST all be only writeable by root !
|
|
exec_dirs=/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin,/var/lib/openstack/bin,/var/lib/kolla/venv/bin
|
|
|
|
# Enable logging to syslog
|
|
# Default value is False
|
|
use_syslog=False
|
|
|
|
# Which syslog facility to use.
|
|
# Valid values include auth, authpriv, syslog, local0, local1...
|
|
# Default value is 'syslog'
|
|
syslog_log_facility=syslog
|
|
|
|
# Which messages to log.
|
|
# INFO means log all usage
|
|
# ERROR means only log unsuccessful attempts
|
|
syslog_log_level=ERROR
|
|
rootwrap_filters:
|
|
api_metadata:
|
|
pods:
|
|
- metadata
|
|
content: |
|
|
# nova-rootwrap command filters for api-metadata nodes
|
|
# This is needed on nova-api hosts running with "metadata" in enabled_apis
|
|
# or when running nova-api-metadata
|
|
# This file should be owned by (and only-writeable by) the root user
|
|
|
|
[Filters]
|
|
# nova/network/linux_net.py: 'ip[6]tables-save' % (cmd, '-t', ...
|
|
iptables-save: CommandFilter, iptables-save, root
|
|
ip6tables-save: CommandFilter, ip6tables-save, root
|
|
|
|
# nova/network/linux_net.py: 'ip[6]tables-restore' % (cmd,)
|
|
iptables-restore: CommandFilter, iptables-restore, root
|
|
ip6tables-restore: CommandFilter, ip6tables-restore, root
|
|
compute:
|
|
pods:
|
|
- compute
|
|
content: |
|
|
# nova-rootwrap command filters for compute nodes
|
|
# This file should be owned by (and only-writeable by) the root user
|
|
|
|
[Filters]
|
|
# nova/virt/disk/mount/api.py: 'kpartx', '-a', device
|
|
# nova/virt/disk/mount/api.py: 'kpartx', '-d', device
|
|
kpartx: CommandFilter, kpartx, root
|
|
|
|
# nova/virt/xenapi/vm_utils.py: tune2fs, -O ^has_journal, part_path
|
|
# nova/virt/xenapi/vm_utils.py: tune2fs, -j, partition_path
|
|
tune2fs: CommandFilter, tune2fs, root
|
|
|
|
# nova/virt/disk/mount/api.py: 'mount', mapped_device
|
|
# nova/virt/disk/api.py: 'mount', '-o', 'bind', src, target
|
|
# nova/virt/xenapi/vm_utils.py: 'mount', '-t', 'ext2,ext3,ext4,reiserfs'..
|
|
# nova/virt/configdrive.py: 'mount', device, mountdir
|
|
# nova/virt/libvirt/volume.py: 'mount', '-t', 'sofs' ...
|
|
mount: CommandFilter, mount, root
|
|
|
|
# nova/virt/disk/mount/api.py: 'umount', mapped_device
|
|
# nova/virt/disk/api.py: 'umount' target
|
|
# nova/virt/xenapi/vm_utils.py: 'umount', dev_path
|
|
# nova/virt/configdrive.py: 'umount', mountdir
|
|
umount: CommandFilter, umount, root
|
|
|
|
# nova/virt/disk/mount/nbd.py: 'qemu-nbd', '-c', device, image
|
|
# nova/virt/disk/mount/nbd.py: 'qemu-nbd', '-d', device
|
|
qemu-nbd: CommandFilter, qemu-nbd, root
|
|
|
|
# nova/virt/disk/mount/loop.py: 'losetup', '--find', '--show', image
|
|
# nova/virt/disk/mount/loop.py: 'losetup', '--detach', device
|
|
losetup: CommandFilter, losetup, root
|
|
|
|
# nova/virt/disk/vfs/localfs.py: 'blkid', '-o', 'value', '-s', 'TYPE', device
|
|
blkid: CommandFilter, blkid, root
|
|
|
|
# nova/virt/libvirt/utils.py: 'blockdev', '--getsize64', path
|
|
# nova/virt/disk/mount/nbd.py: 'blockdev', '--flushbufs', device
|
|
blockdev: RegExpFilter, blockdev, root, blockdev, (--getsize64|--flushbufs), /dev/.*
|
|
|
|
# nova/virt/disk/vfs/localfs.py: 'tee', canonpath
|
|
tee: CommandFilter, tee, root
|
|
|
|
# nova/virt/disk/vfs/localfs.py: 'mkdir', canonpath
|
|
mkdir: CommandFilter, mkdir, root
|
|
|
|
# nova/virt/disk/vfs/localfs.py: 'chown'
|
|
# nova/virt/libvirt/connection.py: 'chown', os.getuid( console_log
|
|
# nova/virt/libvirt/connection.py: 'chown', os.getuid( console_log
|
|
# nova/virt/libvirt/connection.py: 'chown', 'root', basepath('disk')
|
|
chown: CommandFilter, chown, root
|
|
|
|
# nova/virt/disk/vfs/localfs.py: 'chmod'
|
|
chmod: CommandFilter, chmod, root
|
|
|
|
# nova/virt/libvirt/vif.py: 'ip', 'tuntap', 'add', dev, 'mode', 'tap'
|
|
# nova/virt/libvirt/vif.py: 'ip', 'link', 'set', dev, 'up'
|
|
# nova/virt/libvirt/vif.py: 'ip', 'link', 'delete', dev
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'add', str(floating_ip)+'/32'i..
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'del', str(floating_ip)+'/32'..
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'add', '169.254.169.254/32',..
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'show', 'dev', dev, 'scope',..
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'del/add', ip_params, dev)
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'del', params, fields[-1]
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'add', params, bridge
|
|
# nova/network/linux_net.py: 'ip', '-f', 'inet6', 'addr', 'change', ..
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', 'dev', dev, 'promisc',..
|
|
# nova/network/linux_net.py: 'ip', 'link', 'add', 'link', bridge_if ...
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', interface, address,..
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', interface, 'up'
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', bridge, 'up'
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'show', 'dev', interface, ..
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', dev, address, ..
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', dev, 'up'
|
|
# nova/network/linux_net.py: 'ip', 'route', 'add', ..
|
|
# nova/network/linux_net.py: 'ip', 'route', 'del', .
|
|
# nova/network/linux_net.py: 'ip', 'route', 'show', 'dev', dev
|
|
ip: CommandFilter, ip, root
|
|
|
|
# nova/virt/libvirt/vif.py: 'tunctl', '-b', '-t', dev
|
|
# nova/network/linux_net.py: 'tunctl', '-b', '-t', dev
|
|
tunctl: CommandFilter, tunctl, root
|
|
|
|
# nova/virt/libvirt/vif.py: 'ovs-vsctl', ...
|
|
# nova/virt/libvirt/vif.py: 'ovs-vsctl', 'del-port', ...
|
|
# nova/network/linux_net.py: 'ovs-vsctl', ....
|
|
ovs-vsctl: CommandFilter, ovs-vsctl, root
|
|
|
|
# nova/virt/libvirt/vif.py: 'vrouter-port-control', ...
|
|
vrouter-port-control: CommandFilter, vrouter-port-control, root
|
|
|
|
# nova/virt/libvirt/vif.py: 'ebrctl', ...
|
|
ebrctl: CommandFilter, ebrctl, root
|
|
|
|
# nova/virt/libvirt/vif.py: 'mm-ctl', ...
|
|
mm-ctl: CommandFilter, mm-ctl, root
|
|
|
|
# nova/network/linux_net.py: 'ovs-ofctl', ....
|
|
ovs-ofctl: CommandFilter, ovs-ofctl, root
|
|
|
|
# nova/virt/libvirt/connection.py: 'dd', if=%s % virsh_output, ...
|
|
dd: CommandFilter, dd, root
|
|
|
|
# nova/virt/xenapi/volume_utils.py: 'iscsiadm', '-m', ...
|
|
iscsiadm: CommandFilter, iscsiadm, root
|
|
|
|
# nova/virt/libvirt/volume/aoe.py: 'aoe-revalidate', aoedev
|
|
# nova/virt/libvirt/volume/aoe.py: 'aoe-discover'
|
|
aoe-revalidate: CommandFilter, aoe-revalidate, root
|
|
aoe-discover: CommandFilter, aoe-discover, root
|
|
|
|
# nova/virt/xenapi/vm_utils.py: parted, --script, ...
|
|
# nova/virt/xenapi/vm_utils.py: 'parted', '--script', dev_path, ..*.
|
|
parted: CommandFilter, parted, root
|
|
|
|
# nova/virt/xenapi/vm_utils.py: 'pygrub', '-qn', dev_path
|
|
pygrub: CommandFilter, pygrub, root
|
|
|
|
# nova/virt/xenapi/vm_utils.py: fdisk %(dev_path)s
|
|
fdisk: CommandFilter, fdisk, root
|
|
|
|
# nova/virt/xenapi/vm_utils.py: e2fsck, -f, -p, partition_path
|
|
# nova/virt/disk/api.py: e2fsck, -f, -p, image
|
|
e2fsck: CommandFilter, e2fsck, root
|
|
|
|
# nova/virt/xenapi/vm_utils.py: resize2fs, partition_path
|
|
# nova/virt/disk/api.py: resize2fs, image
|
|
resize2fs: CommandFilter, resize2fs, root
|
|
|
|
# nova/network/linux_net.py: 'ip[6]tables-save' % (cmd, '-t', ...
|
|
iptables-save: CommandFilter, iptables-save, root
|
|
ip6tables-save: CommandFilter, ip6tables-save, root
|
|
|
|
# nova/network/linux_net.py: 'ip[6]tables-restore' % (cmd,)
|
|
iptables-restore: CommandFilter, iptables-restore, root
|
|
ip6tables-restore: CommandFilter, ip6tables-restore, root
|
|
|
|
# nova/network/linux_net.py: 'arping', '-U', floating_ip, '-A', '-I', ...
|
|
# nova/network/linux_net.py: 'arping', '-U', network_ref['dhcp_server'],..
|
|
arping: CommandFilter, arping, root
|
|
|
|
# nova/network/linux_net.py: 'dhcp_release', dev, address, mac_address
|
|
dhcp_release: CommandFilter, dhcp_release, root
|
|
|
|
# nova/network/linux_net.py: 'kill', '-9', pid
|
|
# nova/network/linux_net.py: 'kill', '-HUP', pid
|
|
kill_dnsmasq: KillFilter, root, /usr/sbin/dnsmasq, -9, -HUP
|
|
|
|
# nova/network/linux_net.py: 'kill', pid
|
|
kill_radvd: KillFilter, root, /usr/sbin/radvd
|
|
|
|
# nova/network/linux_net.py: dnsmasq call
|
|
dnsmasq: EnvFilter, env, root, CONFIG_FILE=, NETWORK_ID=, dnsmasq
|
|
|
|
# nova/network/linux_net.py: 'radvd', '-C', '%s' % _ra_file(dev, 'conf'..
|
|
radvd: CommandFilter, radvd, root
|
|
|
|
# nova/network/linux_net.py: 'brctl', 'addbr', bridge
|
|
# nova/network/linux_net.py: 'brctl', 'setfd', bridge, 0
|
|
# nova/network/linux_net.py: 'brctl', 'stp', bridge, 'off'
|
|
# nova/network/linux_net.py: 'brctl', 'addif', bridge, interface
|
|
brctl: CommandFilter, brctl, root
|
|
|
|
# nova/virt/libvirt/utils.py: 'mkswap'
|
|
# nova/virt/xenapi/vm_utils.py: 'mkswap'
|
|
mkswap: CommandFilter, mkswap, root
|
|
|
|
# nova/virt/libvirt/utils.py: 'nova-idmapshift'
|
|
nova-idmapshift: CommandFilter, nova-idmapshift, root
|
|
|
|
# nova/virt/xenapi/vm_utils.py: 'mkfs'
|
|
# nova/utils.py: 'mkfs', fs, path, label
|
|
mkfs: CommandFilter, mkfs, root
|
|
|
|
# nova/virt/libvirt/utils.py: 'qemu-img'
|
|
qemu-img: CommandFilter, qemu-img, root
|
|
|
|
# nova/virt/disk/vfs/localfs.py: 'readlink', '-e'
|
|
readlink: CommandFilter, readlink, root
|
|
|
|
# nova/virt/disk/api.py:
|
|
mkfs.ext3: CommandFilter, mkfs.ext3, root
|
|
mkfs.ext4: CommandFilter, mkfs.ext4, root
|
|
mkfs.ntfs: CommandFilter, mkfs.ntfs, root
|
|
|
|
# nova/virt/libvirt/connection.py:
|
|
lvremove: CommandFilter, lvremove, root
|
|
|
|
# nova/virt/libvirt/utils.py:
|
|
lvcreate: CommandFilter, lvcreate, root
|
|
|
|
# nova/virt/libvirt/utils.py:
|
|
lvs: CommandFilter, lvs, root
|
|
|
|
# nova/virt/libvirt/utils.py:
|
|
vgs: CommandFilter, vgs, root
|
|
|
|
# nova/utils.py:read_file_as_root: 'cat', file_path
|
|
# (called from nova/virt/disk/vfs/localfs.py:VFSLocalFS.read_file)
|
|
read_passwd: RegExpFilter, cat, root, cat, (/var|/usr)?/tmp/openstack-vfs-localfs[^/]+/etc/passwd
|
|
read_shadow: RegExpFilter, cat, root, cat, (/var|/usr)?/tmp/openstack-vfs-localfs[^/]+/etc/shadow
|
|
|
|
# os-brick needed commands
|
|
read_initiator: ReadFileFilter, /etc/iscsi/initiatorname.iscsi
|
|
multipath: CommandFilter, multipath, root
|
|
# multipathd show status
|
|
multipathd: CommandFilter, multipathd, root
|
|
systool: CommandFilter, systool, root
|
|
vgc-cluster: CommandFilter, vgc-cluster, root
|
|
# os_brick/initiator/connector.py
|
|
drv_cfg: CommandFilter, /opt/emc/scaleio/sdc/bin/drv_cfg, root, /opt/emc/scaleio/sdc/bin/drv_cfg, --query_guid
|
|
|
|
# TODO(smcginnis) Temporary fix.
|
|
# Need to pull in os-brick os-brick.filters file instead and clean
|
|
# out stale brick values from this file.
|
|
scsi_id: CommandFilter, /lib/udev/scsi_id, root
|
|
# os_brick.privileged.default oslo.privsep context
|
|
# This line ties the superuser privs with the config files, context name,
|
|
# and (implicitly) the actual python code invoked.
|
|
privsep-rootwrap: RegExpFilter, privsep-helper, root, privsep-helper, --config-file, /etc/(?!\.\.).*, --privsep_context, os_brick.privileged.default, --privsep_sock_path, /tmp/.*
|
|
|
|
# nova/storage/linuxscsi.py: sg_scan device
|
|
sg_scan: CommandFilter, sg_scan, root
|
|
|
|
# nova/volume/encryptors/cryptsetup.py:
|
|
# nova/volume/encryptors/luks.py:
|
|
ln: RegExpFilter, ln, root, ln, --symbolic, --force, /dev/mapper/crypt-.+, .+
|
|
|
|
# nova/volume/encryptors.py:
|
|
# nova/virt/libvirt/dmcrypt.py:
|
|
cryptsetup: CommandFilter, cryptsetup, root
|
|
|
|
# nova/virt/xenapi/vm_utils.py:
|
|
xenstore-read: CommandFilter, xenstore-read, root
|
|
|
|
# nova/virt/libvirt/utils.py:
|
|
rbd: CommandFilter, rbd, root
|
|
|
|
# nova/virt/libvirt/utils.py: 'shred', '-n3', '-s%d' % volume_size, path
|
|
shred: CommandFilter, shred, root
|
|
|
|
# nova/virt/libvirt/volume.py: 'cp', '/dev/stdin', delete_control..
|
|
cp: CommandFilter, cp, root
|
|
|
|
# nova/virt/xenapi/vm_utils.py:
|
|
sync: CommandFilter, sync, root
|
|
|
|
# nova/virt/libvirt/imagebackend.py:
|
|
ploop: RegExpFilter, ploop, root, ploop, restore-descriptor, .*
|
|
prl_disk_tool: RegExpFilter, prl_disk_tool, root, prl_disk_tool, resize, --size, .*M$, --resize_partition, --hdd, .*
|
|
|
|
# nova/virt/libvirt/utils.py: 'xend', 'status'
|
|
xend: CommandFilter, xend, root
|
|
|
|
# nova/virt/libvirt/utils.py:
|
|
touch: CommandFilter, touch, root
|
|
|
|
# nova/virt/libvirt/volume/vzstorage.py
|
|
pstorage-mount: CommandFilter, pstorage-mount, root
|
|
network:
|
|
pods:
|
|
- compute
|
|
content: |
|
|
# nova-rootwrap command filters for network nodes
|
|
# This file should be owned by (and only-writeable by) the root user
|
|
|
|
[Filters]
|
|
# nova/virt/libvirt/vif.py: 'ip', 'tuntap', 'add', dev, 'mode', 'tap'
|
|
# nova/virt/libvirt/vif.py: 'ip', 'link', 'set', dev, 'up'
|
|
# nova/virt/libvirt/vif.py: 'ip', 'link', 'delete', dev
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'add', str(floating_ip)+'/32'i..
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'del', str(floating_ip)+'/32'..
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'add', '169.254.169.254/32',..
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'show', 'dev', dev, 'scope',..
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'del/add', ip_params, dev)
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'del', params, fields[-1]
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'add', params, bridge
|
|
# nova/network/linux_net.py: 'ip', '-f', 'inet6', 'addr', 'change', ..
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', 'dev', dev, 'promisc',..
|
|
# nova/network/linux_net.py: 'ip', 'link', 'add', 'link', bridge_if ...
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', interface, address,..
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', interface, 'up'
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', bridge, 'up'
|
|
# nova/network/linux_net.py: 'ip', 'addr', 'show', 'dev', interface, ..
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', dev, address, ..
|
|
# nova/network/linux_net.py: 'ip', 'link', 'set', dev, 'up'
|
|
# nova/network/linux_net.py: 'ip', 'route', 'add', ..
|
|
# nova/network/linux_net.py: 'ip', 'route', 'del', .
|
|
# nova/network/linux_net.py: 'ip', 'route', 'show', 'dev', dev
|
|
ip: CommandFilter, ip, root
|
|
|
|
# nova/virt/libvirt/vif.py: 'ovs-vsctl', ...
|
|
# nova/virt/libvirt/vif.py: 'ovs-vsctl', 'del-port', ...
|
|
# nova/network/linux_net.py: 'ovs-vsctl', ....
|
|
ovs-vsctl: CommandFilter, ovs-vsctl, root
|
|
|
|
# nova/network/linux_net.py: 'ovs-ofctl', ....
|
|
ovs-ofctl: CommandFilter, ovs-ofctl, root
|
|
|
|
# nova/virt/libvirt/vif.py: 'ivs-ctl', ...
|
|
# nova/virt/libvirt/vif.py: 'ivs-ctl', 'del-port', ...
|
|
# nova/network/linux_net.py: 'ivs-ctl', ....
|
|
ivs-ctl: CommandFilter, ivs-ctl, root
|
|
|
|
# nova/virt/libvirt/vif.py: 'ifc_ctl', ...
|
|
ifc_ctl: CommandFilter, /opt/pg/bin/ifc_ctl, root
|
|
|
|
# nova/network/linux_net.py: 'ebtables', '-D' ...
|
|
# nova/network/linux_net.py: 'ebtables', '-I' ...
|
|
ebtables: CommandFilter, ebtables, root
|
|
ebtables_usr: CommandFilter, ebtables, root
|
|
|
|
# nova/network/linux_net.py: 'ip[6]tables-save' % (cmd, '-t', ...
|
|
iptables-save: CommandFilter, iptables-save, root
|
|
ip6tables-save: CommandFilter, ip6tables-save, root
|
|
|
|
# nova/network/linux_net.py: 'ip[6]tables-restore' % (cmd,)
|
|
iptables-restore: CommandFilter, iptables-restore, root
|
|
ip6tables-restore: CommandFilter, ip6tables-restore, root
|
|
|
|
# nova/network/linux_net.py: 'arping', '-U', floating_ip, '-A', '-I', ...
|
|
# nova/network/linux_net.py: 'arping', '-U', network_ref['dhcp_server'],..
|
|
arping: CommandFilter, arping, root
|
|
|
|
# nova/network/linux_net.py: 'dhcp_release', dev, address, mac_address
|
|
dhcp_release: CommandFilter, dhcp_release, root
|
|
|
|
# nova/network/linux_net.py: 'kill', '-9', pid
|
|
# nova/network/linux_net.py: 'kill', '-HUP', pid
|
|
kill_dnsmasq: KillFilter, root, /usr/sbin/dnsmasq, -9, -HUP
|
|
|
|
# nova/network/linux_net.py: 'kill', pid
|
|
kill_radvd: KillFilter, root, /usr/sbin/radvd
|
|
|
|
# nova/network/linux_net.py: dnsmasq call
|
|
dnsmasq: EnvFilter, env, root, CONFIG_FILE=, NETWORK_ID=, dnsmasq
|
|
|
|
# nova/network/linux_net.py: 'radvd', '-C', '%s' % _ra_file(dev, 'conf'..
|
|
radvd: CommandFilter, radvd, root
|
|
|
|
# nova/network/linux_net.py: 'brctl', 'addbr', bridge
|
|
# nova/network/linux_net.py: 'brctl', 'setfd', bridge, 0
|
|
# nova/network/linux_net.py: 'brctl', 'stp', bridge, 'off'
|
|
# nova/network/linux_net.py: 'brctl', 'addif', bridge, interface
|
|
brctl: CommandFilter, brctl, root
|
|
|
|
# nova/network/linux_net.py: 'sysctl', ....
|
|
sysctl: CommandFilter, sysctl, root
|
|
|
|
# nova/network/linux_net.py: 'conntrack'
|
|
conntrack: CommandFilter, conntrack, root
|
|
|
|
# nova/network/linux_net.py: 'fp-vdev'
|
|
fp-vdev: CommandFilter, fp-vdev, root
|
|
nova_ironic:
|
|
DEFAULT:
|
|
scheduler_host_manager: ironic_host_manager
|
|
compute_driver: ironic.IronicDriver
|
|
ram_allocation_ratio: 1.0
|
|
cpu_allocation_ratio: 1.0
|
|
reserved_host_memory_mb: 0
|
|
libvirt:
|
|
address_search_enabled: true
|
|
# When "address_search_enabled", get the IP address to be used as the target for live migration
|
|
# traffic using interface name.
|
|
# If this option is set to None, the hostname of the migration target compute node will be used.
|
|
live_migration_interface: null
|
|
# or set cidr
|
|
live_migration_network_cidr: 0/0
|
|
hypervisor:
|
|
address_search_enabled: true
|
|
# my_ip can be set automatically through this interface name.
|
|
host_interface: null
|
|
# If host_interface is null there is a fallback mechanism to search
|
|
# for interface with routing using host network cidr.
|
|
host_network_cidr: 0/0
|
|
# This list is the keys to exclude from the config file ingested by nova-compute
|
|
nova_compute_redactions:
|
|
- database
|
|
- api_database
|
|
nova:
|
|
DEFAULT:
|
|
log_config_append: /etc/nova/logging.conf
|
|
default_ephemeral_format: ext4
|
|
ram_allocation_ratio: 1.0
|
|
disk_allocation_ratio: 1.0
|
|
cpu_allocation_ratio: 3.0
|
|
state_path: /var/lib/nova
|
|
osapi_compute_listen: 0.0.0.0
|
|
# NOTE(portdirect): the bind port should not be defined, and is manipulated
|
|
# via the endpoints section.
|
|
osapi_compute_listen_port: null
|
|
osapi_compute_workers: 1
|
|
metadata_workers: 1
|
|
compute_driver: libvirt.LibvirtDriver
|
|
my_ip: 0.0.0.0
|
|
instance_usage_audit: True
|
|
instance_usage_audit_period: hour
|
|
resume_guests_state_on_host_boot: True
|
|
vnc:
|
|
auth_schemes: none
|
|
novncproxy_host: 0.0.0.0
|
|
server_listen: 0.0.0.0
|
|
# This would be set by each compute nodes's ip
|
|
# server_proxyclient_address: 127.0.0.1
|
|
spice:
|
|
html5proxy_host: 0.0.0.0
|
|
server_listen: 0.0.0.0
|
|
# This would be set by each compute nodes's ip
|
|
# server_proxyclient_address: 127.0.0.1
|
|
serial_console:
|
|
serialproxy_host: 0.0.0.0
|
|
# This would be set by each compute nodes's ip
|
|
# proxyclient_address: 127.0.0.1
|
|
conductor:
|
|
workers: 1
|
|
scheduler:
|
|
max_attempts: 10
|
|
discover_hosts_in_cells_interval: -1
|
|
workers: 1
|
|
oslo_policy:
|
|
policy_file: /etc/nova/policy.yaml
|
|
oslo_concurrency:
|
|
lock_path: /var/lock
|
|
oslo_middleware:
|
|
enable_proxy_headers_parsing: true
|
|
glance:
|
|
num_retries: 3
|
|
ironic:
|
|
api_endpoint: null
|
|
auth_url: null
|
|
neutron:
|
|
metadata_proxy_shared_secret: "password"
|
|
service_metadata_proxy: True
|
|
auth_type: password
|
|
auth_version: v3
|
|
cinder:
|
|
auth_type: password
|
|
catalog_info: volumev3::internalURL
|
|
database:
|
|
max_retries: -1
|
|
# -- Database connection URI. When empty the URI is auto-generated
|
|
## from endpoints.oslo_db. Set to null to disable auto-generation,
|
|
## e.g. when using an operator such as mariadb-operator that supplies
|
|
## the connection string via a mounted configuration snippet.
|
|
connection: ""
|
|
api_database:
|
|
max_retries: -1
|
|
# -- Database connection URI. When empty the URI is auto-generated
|
|
## from endpoints.oslo_db. Set to null to disable auto-generation,
|
|
## e.g. when using an operator such as mariadb-operator that supplies
|
|
## the connection string via a mounted configuration snippet.
|
|
connection: ""
|
|
keystone_authtoken:
|
|
service_token_roles: service
|
|
service_token_roles_required: true
|
|
auth_type: password
|
|
auth_version: v3
|
|
memcache_security_strategy: ENCRYPT
|
|
service_type: compute
|
|
notifications:
|
|
notify_on_state_change: vm_and_task_state
|
|
service_user:
|
|
auth_type: password
|
|
send_service_user_token: true
|
|
libvirt:
|
|
connection_uri: "qemu+unix:///system?socket=/run/libvirt/libvirt-sock"
|
|
images_type: qcow2
|
|
images_rbd_pool: vms
|
|
images_rbd_ceph_conf: /etc/ceph/ceph.conf
|
|
rbd_user: cinder
|
|
rbd_secret_uuid: 457eb676-33da-42ec-9a8c-9293d545c337
|
|
disk_cachemodes: "network=writeback"
|
|
hw_disk_discard: unmap
|
|
upgrade_levels:
|
|
compute: auto
|
|
cache:
|
|
enabled: true
|
|
backend: dogpile.cache.memcached
|
|
wsgi:
|
|
api_paste_config: /etc/nova/api-paste.ini
|
|
oslo_messaging_notifications:
|
|
driver: messagingv2
|
|
oslo_messaging_rabbit:
|
|
rabbit_ha_queues: true
|
|
placement:
|
|
auth_type: password
|
|
auth_version: v3
|
|
logging:
|
|
loggers:
|
|
keys:
|
|
- root
|
|
- nova
|
|
- os.brick
|
|
handlers:
|
|
keys:
|
|
- stdout
|
|
- stderr
|
|
- "null"
|
|
formatters:
|
|
keys:
|
|
- context
|
|
- default
|
|
logger_root:
|
|
level: WARNING
|
|
handlers: 'null'
|
|
logger_nova:
|
|
level: INFO
|
|
handlers:
|
|
- stdout
|
|
qualname: nova
|
|
logger_os.brick:
|
|
level: INFO
|
|
handlers:
|
|
- stdout
|
|
qualname: os.brick
|
|
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
|
|
datefmt: "%Y-%m-%d %H:%M:%S"
|
|
formatter_default:
|
|
format: "%(message)s"
|
|
datefmt: "%Y-%m-%d %H:%M:%S"
|
|
rabbitmq:
|
|
# NOTE(rk760n): adding rmq policy to mirror messages from notification queues and set expiration time for the ones
|
|
policies:
|
|
- vhost: "nova"
|
|
name: "ha_ttl_nova"
|
|
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: '^(?!(amq\.|reply_)).*'
|
|
enable_iscsi: false
|
|
archive_deleted_rows:
|
|
purge_deleted_rows: false
|
|
until_completion: true
|
|
all_cells: false
|
|
max_rows:
|
|
enabled: False
|
|
rows: 1000
|
|
before:
|
|
enabled: false
|
|
date: 'nil'
|
|
nova_api_uwsgi:
|
|
uwsgi:
|
|
add-header: "Connection: close"
|
|
buffer-size: 65535
|
|
die-on-term: true
|
|
enable-threads: true
|
|
exit-on-reload: false
|
|
hook-master-start: unix_signal:15 gracefully_kill_them_all
|
|
lazy-apps: true
|
|
log-x-forwarded-for: true
|
|
master: true
|
|
procname-prefix-spaced: "nova-api:"
|
|
route-user-agent: '^kube-probe.* donotlog:'
|
|
thunder-lock: true
|
|
worker-reload-mercy: 80
|
|
module: nova.wsgi.osapi_compute:application
|
|
stats: 0.0.0.0:1717
|
|
stats-http: true
|
|
nova_metadata_uwsgi:
|
|
uwsgi:
|
|
add-header: "Connection: close"
|
|
buffer-size: 65535
|
|
die-on-term: true
|
|
enable-threads: true
|
|
exit-on-reload: false
|
|
hook-master-start: unix_signal:15 gracefully_kill_them_all
|
|
lazy-apps: true
|
|
log-x-forwarded-for: true
|
|
master: true
|
|
procname-prefix-spaced: "nova-metadata:"
|
|
route-user-agent: '^kube-probe.* donotlog:'
|
|
thunder-lock: true
|
|
worker-reload-mercy: 80
|
|
module: nova.wsgi.metadata:application
|
|
stats: 0.0.0.0:1717
|
|
stats-http: true
|
|
|
|
# Names of secrets used by bootstrap and environmental checks
|
|
secrets:
|
|
identity:
|
|
admin: nova-keystone-admin
|
|
nova: nova-keystone-user
|
|
neutron: nova-keystone-neutron
|
|
placement: nova-keystone-placement
|
|
cinder: nova-keystone-cinder
|
|
ironic: nova-keystone-ironic
|
|
service: nova-keystone-service
|
|
test: nova-keystone-test
|
|
oslo_db:
|
|
admin: nova-db-admin
|
|
oslo_db_cell0:
|
|
admin: nova-db-cell0-admin
|
|
nova: nova-db-cell0-user
|
|
oslo_db_cell1:
|
|
admin: nova-db-cell1-admin
|
|
oslo_messaging:
|
|
admin: nova-rabbitmq-admin
|
|
nova: nova-rabbitmq-user
|
|
tls:
|
|
# Client certificate this chart presents for all mTLS backend connections
|
|
# (MariaDB and RabbitMQ). Separate from the MariaDB and RabbitMQ server certs.
|
|
client:
|
|
nova: nova-client
|
|
# CA bundle this chart trusts for OUTBOUND TLS calls (keystone, placement,
|
|
# nova-metadata). Null by default -> no CA is mounted and REQUESTS_CA_BUNDLE
|
|
# is left unset. A deployment override points this at a cert-manager CA-only
|
|
# secret carrying just ca.crt (no private key); it is mounted at
|
|
# /etc/ssl/certs/openstack-helm.crt. Assumes every server cert is signed by
|
|
# this single CA. The chart stays TLS-agnostic -- server certs and the nginx
|
|
# TLS sidecar live in the override.
|
|
ca: null
|
|
compute_novnc_proxy:
|
|
novncproxy:
|
|
public: nova-novncproxy-tls-public
|
|
internal: nova-novncproxy-tls-proxy
|
|
vencrypt:
|
|
internal: nova-novncproxy-vencrypt
|
|
compute_spice_proxy:
|
|
spiceproxy:
|
|
public: nova-spiceproxy-tls-public
|
|
internal: nova-spiceproxy-tls-proxy
|
|
compute_serial_proxy:
|
|
serialproxy:
|
|
public: nova-serialproxy-tls-public
|
|
internal: nova-serialproxy-tls-proxy
|
|
oci_image_registry:
|
|
nova: nova-oci-image-registry
|
|
|
|
# typically overridden by environmental
|
|
identity:
|
|
openrc:
|
|
exclude_vars: []
|
|
extra_vars: []
|
|
|
|
# values, but should include all endpoints
|
|
# required by this chart
|
|
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
|
|
oci_image_registry:
|
|
name: oci-image-registry
|
|
namespace: oci-image-registry
|
|
auth:
|
|
enabled: false
|
|
nova:
|
|
username: nova
|
|
password: password
|
|
hosts:
|
|
default: localhost
|
|
host_fqdn_override:
|
|
default: null
|
|
port:
|
|
registry:
|
|
default: null
|
|
oslo_db:
|
|
auth:
|
|
admin:
|
|
username: root
|
|
password: password
|
|
nova:
|
|
username: nova
|
|
password: password
|
|
hosts:
|
|
default: mariadb
|
|
host_fqdn_override:
|
|
default: null
|
|
path: /nova
|
|
scheme: mysql+pymysql
|
|
port:
|
|
mysql:
|
|
default: 3306
|
|
oslo_db_cell0:
|
|
auth:
|
|
admin:
|
|
username: root
|
|
password: password
|
|
nova:
|
|
username: nova
|
|
password: password
|
|
hosts:
|
|
default: mariadb
|
|
host_fqdn_override:
|
|
default: null
|
|
path: /nova_cell0
|
|
scheme: mysql+pymysql
|
|
port:
|
|
mysql:
|
|
default: 3306
|
|
oslo_db_cell1:
|
|
auth:
|
|
admin:
|
|
username: root
|
|
password: password
|
|
secret:
|
|
tls:
|
|
internal: mariadb-tls-direct
|
|
nova:
|
|
username: nova
|
|
password: password
|
|
hosts:
|
|
default: mariadb
|
|
host_fqdn_override:
|
|
default: null
|
|
path: /nova_cell1
|
|
scheme: mysql+pymysql
|
|
port:
|
|
mysql:
|
|
default: 3306
|
|
oslo_messaging:
|
|
auth:
|
|
admin:
|
|
username: rabbitmq
|
|
password: password
|
|
nova:
|
|
username: nova
|
|
password: password
|
|
statefulset:
|
|
replicas: 2
|
|
name: rabbitmq-rabbitmq
|
|
hosts:
|
|
default: rabbitmq
|
|
host_fqdn_override:
|
|
default: null
|
|
path: /nova
|
|
scheme: rabbit
|
|
port:
|
|
amqp:
|
|
default: 5672
|
|
http:
|
|
default: 15672
|
|
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
|
|
identity:
|
|
name: keystone
|
|
auth:
|
|
admin:
|
|
region_name: RegionOne
|
|
username: admin
|
|
password: password
|
|
project_name: admin
|
|
user_domain_name: default
|
|
project_domain_name: default
|
|
nova:
|
|
role: admin,service
|
|
region_name: RegionOne
|
|
username: nova
|
|
password: password
|
|
project_name: service
|
|
user_domain_name: service
|
|
project_domain_name: service
|
|
service:
|
|
role: admin,service
|
|
region_name: RegionOne
|
|
username: nova_service_user
|
|
password: password
|
|
project_name: service
|
|
user_domain_name: service
|
|
project_domain_name: service
|
|
# NOTE(portdirect): the neutron user is not managed by the nova chart
|
|
# these values should match those set in the neutron chart.
|
|
neutron:
|
|
role: admin,service
|
|
region_name: RegionOne
|
|
project_name: service
|
|
user_domain_name: service
|
|
project_domain_name: service
|
|
username: nova_neutron
|
|
password: password
|
|
# NOTE(portdirect): the ironic user is not managed by the nova chart
|
|
# these values should match those set in the ironic chart.
|
|
ironic:
|
|
role: admin,service
|
|
auth_type: password
|
|
auth_version: v3
|
|
region_name: RegionOne
|
|
project_name: service
|
|
user_domain_name: service
|
|
project_domain_name: service
|
|
username: nova_ironic
|
|
password: password
|
|
placement:
|
|
role: admin,service
|
|
region_name: RegionOne
|
|
username: nova_placement
|
|
password: password
|
|
project_name: service
|
|
user_domain_name: service
|
|
project_domain_name: service
|
|
cinder:
|
|
role: admin,service
|
|
region_name: RegionOne
|
|
username: nova_cinder
|
|
password: password
|
|
project_name: service
|
|
user_domain_name: service
|
|
project_domain_name: service
|
|
test:
|
|
role: admin
|
|
region_name: RegionOne
|
|
username: nova-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
|
|
image:
|
|
name: glance
|
|
hosts:
|
|
default: glance-api
|
|
public: glance
|
|
host_fqdn_override:
|
|
default: null
|
|
path:
|
|
default: null
|
|
scheme:
|
|
default: http
|
|
port:
|
|
api:
|
|
default: 9292
|
|
public: 80
|
|
volumev3:
|
|
name: cinderv3
|
|
hosts:
|
|
default: cinder-api
|
|
public: cinder
|
|
host_fqdn_override:
|
|
default: null
|
|
path:
|
|
default: '/v3'
|
|
healthcheck: /healthcheck
|
|
scheme:
|
|
default: http
|
|
port:
|
|
api:
|
|
default: 8776
|
|
public: 80
|
|
compute:
|
|
name: nova
|
|
hosts:
|
|
default: nova-api
|
|
public: nova
|
|
host_fqdn_override:
|
|
default: null
|
|
# NOTE(portdirect): this chart supports TLS for fqdn over-ridden public
|
|
# endpoints using the following format:
|
|
# public:
|
|
# host: null
|
|
# tls:
|
|
# crt: null
|
|
# key: null
|
|
path:
|
|
default: "/v2.1/"
|
|
scheme:
|
|
default: 'http'
|
|
service: 'http'
|
|
port:
|
|
api:
|
|
default: 8774
|
|
public: 80
|
|
service: 8774
|
|
novncproxy:
|
|
default: 6080
|
|
compute_metadata:
|
|
name: nova
|
|
ip:
|
|
# IF blank, set clusterIP and metadata_host dynamically
|
|
ingress: null
|
|
hosts:
|
|
default: nova-metadata
|
|
public: metadata
|
|
host_fqdn_override:
|
|
default: null
|
|
path:
|
|
default: /
|
|
scheme:
|
|
default: 'http'
|
|
port:
|
|
metadata:
|
|
default: 8775
|
|
public: 80
|
|
compute_novnc_proxy:
|
|
name: nova
|
|
hosts:
|
|
default: nova-novncproxy
|
|
public: novncproxy
|
|
host_fqdn_override:
|
|
default: null
|
|
# NOTE(portdirect): this chart supports TLS for fqdn over-ridden public
|
|
# endpoints using the following format:
|
|
# public:
|
|
# host: null
|
|
# tls:
|
|
# crt: null
|
|
# key: null
|
|
path:
|
|
default: /vnc_auto.html
|
|
scheme:
|
|
default: 'http'
|
|
port:
|
|
novnc_proxy:
|
|
default: 6080
|
|
public: 80
|
|
# This endpoint is only to allow configuring the cert used specifically for
|
|
# vencrypt. Specifically, the same CA/issuer needs to be used to sign both
|
|
# this cert, and the libvirt/qemu certs.
|
|
compute_novnc_vencrypt:
|
|
hosts:
|
|
default: nova-novncproxy
|
|
host_fqdn_override:
|
|
default:
|
|
commonName: nova-novncproxy
|
|
usages:
|
|
- client auth
|
|
compute_serial_proxy:
|
|
name: nova
|
|
hosts:
|
|
default: nova-serialproxy
|
|
public: serialproxy
|
|
host_fqdn_override:
|
|
default: null
|
|
scheme:
|
|
default: 'ws'
|
|
path:
|
|
default: /serial_auto.html
|
|
port:
|
|
serial_proxy:
|
|
default: 6083
|
|
public: 80
|
|
compute_spice_proxy:
|
|
name: nova
|
|
hosts:
|
|
default: nova-spiceproxy
|
|
public: spiceproxy
|
|
host_fqdn_override:
|
|
default: null
|
|
path:
|
|
default: /spice_auto.html
|
|
scheme:
|
|
default: 'http'
|
|
port:
|
|
spice_proxy:
|
|
default: 6082
|
|
public: 80
|
|
placement:
|
|
name: placement
|
|
hosts:
|
|
default: placement-api
|
|
public: placement
|
|
host_fqdn_override:
|
|
default: null
|
|
path:
|
|
default: /
|
|
scheme:
|
|
default: 'http'
|
|
service: 'http'
|
|
port:
|
|
api:
|
|
default: 8778
|
|
public: 80
|
|
service: 8778
|
|
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
|
|
baremetal:
|
|
name: ironic
|
|
hosts:
|
|
default: ironic-api
|
|
public: ironic
|
|
host_fqdn_override:
|
|
default: null
|
|
path:
|
|
default: null
|
|
scheme:
|
|
default: http
|
|
port:
|
|
api:
|
|
default: 6385
|
|
public: 80
|
|
fluentd:
|
|
namespace: null
|
|
name: fluentd
|
|
hosts:
|
|
default: fluentd-logging
|
|
host_fqdn_override:
|
|
default: null
|
|
path:
|
|
default: null
|
|
scheme: 'http'
|
|
port:
|
|
service:
|
|
default: 24224
|
|
metrics:
|
|
default: 24220
|
|
# NOTE(tp6510): these endpoints allow for things like DNS lookups and ingress
|
|
# They are using to enable the Egress K8s network policy.
|
|
kube_dns:
|
|
namespace: kube-system
|
|
name: kubernetes-dns
|
|
hosts:
|
|
default: kube-dns
|
|
host_fqdn_override:
|
|
default: null
|
|
path:
|
|
default: null
|
|
scheme: http
|
|
port:
|
|
dns:
|
|
default: 53
|
|
protocol: UDP
|
|
|
|
pod:
|
|
# -- Extra sidecar containers and volumes to inject into the nova API
|
|
## Deployments. Used e.g. by values_overrides/nova/api-tls.yaml to add an
|
|
## nginx TLS-terminating sidecar. Keyed per API component.
|
|
extraContainers:
|
|
nova_osapi: []
|
|
nova_metadata: []
|
|
extraVolumes:
|
|
nova_osapi: []
|
|
nova_metadata: []
|
|
probes:
|
|
rpc_timeout: 60
|
|
rpc_retries: 2
|
|
compute:
|
|
default:
|
|
liveness:
|
|
enabled: True
|
|
params:
|
|
periodSeconds: 90
|
|
timeoutSeconds: 70
|
|
readiness:
|
|
enabled: True
|
|
params:
|
|
periodSeconds: 90
|
|
timeoutSeconds: 70
|
|
startup:
|
|
enabled: True
|
|
params:
|
|
failureThreshold: 120
|
|
periodSeconds: 10
|
|
successThreshold: 1
|
|
timeoutSeconds: 70
|
|
api-metadata:
|
|
default:
|
|
liveness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
readiness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
api-osapi:
|
|
default:
|
|
liveness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
readiness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 5
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
conductor:
|
|
default:
|
|
liveness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 120
|
|
periodSeconds: 90
|
|
timeoutSeconds: 70
|
|
readiness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 80
|
|
periodSeconds: 90
|
|
timeoutSeconds: 70
|
|
novncproxy:
|
|
default:
|
|
liveness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 60
|
|
timeoutSeconds: 15
|
|
readiness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 60
|
|
timeoutSeconds: 15
|
|
scheduler:
|
|
default:
|
|
liveness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 120
|
|
periodSeconds: 90
|
|
timeoutSeconds: 70
|
|
readiness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 80
|
|
periodSeconds: 90
|
|
timeoutSeconds: 70
|
|
serialproxy:
|
|
default:
|
|
liveness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 60
|
|
timeoutSeconds: 15
|
|
readiness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 60
|
|
timeoutSeconds: 15
|
|
compute-spice-proxy:
|
|
default:
|
|
liveness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 60
|
|
timeoutSeconds: 15
|
|
readiness:
|
|
enabled: True
|
|
params:
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 60
|
|
timeoutSeconds: 15
|
|
security_context:
|
|
nova:
|
|
pod:
|
|
runAsUser: 42424
|
|
container:
|
|
nova_compute_init:
|
|
readOnlyRootFilesystem: true
|
|
runAsUser: 0
|
|
ceph_perms:
|
|
readOnlyRootFilesystem: true
|
|
runAsUser: 0
|
|
nova_compute_vnc_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_compute_serial_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_compute_spice_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_compute:
|
|
readOnlyRootFilesystem: true
|
|
privileged: true
|
|
nova_compute_ssh:
|
|
privileged: true
|
|
runAsUser: 0
|
|
nova_compute_ssh_init:
|
|
runAsUser: 0
|
|
nova_api_metadata_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_api:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_osapi:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_conductor:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_novncproxy_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_novncproxy_init_assests:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_novncproxy:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_scheduler:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_serialproxy_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_serialproxy:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_spiceproxy_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_spiceproxy_init_assets:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_spiceproxy:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
bootstrap:
|
|
pod:
|
|
runAsUser: 42424
|
|
container:
|
|
nova_wait_for_computes_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
bootstrap:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_cell_setup:
|
|
pod:
|
|
runAsUser: 42424
|
|
container:
|
|
nova_wait_for_computes_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_cell_setup_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_cell_setup:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
archive_deleted_rows:
|
|
pod:
|
|
runAsUser: 42424
|
|
container:
|
|
nova_archive_deleted_rows_init:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
nova_archive_deleted_rows:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
cell_setup:
|
|
pod:
|
|
runAsUser: 42424
|
|
container:
|
|
nova_cell_setup:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
service_cleaner:
|
|
pod:
|
|
runAsUser: 42424
|
|
container:
|
|
nova_service_cleaner:
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
use_fqdn:
|
|
# NOTE: If the option "host" is not specified in nova.conf, the host name
|
|
# shown in the hypervisor host is defaulted to the short name of the host.
|
|
# Setting the option here to true will cause use $(hostname --fqdn) as the
|
|
# host name by default. If the short name is desired $(hostname --short),
|
|
# set the option to false. Specifying a host in the nova.conf via the conf:
|
|
# section will supersede the value of this option.
|
|
compute: true
|
|
affinity:
|
|
anti:
|
|
type:
|
|
default: preferredDuringSchedulingIgnoredDuringExecution
|
|
topologyKey:
|
|
default: kubernetes.io/hostname
|
|
weight:
|
|
default: 10
|
|
tolerations:
|
|
nova:
|
|
enabled: false
|
|
tolerations:
|
|
- key: node-role.kubernetes.io/master
|
|
operator: Exists
|
|
effect: NoSchedule
|
|
- key: node-role.kubernetes.io/control-plane
|
|
operator: Exists
|
|
effect: NoSchedule
|
|
# -- This allows users to add Kubernetes Projected Volumes to be mounted at /etc/nova/nova.conf.d/
|
|
## This is a list of projected volume source objects for each deployment/statefulset/job
|
|
## https://kubernetes.io/docs/concepts/storage/projected-volumes/
|
|
etcSources:
|
|
nova_compute: []
|
|
nova_compute_ironic: []
|
|
nova_api_metadata: []
|
|
nova_api_osapi: []
|
|
nova_conductor: []
|
|
nova_scheduler: []
|
|
nova_bootstrap: []
|
|
nova_tests: []
|
|
nova_novncproxy: []
|
|
nova_serialproxy: []
|
|
nova_spiceproxy: []
|
|
nova_db_sync: []
|
|
nova_archive_deleted_rows: []
|
|
nova_service_cleaner: []
|
|
nova_cell_setup: []
|
|
mounts:
|
|
nova_compute:
|
|
init_container: null
|
|
nova_compute:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_compute_ironic:
|
|
init_container: null
|
|
nova_compute_ironic:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_api_metadata:
|
|
init_container: null
|
|
nova_api_metadata:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_api_osapi:
|
|
init_container: null
|
|
nova_api_osapi:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_conductor:
|
|
init_container: null
|
|
nova_conductor:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_scheduler:
|
|
init_container: null
|
|
nova_scheduler:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_bootstrap:
|
|
init_container: null
|
|
nova_bootstrap:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_tests:
|
|
init_container: null
|
|
nova_tests:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_novncproxy:
|
|
init_novncproxy: null
|
|
nova_novncproxy:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_serialproxy:
|
|
init_serialproxy: null
|
|
nova_serialproxy:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_spiceproxy:
|
|
init_spiceproxy: null
|
|
nova_spiceproxy:
|
|
volumeMounts:
|
|
volumes:
|
|
nova_db_sync:
|
|
nova_db_sync:
|
|
volumeMounts:
|
|
volumes:
|
|
useHostNetwork:
|
|
novncproxy: true
|
|
replicas:
|
|
api_metadata: 1
|
|
compute_ironic: 1
|
|
osapi: 1
|
|
conductor: 1
|
|
scheduler: 1
|
|
novncproxy: 1
|
|
serialproxy: 1
|
|
spiceproxy: 1
|
|
lifecycle:
|
|
upgrades:
|
|
deployments:
|
|
revision_history: 3
|
|
pod_replacement_strategy: RollingUpdate
|
|
rolling_update:
|
|
max_unavailable: 1
|
|
max_surge: 3
|
|
daemonsets:
|
|
pod_replacement_strategy: RollingUpdate
|
|
compute:
|
|
enabled: true
|
|
min_ready_seconds: 0
|
|
max_unavailable: 1
|
|
disruption_budget:
|
|
metadata:
|
|
min_available: 0
|
|
osapi:
|
|
min_available: 0
|
|
termination_grace_period:
|
|
metadata:
|
|
timeout: 180
|
|
osapi:
|
|
timeout: 180
|
|
compute:
|
|
timeout: 180
|
|
conductor:
|
|
timeout: 180
|
|
scheduler:
|
|
timeout: 180
|
|
resources:
|
|
enabled: false
|
|
compute:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
compute_ironic:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
api_metadata:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
api:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
conductor:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
scheduler:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
ssh:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
novncproxy:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
serialproxy:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
spiceproxy:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
jobs:
|
|
bootstrap:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
storage_init:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
db_init:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
rabbit_init:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
db_sync:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
archive_deleted_rows:
|
|
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"
|
|
cell_setup:
|
|
requests:
|
|
memory: "128Mi"
|
|
cpu: "100m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "2000m"
|
|
service_cleaner:
|
|
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:
|
|
nova:
|
|
# TODO(lamt): Need to tighten this ingress for security.
|
|
ingress:
|
|
- {}
|
|
egress:
|
|
- {}
|
|
|
|
health_probe:
|
|
logging:
|
|
level: ERROR
|
|
|
|
tls:
|
|
oslo_messaging: false
|
|
oslo_db: false
|
|
|
|
manifests:
|
|
compute_uuid_self_provisioning: true
|
|
configmap_bin: true
|
|
configmap_etc: true
|
|
cron_job_cell_setup: true
|
|
cron_job_service_cleaner: true
|
|
cron_job_archive_deleted_rows: false
|
|
daemonset_compute: true
|
|
deployment_api_metadata: true
|
|
deployment_api_osapi: true
|
|
deployment_conductor: true
|
|
deployment_novncproxy: true
|
|
deployment_serialproxy: true
|
|
deployment_spiceproxy: true
|
|
deployment_scheduler: true
|
|
# NOTE: StatefulSets provide stable pod hostnames (e.g., nova-conductor-0, nova-conductor-1)
|
|
# which are used as service host names in `openstack compute service list`.
|
|
# When enabled, the corresponding deployment_* manifest is automatically disabled.
|
|
# This ensures service names remain stable across pod restarts.
|
|
statefulset_conductor: false
|
|
statefulset_scheduler: false
|
|
job_bootstrap: true
|
|
job_storage_init: 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
|
|
job_cell_setup: true
|
|
pdb_metadata: true
|
|
pdb_osapi: true
|
|
pod_rally_test: true
|
|
network_policy: false
|
|
secret_db: true
|
|
secret_db_cell0: true
|
|
secret_db_cell1: true
|
|
secret_keystone: true
|
|
secret_ks_etc: true
|
|
secret_rabbitmq: true
|
|
secret_registry: true
|
|
secret_ssh: true
|
|
service_metadata: true
|
|
service_novncproxy: true
|
|
service_serialproxy: true
|
|
service_spiceproxy: true
|
|
service_osapi: true
|
|
statefulset_compute_ironic: false
|
|
|
|
# List of compute hosts and its respective uuids
|
|
# Items should be in the following format
|
|
# - name: compute-node-hostname
|
|
# uuid: <compute node's UUID>
|
|
hosts_uuids: []
|
|
|
|
# -- Extra K8s manifests to deploy. Either a list or a map of manifests.
|
|
## Note: Supports use of custom Helm templates
|
|
## Note: Helm replaces (instead of merging) list values when several values
|
|
## files are combined, so if you need to define extraObjects in more than one
|
|
## overrides file, use the map form and make sure the keys are unique across
|
|
## those files. With the list form only the last file takes effect.
|
|
extraObjects: {}
|
|
# osh_secrets_store:
|
|
# apiVersion: secrets-store.csi.x-k8s.io/v1
|
|
# kind: SecretProviderClass
|
|
# metadata:
|
|
# name: osh-secrets-store
|
|
# spec:
|
|
# provider: aws
|
|
# parameters:
|
|
# objects: |
|
|
# - objectName: "osh"
|
|
# objectType: "secretsmanager"
|
|
# jmesPath:
|
|
# - path: "client_id"
|
|
# objectAlias: "client_id"
|
|
# - path: "client_secret"
|
|
# objectAlias: "client_secret"
|
|
# secretObjects:
|
|
# - data:
|
|
# - key: client_id
|
|
# objectName: client_id
|
|
# - key: client_secret
|
|
# objectName: client_secret
|
|
# secretName: osh-secrets-store
|
|
# type: Opaque
|
|
# labels:
|
|
# app.kubernetes.io/part-of: osh
|
|
...
|