kolla-kubernetes/etc/kolla-kubernetes/service_resources.yml

710 lines
22 KiB
YAML
Executable File

# YAML mapping of service->pods->containers
# This structure leaves room for adding configuration parameters.
# ORDER MATTERS: Kolla-Kubernetes will evaluate these list-item
# resources in order.
# The (configmap) resources are not defined here, since they come
# directly from kolla.
# The (disk, pv, pvc, and svc) resources hold volume or network state,
# and are more dangerous to delete. These resources are stateful.
# Deleting a disk, pv, or pvc will lose data on a volume. Deleting
# a svc will lose a load-balancer IP.
# The (bootstrap) resources should be run only once, to setup
# persistent state.
# The (pod) resources may be destroyed willy-nilly, since they hold no
# state.
# Template.vars are additional vars in the form of a dict passed to
# the jinja templating engine. Templates may access this dict with
# "kolla_kubernetes.template.vars.<subkey>". This enables arguments
# to be passed to templates so that they may be re-used or
# configured. These template.vars may not contain any other nested
# jinja references, and are passed unmodified directly to the
# template.
kolla-kubernetes:
services:
- name: ceph
pods:
resources:
configmap:
- name: ceph-mon
- name: ceph-osd
secret:
- name: ceph
template: services/ceph/ceph-secret.yml.j2
disk:
pv:
pvc:
svc:
bootstrap:
- name: ceph-bootstrap-initial-mon
template: services/ceph/ceph-bootstrap-initial-mon.yml.j2
pod:
- name: ceph-bootstrap-osd0
template: services/ceph/ceph-bootstrap-osd.yml.j2
vars:
index: '0'
- name: ceph-bootstrap-osd1
template: services/ceph/ceph-bootstrap-osd.yml.j2
vars:
index: '1'
- name: ceph-mon
template: services/ceph/ceph-mon-pod.yml.j2
- name: ceph-osd0
template: services/ceph/ceph-osd-pod.yml.j2
vars:
index: '0'
- name: ceph-osd1
template: services/ceph/ceph-osd-pod.yml.j2
vars:
index: '1'
- name: ceph-admin
template: services/ceph/ceph-admin-pod.yml.j2
- name: ceph-rbd
template: services/ceph/ceph-rbd-pod.yml.j2
- name: mariadb
resources:
configmap:
- name: mariadb
- name: mariadb-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: mariadb-logging
log_format: 'mariadb'
secret:
- name: memcached
resources:
configmap:
- name: memcached
secret:
- name: keystone
resources:
configmap:
- name: keystone
- name: keystone-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: keystone-logging
log_format: 'openstack'
secret:
- name: horizon
resources:
configmap:
- name: horizon
- name: horizon-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: horizon-logging
log_format: 'horizon'
secret:
- name: rabbitmq
resources:
configmap:
- name: rabbitmq
- name: rabbitmq-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: rabbitmq-logging
log_format: 'rabbitmq'
secret:
- name: glance
resources:
configmap:
- name: glance-api
- name: glance-registry
- name: glance-api-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: glance-api-haproxy
port_name: glance_api_port
- name: glance-api-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: glance-api-logging
- name: glance-registry-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: glance-registry-haproxy
port_name: glance_registry_port
- name: glance-registry-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: glance-registry-logging
log_format: 'openstack'
secret:
- name: nova
pods:
- name: nova-compute
containers:
- name: nova-compute
- name: nova-libvirt
- name: nova-compute-ironic
- name: nova-control
containers:
- name: nova-api
- name: nova-scheduler
- name: nova-conductor
- name: nova-consoleauth
- name: nova-novncproxy
resources:
configmap:
- name: nova-api
- name: nova-api-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: nova-api-haproxy
port_name: nova_api_port
- name: nova-api-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: nova-api-logging
log_format: 'openstack'
- name: nova-compute-ironic
- name: nova-compute
- name: nova-compute-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: nova-compute-logging
log_format: 'openstack'
- name: nova-conductor
- name: nova-conductor-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: nova-conductor-logging
log_format: 'openstack'
- name: nova-libvirt
- name: nova-libvirt-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: nova-libvirt-logging
log_format: 'openstack'
- name: nova-scheduler
- name: nova-scheduler-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: nova-scheduler-logging
log_format: 'openstack'
- name: nova-consoleauth
- name: nova-novncproxy
- name: nova-novncproxy-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: nova-novncproxy-haproxy
port_name: nova_novncproxy_port
- name: nova-novncproxy-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: nova-novncproxy-logging
log_format: 'openstack'
- name: placement-api
- name: placement-api-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: placement-api-haproxy
port_name: placement_api_port
secret:
- name: nova-libvirt
template: services/nova/nova-libvirt-secret.yml.j2
disk:
pv:
pvc:
svc:
- name: nova-novncproxy
template: services/common/generic-service.yml.j2
vars:
port_name: nova_novncproxy_port
service: nova
type: novncproxy
name: nova-novncproxy
- name: nova-api
template: services/common/generic-service.yml.j2
vars:
port_name: nova_api_port
service: nova
type: api
name: nova-api
- name: nova-metadata
template: services/common/generic-service.yml.j2
vars:
port_name: nova_metadata_port
service: nova
type: api
name: nova-metadata
bootstrap:
- name: nova-create-api-db
template: services/nova/nova-control-bootstrap-job-create-nova-api-db.yml.j2
- name: nova-create-keystone-endpoint-public
template: services/common/common-create-keystone-endpoint.yml.j2
vars:
service_name: nova
service_type: compute
interface: public
service_auth: openstack_nova_auth
description: Openstack Compute
endpoint: nova_public_endpoint
- name: nova-create-keystone-endpoint-internal
template: services/common/common-create-keystone-endpoint.yml.j2
vars:
service_name: nova
service_type: compute
interface: internal
service_auth: openstack_nova_auth
description: Openstack Compute
endpoint: nova_internal_endpoint
- name: nova-create-keystone-endpoint-admin
template: services/common/common-create-keystone-endpoint.yml.j2
vars:
service_name: nova
service_type: compute
interface: admin
service_auth: openstack_nova_auth
description: Openstack Compute
endpoint: nova_admin_endpoint
- name: nova-create-keystone-user
template: services/common/common-create-keystone-user.yml.j2
vars:
user: nova
role: admin
service_auth: openstack_nova_auth
secret: nova-keystone-password
- name: nova-create-db
template: services/nova/nova-control-bootstrap-job-create-nova-db.yml.j2
pod:
- name: nova-compute
template: services/nova/nova-compute-pod.yml.j2
- name: nova-libvirt
template: services/nova/nova-libvirt-pod.yml.j2
- name: nova-api
template: services/common/common-deployment.yml.j2
vars:
replicas: nova_api_replicas
service_name: nova
service_type: api
service_location: kolla_kubernetes_hostlabel_nova_api
config_file_name: nova.conf
config_section_name: DEFAULT
config_listen_host_parameter: osapi_compute_listen
config_listen_port_parameter: osapi_compute_listen_port
port: nova_api_port
port_name: nova-api
image: nova_api_image_full
check_path: /healthcheck
extra_volumes:
- name: lib-modules
hostPath:
path: /lib/modules
extra_volume_mounts:
- mountPath: /lib/modules
name: lib-modules
privileged: true
- name: nova-conductor
template: services/nova/nova-control-conductor-pod.yml.j2
- name: nova-scheduler
template: services/nova/nova-control-scheduler-pod.yml.j2
- name: nova-consoleauth
template: services/nova/nova-control-consoleauth-pod.yml.j2
- name: nova-novncproxy
template: services/common/common-deployment.yml.j2
vars:
replicas: nova_novncproxy_replicas
service_name: nova
service_type: novncproxy
service_location: kolla_kubernetes_hostlabel_nova_novncproxy
config_file_name: nova.conf
config_section_name: vnc
config_listen_host_parameter: novncproxy_host
config_listen_port_parameter: novncproxy_port
port: nova_novncproxy_port
port_name: nova-novncproxy
image: nova_novncproxy_image_full
check_path: /vnc_auto.html
- name: openvswitch
pods:
- name: openvswitch-ovsdb
containers:
- name: openvswitch-ovsdb
- name: openvswitch-vswitchd
containers:
- name: openvswitch-vswitchd
resources:
configmap:
- name: openvswitch-db-server
- name: openvswitch-vswitchd
secret:
disk:
pv:
pvc:
svc:
bootstrap:
- name: openvswitch-set-external-ip
template: services/openvswitch/openvswitch-set-external-ip-job.yml.j2
pod:
- name: openvswitch-ovsdb-compute
template: services/openvswitch/openvswitch-ovsdb-daemonset.yml.j2
vars:
type: compute
- name: openvswitch-ovsdb-network
template: services/openvswitch/openvswitch-ovsdb-daemonset.yml.j2
vars:
type: network
- name: openvswitch-vswitchd-compute
template: services/openvswitch/openvswitch-vswitchd-daemonset.yml.j2
vars:
type: compute
- name: openvswitch-vswitchd-network
template: services/openvswitch/openvswitch-vswitchd-daemonset.yml.j2
vars:
type: network
- name: neutron
resources:
configmap:
- name: neutron-server
- name: neutron-server-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: neutron-server-haproxy
port_name: neutron_server_port
- name: neutron-server-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: neutron-server-logging
log_format: 'openstack'
- name: neutron-dhcp-agent
- name: neutron-l3-agent
- name: neutron-l3-agent-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: neutron-l3-agent-logging
log_format: 'openstack'
- name: neutron-metadata-agent
- name: neutron-metadata-agent-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: neutron-metadata-agent-logging
log_format: 'openstack'
- name: neutron-openvswitch-agent
- name: neutron-openvswitch-agent-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: neutron-openvswitch-agent-logging
log_format: 'openstack'
secret:
bootstrap:
- name: neutron-create-db
template: services/neutron/neutron-bootstrap-job-create-db.yml.j2
- name: swift
pods:
- name: swift-account
containers:
- name: swift-rsyncd
- name: swift-account-server
- name: swift-account-auditor
- name: swift-account-replicator
- name: swift-account-reaper'
- name: swift-container
containers:
- name: swift-rsyncd
- name: swift-container-server
- name: swift-container-auditor
- name: swift-container-replicator
- name: swift-container-updater
- name: swift-object
containers:
- name: swift-rsyncd
- name: swift-object-server
- name: swift-object-auditor
- name: swift-object-replicator
- name: swift-object-updater
- name: swift-object-expirer
- name: swift-proxy
containers:
- name: swift-proxy-server
resources:
configmap:
- name: swift-rsyncd
- name: swift-account-server
- name: swift-account-auditor
- name: swift-account-replicator
- name: swift-account-reaper
- name: swift-rsyncd
- name: swift-container-server
- name: swift-container-auditor
- name: swift-container-replicator
- name: swift-container-updater
- name: swift-rsyncd
- name: swift-object-server
- name: swift-object-auditor
- name: swift-object-replicator
- name: swift-object-updater
- name: swift-object-expirer
- name: swift-proxy-server
secret:
disk:
pv:
pvc:
svc:
- name: swift-account
template: services/swift/swift-account-service.yml.j2
- name: swift-container
template: services/swift/swift-container-service.yml.j2
- name: swift-object
template: services/swift/swift-object-service.yml.j2
- name: swift-proxy
template: services/swift/swift-proxy-service.yml.j2
- name: swift-rsyncd
template: services/swift/swift-rsync-service.yml.j2
bootstrap:
pod:
- name: swift-account
template: services/swift/swift-account-pod.yml.j2
- name: swift-container
template: services/swift/swift-container-pod.yml.j2
- name: swift-object
template: services/swift/swift-object-pod.yml.j2
- name: swift-proxy
template: services/swift/swift-proxy-pod.yml.j2
- name: iscsi
resources:
configmap:
- name: iscsid
- name: tgtd
secret:
- name: cinder
resources:
configmap:
- name: cinder-api
- name: cinder-api-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: cinder-api-haproxy
port_name: cinder_api_port
- name: cinder-api-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: cinder-api-logging
log_format: 'openstack'
- name: cinder-backup
- name: cinder-backup-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: cinder-backup-logging
log_format: 'openstack'
- name: cinder-scheduler
- name: cinder-scheduler-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: cinder-scheduler-logging
log_format: 'openstack'
- name: cinder-volume
- name: cinder-volume-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: cinder-volume-logging
log_format: 'openstack'
secret:
- name: elasticsearch
pods:
- name: elasticsearch
containers:
- name: elasticsearch
resources:
configmap:
- name: elasticsearch
secret:
disk:
- name: elasticsearch
template: services/common/common-disk.sh.j2
vars:
size_in_gb: 10
pv:
- name: elasticsearch
template: services/common/common-pv.yml.j2
vars:
name: elasticsearch
size_in_gb: 10
pvc:
- name: elasticsearch
template: services/common/common-pvc.yml.j2
vars:
name: elasticsearch
size_in_gb: 10
svc:
- name: elasticsearch
template: services/common/generic-service.yml.j2
vars:
port_name: elasticsearch_port
type: elasticsearch
service: elasticsearch
name: elasticsearch
bootstrap:
pod:
- name: elasticsearch
template: services/elasticsearch/elasticsearch-pod.yml.j2
- name: kibana
pods:
- name: kibana
containers:
- name: kibana
resources:
configmap:
- name: kibana
- name: kibana-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: kibana-haproxy
port_name: kibana_server_port
- name: kibana-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: kibana-logging
secret:
disk:
pv:
pvc:
svc:
- name: kibana
template: services/common/generic-service.yml.j2
vars:
port_name: kibana_server_port
service: kibana
type: kibana
name: kibana
bootstrap:
pod:
- name: kibana
template: services/common/common-deployment.yml.j2
vars:
replicas: kibana_replicas
service_name: kibana
service_type: kibana
service_location: kolla_kubernetes_hostlabel_kibana
config_file_name: glance-registry.conf
config_section_name: DEFAULT
config_listen_host_parameter: bind_host
config_listen_port_parameter: bind_port
port: kibana_server_port
port_name: kibana
image: kibana_image_full
check_path: /
- name: keepalived
pods:
- name: keepalived
containers:
- name: keepalived
- name: keepalived
containers:
- name: keepalived
resources:
configmap:
- name: keepalived
template: services/keepalived/keepalived-configmap.yml.j2
secret:
disk:
pv:
pvc:
svc:
bootstrap:
pod:
- name: keepalived
template: services/keepalived/keepalived-daemonset.yml.j2
- name: ironic
pods:
- name: ironic-conductor
containers:
- name: ironic-conductor
- name: ironic-pxe
containers:
- name: ironic-pxe
- name: ironic-api
containers:
- name: ironic-api
- name: ironic-dnsmasq
containers:
- name: ironic-dnsmasq
- name: ironic-inspector
containers:
- name: ironic-inspector
resources:
configmap:
- name: ironic-api
- name: ironic-api-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: ironic-api-haproxy
port_name: ironic_api_port
- name: ironic-api-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: ironic-api-logging
log_format: 'openstack'
- name: ironic-conductor
- name: ironic-conductor-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: ironic-conductor-logging
log_format: 'openstack'
- name: ironic-inspector-tftp
- name: ironic-conductor-tftp
- name: ironic-dnsmasq
- name: ironic-dnsmasq-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: ironic-conductor-logging
log_format: 'openstack'
- name: ironic-inspector
- name: ironic-inspector-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: ironic-inspector-logging
log_format: 'openstack'
- name: ironic-inspector-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: ironic-inspector-haproxy
port_name: ironic_inspector_port
- name: heat
pods:
- name: heat-all
containers:
- name: heat-all
- name: heat-api
containers:
- name: heat-api
- name: heat-api-cfn
containers:
- name: heat-api-cfn
- name: heat-engine
containers:
- name: heat-engine
resources:
configmap:
- name: heat
- name: heat-all
- name: heat-api
- name: heat-api-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: heat-api-haproxy
port_name: heat_api_port
- name: heat-api-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: heat-api-logging
log_format: 'openstack'
- name: heat-api-cfn
- name: heat-api-cfn-haproxy
template: services/common/api-haproxy-configmap.yml.j2
vars:
configmap_name: heat-api-cfn-haproxy
port_name: heat_api_cfn_port
- name: heat-api-cfn-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: heat-api-cfn-logging
log_format: 'openstack'
- name: heat-engine
- name: heat-engine-logging
template: services/common/logging-configmap.yml.j2
vars:
configmap_name: heat-engine-logging
log_format: 'openstack'