Partial FluxCD version of stx-openstack: telemetry

This is continuing previous work [1] of the openstack app
migration to FluxCD, adding telemetry charts.
This change includes the following charts:
aodh, gnocchi, ceilometer

Although these charts are currently disabled in metadata.yaml,
they are being migrated to avoid future overhead.

NOTE: The tests covering this change only included basic build and
lifecycle operations. The charts were migrated to FluxCD but they are
disabled by default since this feature is not being officially
supported for a while. Tests here ensured that this migration did not
affect the app. The telemetry specific k8s resources creation was not
exhaustively tested now since this should be done whenever this feature
is offically supported by this app again.

Test Plan:
PASS - build-helm-charts.sh builds a basic FluxCD app tarball
PASS - application upload and overrides generated
PASS - application apply/remove/delete

[1] https://review.opendev.org/c/starlingx/openstack-armada-app/+/848192

Story: 2009138
Task: 45462

Signed-off-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Change-Id: I764e489f97071782e54a81597fccf9d91e243b63
This commit is contained in:
Thales Elero Cervi 2022-06-29 18:40:05 -03:00
parent 17a94411fa
commit 5be062edb0
13 changed files with 944 additions and 0 deletions

View File

@ -0,0 +1,81 @@
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
---
release_group: osh-openstack-aodh
images:
tags:
aodh_alarms_cleaner: docker.io/starlingx/stx-aodh:master-centos-stable-latest
aodh_api: docker.io/starlingx/stx-aodh:master-centos-stable-latest
aodh_db_sync: docker.io/starlingx/stx-aodh:master-centos-stable-latest
aodh_evaluator: docker.io/starlingx/stx-aodh:master-centos-stable-latest
aodh_listener: docker.io/starlingx/stx-aodh:master-centos-stable-latest
aodh_notifier: docker.io/starlingx/stx-aodh:master-centos-stable-latest
bootstrap: docker.io/starlingx/stx-heat:master-centos-stable-latest
db_drop: docker.io/starlingx/stx-heat:master-centos-stable-latest
db_init: docker.io/starlingx/stx-heat:master-centos-stable-latest
image_repo_sync: null
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-centos-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-centos-stable-latest
pod:
affinity:
anti:
type:
default: requiredDuringSchedulingIgnoredDuringExecution
tolerations:
aodh:
enabled: true
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: openstack-compute-node
operator: Exists
effect: NoSchedule
endpoints:
oslo_messaging:
statefulset:
name: osh-openstack-rabbitmq-rabbitmq
identity:
force_public_endpoint: true
jobs:
alarms_cleaner:
# daily at the 35 minute mark
cron: "35 */24 * * *"
conf:
aodh:
keystone_authtoken:
auth_uri: http://keystone.openstack.svc.cluster.local:80/v3
auth_url: http://keystone.openstack.svc.cluster.local:80/v3
service_credentials:
auth_url: http://keystone.openstack.svc.cluster.local:80/v3
wsgi_aodh: |
Listen :::{{ tuple "alarming" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
CustomLog /dev/stdout combined env=!forwarded
CustomLog /dev/stdout proxy env=forwarded
WSGISocketPrefix /var/run/httpd/wsgi
<VirtualHost *:{{ tuple "alarming" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}>
WSGIDaemonProcess aodh processes=2 threads=1 user=aodh group=aodh display-name=%{GROUP} python-home=/var/lib/openstack socket-user=apache
WSGIProcessGroup aodh
WSGIScriptAlias / /var/www/cgi-bin/aodh/aodh-api
WSGIApplicationGroup %{GLOBAL}
<IfVersion >= 2.4>
ErrorLogFormat "%{cu}t %M"
</IfVersion>
ErrorLog /dev/stdout
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
CustomLog /dev/stdout combined env=!forwarded
CustomLog /dev/stdout proxy env=forwarded
</VirtualHost>
...

View File

@ -0,0 +1,41 @@
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
---
apiVersion: "helm.toolkit.fluxcd.io/v2beta1"
kind: HelmRelease
metadata:
name: aodh
labels:
chart_group: openstack-aodh
spec:
releaseName: osh-openstack-aodh
chart:
spec:
chart: aodh
version: 0.2.1
sourceRef:
kind: HelmRepository
name: starlingx
interval: 5m
timeout: 30m
test:
enable: false
install:
disableHooks: false
upgrade:
disableHooks: false
dependsOn:
- name: horizon
namespace: openstack
valuesFrom:
- kind: Secret
name: aodh-static-overrides
valuesKey: aodh-static-overrides.yaml
- kind: Secret
name: aodh-system-overrides
valuesKey: aodh-system-overrides.yaml
...

View File

@ -0,0 +1,20 @@
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
---
namespace: openstack
resources:
- helmrelease.yaml
secretGenerator:
- name: aodh-static-overrides
files:
- aodh-static-overrides.yaml
- name: aodh-system-overrides
files:
- aodh-system-overrides.yaml
generatorOptions:
disableNameSuffixHash: true
...

View File

@ -0,0 +1,538 @@
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
---
release_group: osh-openstack-ceilometer
images:
tags:
ceilometer_api: docker.io/starlingx/stx-ceilometer:master-centos-stable-latest
ceilometer_central: docker.io/starlingx/stx-ceilometer:master-centos-stable-latest
ceilometer_collector: docker.io/starlingx/stx-ceilometer:master-centos-stable-latest
ceilometer_compute: docker.io/starlingx/stx-ceilometer:master-centos-stable-latest
ceilometer_db_sync: docker.io/starlingx/stx-ceilometer:master-centos-stable-latest
ceilometer_ipmi: docker.io/starlingx/stx-ceilometer:master-centos-stable-latest
ceilometer_notification: docker.io/starlingx/stx-ceilometer:master-centos-stable-latest
db_init: docker.io/starlingx/stx-ceilometer:master-centos-stable-latest
db_init_mongodb: docker.io/starlingx/stx-ceilometer:master-centos-stable-latest
image_repo_sync: null
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-centos-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-centos-stable-latest
test: null
dependencies:
static:
central:
jobs:
- ceilometer-db-sync
- ceilometer-rabbit-init
services: null
compute:
jobs:
- ceilometer-db-sync
- ceilometer-rabbit-init
services: null
ipmi:
jobs:
- ceilometer-db-sync
- ceilometer-rabbit-init
services: null
notification:
jobs:
- ceilometer-db-sync
- ceilometer-rabbit-init
services:
- endpoint: internal
service: event
db_sync:
jobs:
- ceilometer-ks-user
- ceilometer-ks-service
services:
- endpoint: internal
service: identity
- endpoint: internal
service: metric
manifests:
deployment_api: false
deployment_collector: false
service_api: false
job_db_init: false
job_db_init_mongodb: false
job_ks_endpoints: false
secret_db: false
secret_mongodb: false
endpoints:
identity:
force_public_endpoint: true
oslo_messaging:
statefulset:
name: osh-openstack-rabbitmq-rabbitmq
oslo_cache:
hosts:
default: memcached
conf:
ceilometer:
keystone_authtoken:
auth_uri: http://keystone.openstack.svc.cluster.local:80/v3
auth_url: http://keystone.openstack.svc.cluster.local:80/v3
service_credentials:
auth_url: http://keystone.openstack.svc.cluster.local:80/v3
dispatcher_gnocchi:
url: http://gnocchi.openstack.svc.cluster.local:80/
api:
aodh_url: http://aodh.openstack.svc.cluster.local:80/
cache:
expiration_time: 86400
compute:
resource_update_interval: 60
instance_discovery_method: workload_partitioning
oslo_messaging_notifications:
topics:
- notifications
pipeline:
sources:
- name: meter_source
meters:
- "*"
sinks:
- meter_sink
sinks:
- name: meter_sink
publishers:
- gnocchi://
event_pipeline:
sources:
- name: event_source
events:
- "*"
sinks:
- event_sink
sinks:
- name: event_sink
publishers:
- gnocchi://
polling:
sources:
- name: instance_cpu_pollster
interval: 30
meters:
- cpu
- name: instance_disk_pollster
interval: 600
meters:
- disk.capacity
- disk.allocation
- disk.usage
- disk.device.read.requests
- disk.device.write.requests
- disk.device.read.bytes
- disk.device.write.bytes
- disk.device.capacity
- disk.device.allocation
- disk.device.usage
- name: ipmi_pollster
interval: 600
meters:
- hardware.ipmi.node.power
- hardware.ipmi.node.temperature
- hardware.ipmi.node.outlet_temperature
- hardware.ipmi.node.airflow
- hardware.ipmi.node.cups
- hardware.ipmi.node.cpu_util
- hardware.ipmi.node.mem_util
- hardware.ipmi.node.io_util
- hardware.ipmi.temperature
- hardware.ipmi.voltage
- hardware.ipmi.current
- hardware.ipmi.fan
- name: ceph_pollster
interval: 600
meters:
- radosgw.objects
- radosgw.objects.size
- radosgw.objects.containers
- radosgw.api.request
- radosgw.containers.objects
- radosgw.containers.objects.size
- name: image_pollster
interval: 600
meters:
- image.size
- name: volume_pollster
interval: 600
meters:
- volume.size
- volume.snapshot.size
- volume.backup.size
gnocchi_resources:
archive_policy_default: ceilometer-low
archive_policies:
- name: ceilometer-low
aggregation_methods:
- mean
back_window: 0
definition:
- granularity: 5 minutes
timespan: 7 days
- name: ceilometer-low-rate
aggregation_methods:
- mean
- rate:mean
back_window: 0
definition:
- granularity: 5 minutes
timespan: 7 days
resources:
- resource_type: identity
metrics:
identity.authenticate.success:
identity.authenticate.pending:
identity.authenticate.failure:
identity.user.created:
identity.user.deleted:
identity.user.updated:
identity.group.created:
identity.group.deleted:
identity.group.updated:
identity.role.created:
identity.role.deleted:
identity.role.updated:
identity.project.created:
identity.project.deleted:
identity.project.updated:
identity.trust.created:
identity.trust.deleted:
identity.role_assignment.created:
identity.role_assignment.deleted:
- resource_type: ceph_account
metrics:
radosgw.objects:
radosgw.objects.size:
radosgw.objects.containers:
radosgw.api.request:
radosgw.containers.objects:
radosgw.containers.objects.size:
- resource_type: instance
metrics:
memory:
memory.usage:
memory.resident:
memory.swap.in:
memory.swap.out:
memory.bandwidth.total:
memory.bandwidth.local:
vcpus:
archive_policy_name: ceilometer-low-rate
cpu:
archive_policy_name: ceilometer-low-rate
cpu_l3_cache:
disk.root.size:
disk.ephemeral.size:
disk.latency:
disk.iops:
disk.capacity:
disk.allocation:
disk.usage:
compute.instance.booting.time:
perf.cpu.cycles:
perf.instructions:
perf.cache.references:
perf.cache.misses:
attributes:
host: resource_metadata.(instance_host|host)
image_ref: resource_metadata.image_ref
launched_at: resource_metadata.launched_at
created_at: resource_metadata.created_at
deleted_at: resource_metadata.deleted_at
display_name: resource_metadata.display_name
flavor_id: resource_metadata.(instance_flavor_id|(flavor.id)|flavor_id)
flavor_name: resource_metadata.(instance_type|(flavor.name)|flavor_name)
server_group: resource_metadata.user_metadata.server_group
event_delete: compute.instance.delete.start
event_attributes:
id: instance_id
event_associated_resources:
instance_network_interface: '{"=": {"instance_id": "%s"}}'
instance_disk: '{"=": {"instance_id": "%s"}}'
- resource_type: instance_network_interface
metrics:
network.outgoing.packets:
archive_policy_name: ceilometer-low-rate
network.incoming.packets:
archive_policy_name: ceilometer-low-rate
network.outgoing.packets.drop:
archive_policy_name: ceilometer-low-rate
network.incoming.packets.drop:
archive_policy_name: ceilometer-low-rate
network.outgoing.packets.error:
archive_policy_name: ceilometer-low-rate
network.incoming.packets.error:
archive_policy_name: ceilometer-low-rate
network.outgoing.bytes:
archive_policy_name: ceilometer-low-rate
network.incoming.bytes:
archive_policy_name: ceilometer-low-rate
attributes:
name: resource_metadata.vnic_name
instance_id: resource_metadata.instance_id
- resource_type: instance_disk
metrics:
disk.device.read.requests:
archive_policy_name: ceilometer-low-rate
disk.device.write.requests:
archive_policy_name: ceilometer-low-rate
disk.device.read.bytes:
archive_policy_name: ceilometer-low-rate
disk.device.write.bytes:
archive_policy_name: ceilometer-low-rate
disk.device.latency:
disk.device.read.latency:
disk.device.write.latency:
disk.device.iops:
disk.device.capacity:
disk.device.allocation:
disk.device.usage:
attributes:
name: resource_metadata.disk_name
instance_id: resource_metadata.instance_id
- resource_type: image
metrics:
image.size:
image.download:
image.serve:
attributes:
name: resource_metadata.name
container_format: resource_metadata.container_format
disk_format: resource_metadata.disk_format
event_delete: image.delete
event_attributes:
id: resource_id
- resource_type: ipmi
metrics:
hardware.ipmi.node.power:
hardware.ipmi.node.temperature:
hardware.ipmi.node.inlet_temperature:
hardware.ipmi.node.outlet_temperature:
hardware.ipmi.node.fan:
hardware.ipmi.node.current:
hardware.ipmi.node.voltage:
hardware.ipmi.node.airflow:
hardware.ipmi.node.cups:
hardware.ipmi.node.cpu_util:
hardware.ipmi.node.mem_util:
hardware.ipmi.node.io_util:
- resource_type: ipmi_sensor
metrics:
hardware.ipmi.fan:
hardware.ipmi.temperature:
hardware.ipmi.current:
hardware.ipmi.voltage:
attributes:
node: resource_metadata.node
- resource_type: network
metrics:
bandwidth:
ip.floating:
event_delete: floatingip.delete.end
event_attributes:
id: resource_id
- resource_type: stack
metrics:
stack.create:
stack.update:
stack.delete:
stack.resume:
stack.suspend:
- resource_type: swift_account
metrics:
storage.objects.incoming.bytes:
storage.objects.outgoing.bytes:
storage.objects.size:
storage.objects:
storage.objects.containers:
storage.containers.objects:
storage.containers.objects.size:
- resource_type: volume
metrics:
volume:
volume.size:
snapshot.size:
volume.snapshot.size:
volume.backup.size:
attributes:
display_name: resource_metadata.(display_name|name)
volume_type: resource_metadata.volume_type
image_id: resource_metadata.image_id
instance_id: resource_metadata.instance_id
event_delete: volume.delete.start
event_attributes:
id: resource_id
- resource_type: volume_provider
metrics:
volume.provider.capacity.total:
volume.provider.capacity.free:
volume.provider.capacity.allocated:
volume.provider.capacity.provisioned:
volume.provider.capacity.virtual_free:
- resource_type: volume_provider_pool
metrics:
volume.provider.pool.capacity.total:
volume.provider.pool.capacity.free:
volume.provider.pool.capacity.allocated:
volume.provider.pool.capacity.provisioned:
volume.provider.pool.capacity.virtual_free:
attributes:
provider: resource_metadata.provider
- resource_type: host
metrics:
hardware.cpu.load.1min:
hardware.cpu.load.5min:
hardware.cpu.load.15min:
hardware.cpu.util:
hardware.memory.total:
hardware.memory.used:
hardware.memory.swap.total:
hardware.memory.swap.avail:
hardware.memory.buffer:
hardware.memory.cached:
hardware.network.ip.outgoing.datagrams:
hardware.network.ip.incoming.datagrams:
hardware.system_stats.cpu.idle:
hardware.system_stats.io.outgoing.blocks:
hardware.system_stats.io.incoming.blocks:
attributes:
host_name: resource_metadata.resource_url
- resource_type: host_disk
metrics:
hardware.disk.size.total:
hardware.disk.size.used:
hardware.disk.read.bytes:
hardware.disk.write.bytes:
hardware.disk.read.requests:
hardware.disk.write.requests:
attributes:
host_name: resource_metadata.resource_url
device_name: resource_metadata.device
- resource_type: host_network_interface
metrics:
hardware.network.incoming.bytes:
hardware.network.outgoing.bytes:
hardware.network.outgoing.errors:
attributes:
host_name: resource_metadata.resource_url
device_name: resource_metadata.name
- resource_type: nova_compute
metrics:
compute.node.cpu.frequency:
compute.node.cpu.idle.percent:
compute.node.cpu.idle.time:
compute.node.cpu.iowait.percent:
compute.node.cpu.iowait.time:
compute.node.cpu.kernel.percent:
compute.node.cpu.kernel.time:
compute.node.cpu.percent:
compute.node.cpu.user.percent:
compute.node.cpu.user.time:
attributes:
host_name: resource_metadata.host
- resource_type: manila_share
metrics:
manila.share.size:
attributes:
name: resource_metadata.name
host: resource_metadata.host
status: resource_metadata.status
availability_zone: resource_metadata.availability_zone
protocol: resource_metadata.protocol
- resource_type: switch
metrics:
switch:
switch.ports:
attributes:
controller: resource_metadata.controller
- resource_type: switch_port
metrics:
switch.port:
switch.port.uptime:
switch.port.receive.packets:
switch.port.transmit.packets:
switch.port.receive.bytes:
switch.port.transmit.bytes:
switch.port.receive.drops:
switch.port.transmit.drops:
switch.port.receive.errors:
switch.port.transmit.errors:
switch.port.receive.frame_error:
switch.port.receive.overrun_error:
switch.port.receive.crc_error:
switch.port.collision.count:
attributes:
switch: resource_metadata.switch
port_number_on_switch: resource_metadata.port_number_on_switch
neutron_port_id: resource_metadata.neutron_port_id
controller: resource_metadata.controller
- resource_type: port
metrics:
port:
port.uptime:
port.receive.packets:
port.transmit.packets:
port.receive.bytes:
port.transmit.bytes:
port.receive.drops:
port.receive.errors:
attributes:
controller: resource_metadata.controller
- resource_type: switch_table
metrics:
switch.table.active.entries:
attributes:
controller: resource_metadata.controller
switch: resource_metadata.switch
wsgi_ceilometer: |
Listen :::{{ tuple "metering" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
WSGISocketPrefix /var/run/httpd/wsgi
<VirtualHost *:{{ tuple "metering" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}>
LogLevel info
WSGIDaemonProcess ceilometer-api processes=2 threads=1 user=ceilometer group=ceilometer display-name=%{GROUP} python-home=/var/lib/openstack socket-user=apache
WSGIProcessGroup ceilometer-api
WSGIScriptReloading On
WSGIScriptAlias / /var/lib/kolla/venv/lib/python2.7/site-packages/ceilometer/api/app.wsgi
WSGIApplicationGroup %{GLOBAL}
<Directory "/var/lib/kolla/venv/lib/python2.7/site-packages/ceilometer/api">
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
ErrorLog /dev/stdout
CustomLog /dev/stdout combined
</VirtualHost>
pod:
affinity:
anti:
type:
default: requiredDuringSchedulingIgnoredDuringExecution
tolerations:
ceilometer:
enabled: true
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: openstack-compute-node
operator: Exists
effect: NoSchedule
...

View File

@ -0,0 +1,41 @@
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
---
apiVersion: "helm.toolkit.fluxcd.io/v2beta1"
kind: HelmRelease
metadata:
name: ceilometer
labels:
chart_group: openstack-ceilometer
spec:
releaseName: osh-openstack-ceilometer
chart:
spec:
chart: ceilometer
version: 0.2.1
sourceRef:
kind: HelmRepository
name: starlingx
interval: 5m
timeout: 30m
test:
enable: false
install:
disableHooks: false
upgrade:
disableHooks: false
dependsOn:
- name: horizon
namespace: openstack
valuesFrom:
- kind: Secret
name: ceilometer-static-overrides
valuesKey: ceilometer-static-overrides.yaml
- kind: Secret
name: ceilometer-system-overrides
valuesKey: ceilometer-system-overrides.yaml
...

View File

@ -0,0 +1,20 @@
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
---
namespace: openstack
resources:
- helmrelease.yaml
secretGenerator:
- name: ceilometer-static-overrides
files:
- ceilometer-static-overrides.yaml
- name: ceilometer-system-overrides
files:
- ceilometer-system-overrides.yaml
generatorOptions:
disableNameSuffixHash: true
...

View File

@ -0,0 +1,139 @@
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
---
release_group: osh-openstack-gnocchi
images:
tags:
db_init: docker.io/starlingx/stx-gnocchi:master-centos-stable-latest
db_init_indexer: docker.io/starlingx/stx-gnocchi:master-centos-stable-latest
db_sync: docker.io/starlingx/stx-gnocchi:master-centos-stable-latest
gnocchi_api: docker.io/starlingx/stx-gnocchi:master-centos-stable-latest
gnocchi_metricd: docker.io/starlingx/stx-gnocchi:master-centos-stable-latest
gnocchi_resources_cleaner: docker.io/starlingx/stx-gnocchi:master-centos-stable-latest
gnocchi_statsd: docker.io/starlingx/stx-gnocchi:master-centos-stable-latest
gnocchi_storage_init: docker.io/openstackhelm/ceph-config-helper:ubuntu_bionic-20201223
image_repo_sync: null
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-stable-latest
ks_service: docker.io/starlingx/stx-heat:master-centos-stable-latest
ks_user: docker.io/starlingx/stx-heat:master-centos-stable-latest
conf:
gnocchi:
indexer:
driver: mariadb
keystone_authtoken:
interface: internal
auth_uri: http://keystone.openstack.svc.cluster.local:80/v3
auth_url: http://keystone.openstack.svc.cluster.local:80/v3
apache: |
Listen :::{{ tuple "metric" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
CustomLog /dev/stdout combined env=!forwarded
CustomLog /dev/stdout proxy env=forwarded
WSGISocketPrefix /var/run/httpd/wsgi
<VirtualHost *:{{ tuple "metric" "internal" "api" . | include "helm-toolkit.endpoints.endpoint_port_lookup" }}>
WSGIDaemonProcess gnocchi processes=1 threads=2 user=gnocchi group=gnocchi display-name=%{GROUP} python-home=/var/lib/openstack socket-user=apache
WSGIProcessGroup gnocchi
WSGIScriptAlias / "/var/lib/openstack/bin/gnocchi-api"
WSGIApplicationGroup %{GLOBAL}
ErrorLog /dev/stdout
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
CustomLog /dev/stdout combined env=!forwarded
CustomLog /dev/stdout proxy env=forwarded
<Directory "/var/lib/openstack/bin">
Require all granted
</Directory>
</VirtualHost>
paste:
composite:gnocchi+basic:
use: egg:Paste#urlmap
/: gnocchiversions_pipeline
/v1: gnocchiv1+noauth
/healthcheck: healthcheck
composite:gnocchi+keystone:
use: egg:Paste#urlmap
/: gnocchiversions_pipeline
/v1: gnocchiv1+keystone
/healthcheck: healthcheck
composite:gnocchi+remoteuser:
use: egg:Paste#urlmap
/: gnocchiversions_pipeline
/v1: gnocchiv1+noauth
/healthcheck: healthcheck
pipeline:gnocchiv1+noauth:
pipeline: gnocchiv1
pipeline:gnocchiv1+keystone:
pipeline: keystone_authtoken gnocchiv1
pipeline:gnocchiversions_pipeline:
pipeline: gnocchiversions
app:gnocchiversions:
paste.app_factory: gnocchi.rest.app:app_factory
root: gnocchi.rest.api.VersionsController
app:gnocchiv1:
paste.app_factory: gnocchi.rest.app:app_factory
root: gnocchi.rest.api.V1Controller
filter:keystone_authtoken:
use: egg:keystonemiddleware#auth_token
oslo_config_project: gnocchi
app:healthcheck:
use: egg:oslo.middleware#healthcheck
oslo_config_project: gnocchi
pod:
affinity:
anti:
type:
default: requiredDuringSchedulingIgnoredDuringExecution
tolerations:
gnocchi:
enabled: true
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: openstack-compute-node
operator: Exists
effect: NoSchedule
dependencies:
static:
db_sync:
jobs:
- gnocchi-storage-init
- gnocchi-db-init
services:
- endpoint: internal
service: oslo_db
metricd:
services:
- endpoint: internal
service: oslo_db
- endpoint: internal
service: oslo_cache
- endpoint: internal
service: metric
tests:
services:
- endpoint: internal
service: identity
- endpoint: internal
service: oslo_db
- endpoint: internal
service: metric
manifests:
daemonset_statsd: false
job_db_init_indexer: false
secret_db_indexer: false
service_statsd: false
endpoints:
oslo_cache:
hosts:
default: memcached
identity:
force_public_endpoint: true
...

View File

@ -0,0 +1,41 @@
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
---
apiVersion: "helm.toolkit.fluxcd.io/v2beta1"
kind: HelmRelease
metadata:
name: gnocchi
labels:
chart_group: openstack-gnocchi
spec:
releaseName: osh-openstack-gnocchi
chart:
spec:
chart: gnocchi
version: 0.1.2
sourceRef:
kind: HelmRepository
name: starlingx
interval: 5m
timeout: 30m
test:
enable: false
install:
disableHooks: false
upgrade:
disableHooks: false
dependsOn:
- name: horizon
namespace: openstack
valuesFrom:
- kind: Secret
name: gnocchi-static-overrides
valuesKey: gnocchi-static-overrides.yaml
- kind: Secret
name: gnocchi-system-overrides
valuesKey: gnocchi-system-overrides.yaml
...

View File

@ -0,0 +1,20 @@
#
# Copyright (c) 2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
---
namespace: openstack
resources:
- helmrelease.yaml
secretGenerator:
- name: gnocchi-static-overrides
files:
- gnocchi-static-overrides.yaml
- name: gnocchi-system-overrides
files:
- gnocchi-system-overrides.yaml
generatorOptions:
disableNameSuffixHash: true
...

View File

@ -35,4 +35,7 @@ resources:
- horizon
- dcdbsync
- ironic
- aodh
- ceilometer
- gnocchi
...