resource_registry: OS::TripleO::SoftwareDeployment: config-download-structured.yaml OS::Heat::SoftwareDeployment: config-download-software.yaml OS::Heat::StructuredDeployment: config-download-structured.yaml OS::TripleO::PostDeploySteps: common/post.yaml OS::TripleO::AllNodes::SoftwareConfig: puppet/all-nodes-config.yaml OS::TripleO::AllNodesDeployment: OS::Heat::StructuredDeployments OS::TripleO::Hosts::SoftwareConfig: hosts-config.yaml OS::TripleO::Ssh::HostPubKey: OS::Heat::None OS::TripleO::Ssh::KnownHostsConfig: extraconfig/tasks/ssh/known_hosts_config.yaml OS::TripleO::Ssh::KnownHostsDeployment: OS::Heat::None OS::TripleO::DefaultPasswords: default_passwords.yaml OS::TripleO::RandomString: OS::Heat::RandomString OS::TripleO::Reboot::SoftwareDeployment: OS::Heat::None {% for role in roles %} OS::TripleO::{{role.name}}::PreNetworkConfig: OS::Heat::None OS::TripleO::{{role.name}}PostDeploySteps: common/post.yaml OS::TripleO::{{role.name}}: puppet/{{role.name.lower()}}-role.yaml OS::TripleO::Tasks::{{role.name}}PreConfig: OS::Heat::None OS::TripleO::Tasks::{{role.name}}PostConfig: OS::Heat::None OS::TripleO::{{role.name}}ExtraConfigPre: puppet/extraconfig/pre_deploy/default.yaml # Port assignments for the {{role.name}} role {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %} OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: network/ports/noop.yaml {%- endfor %} OS::TripleO::{{role.name}}::Net::SoftwareConfig: net-config-noop.yaml {% endfor %} # This resource registry entry will override the one generated by default # in the jinja loop OS::TripleO::Controller::Net::SoftwareConfig: net-config-bridge.yaml OS::TripleO::ServiceServerMetadataHook: OS::Heat::None OS::TripleO::Server: OS::Nova::Server {% for role in roles %} OS::TripleO::{{role.name}}Server: OS::TripleO::Server {% endfor %} # This creates the "heat-admin" user for all OS images by default # To disable, replace with firstboot/userdata_default.yaml OS::TripleO::NodeAdminUserData: firstboot/userdata_heat_admin.yaml # Hooks for operator extra config # NodeUserData == Cloud-init additional user-data, e.g cloud-config # role::NodeUserData == Role specific cloud-init additional user-data # ControllerExtraConfigPre == Controller configuration pre service deployment # NodeExtraConfig == All nodes configuration pre service deployment # NodeExtraConfigPost == All nodes configuration post service deployment OS::TripleO::NodeUserData: firstboot/userdata_default.yaml {% for role in roles %} OS::TripleO::{{role.name}}::NodeUserData: firstboot/userdata_default.yaml {% endfor %} OS::TripleO::NodeTLSCAData: OS::Heat::None OS::TripleO::NodeTLSData: OS::Heat::None OS::TripleO::NodeExtraConfig: puppet/extraconfig/pre_deploy/default.yaml OS::TripleO::NodeExtraConfigPost: extraconfig/post_deploy/default.yaml # "AllNodes" Extra cluster config, runs on all nodes prior to the post_deploy # phase, e.g when puppet is applied, but after the pre_deploy phase. Useful when # configuration with knowledge of all nodes in the cluster is required vs single # node configuration in the pre_deploy step. # See extraconfig/all_nodes/* for examples OS::TripleO::AllNodesExtraConfig: OS::Heat::None # TripleO overcloud networks OS::TripleO::Network: network/networks.yaml {%- for network in networks if network.enabled|default(true) %} OS::TripleO::Network::{{network.name}}: OS::Heat::None {%- endfor %} OS::TripleO::Network::ExtraConfig: OS::Heat::None OS::TripleO::Network::Ports::NetVipMap: network/ports/net_ip_map.yaml OS::TripleO::Network::Ports::NetIpMap: network/ports/net_ip_map.yaml OS::TripleO::Network::Ports::NetIpListMap: network/ports/net_ip_list_map.yaml # Port assignments for the VIPs {%- for network in networks if network.vip|default(false) and network.enabled|default(true) %} OS::TripleO::Network::Ports::{{network.name}}VipPort: network/ports/noop.yaml {%- endfor %} OS::TripleO::Network::Ports::RedisVipPort: network/ports/ctlplane_vip.yaml OS::TripleO::Network::Ports::ControlPlaneVipPort: OS::Neutron::Port # Service to network Mappings OS::TripleO::ServiceNetMap: network/service_net_map.yaml # Service Endpoint Mappings OS::TripleO::EndpointMap: network/endpoints/endpoint_map.yaml # validation resources OS::TripleO::AllNodes::Validation: all-nodes-validation.yaml OS::TripleO::DeployedServerEnvironment: OS::Heat::None OS::TripleO::DeploymentSteps: OS::Heat::None OS::TripleO::WorkflowSteps: OS::Mistral::ExternalResource # services OS::TripleO::Services: common/services.yaml OS::TripleO::Services::Aide: OS::Heat::None OS::TripleO::Services::Apache: puppet/services/apache.yaml OS::TripleO::Services::CACerts: puppet/services/ca-certs.yaml OS::TripleO::Services::CephMds: OS::Heat::None OS::TripleO::Services::CephMgr: OS::Heat::None OS::TripleO::Services::CephMon: OS::Heat::None OS::TripleO::Services::CephRbdMirror: OS::Heat::None OS::TripleO::Services::CephRgw: OS::Heat::None OS::TripleO::Services::CephOSD: OS::Heat::None OS::TripleO::Services::CephClient: OS::Heat::None OS::TripleO::Services::CephNfs: OS::Heat::None OS::TripleO::Services::CephExternal: OS::Heat::None OS::TripleO::Services::CinderApi: deployment/cinder/cinder-api-container-puppet.yaml OS::TripleO::Services::CinderBackup: OS::Heat::None OS::TripleO::Services::CinderScheduler: deployment/cinder/cinder-scheduler-container-puppet.yaml OS::TripleO::Services::CinderVolume: deployment/cinder/cinder-volume-container-puppet.yaml OS::TripleO::Services::BlockStorageCinderVolume: deployment/cinder/cinder-volume-container-puppet.yaml OS::TripleO::Services::Congress: OS::Heat::None OS::TripleO::Services::Keystone: deployment/keystone/keystone-container-puppet.yaml OS::TripleO::Services::GlanceApi: deployment/glance/glance-api-container-puppet.yaml OS::TripleO::Services::HeatApi: deployment/heat/heat-api-container-puppet.yaml OS::TripleO::Services::HeatApiCfn: deployment/heat/heat-api-cfn-container-puppet.yaml OS::TripleO::Services::HeatApiCloudwatch: deployment/heat/heat-api-cloudwatch-disabled-puppet.yaml OS::TripleO::Services::HeatEngine: deployment/heat/heat-engine-container-puppet.yaml OS::TripleO::Services::Kernel: deployment/kernel/kernel-baremetal-puppet.yaml OS::TripleO::Services::Kubernetes::Master: extraconfig/services/kubernetes-master.yaml OS::TripleO::Services::Kubernetes::Worker: extraconfig/services/kubernetes-worker.yaml OS::TripleO::Services::MySQL: docker/services/database/mysql.yaml OS::TripleO::Services::NeutronBgpVpnApi: OS::Heat::None OS::TripleO::Services::NeutronBgpVpnBagpipe: OS::Heat::None OS::TripleO::Services::NeutronSfcApi: OS::Heat::None OS::TripleO::Services::NeutronDhcpAgent: docker/services/neutron-dhcp.yaml OS::TripleO::Services::NeutronL2gwApi: OS::Heat::None OS::TripleO::Services::NeutronL3Agent: docker/services/neutron-l3.yaml OS::TripleO::Services::NeutronL2gwAgent: OS::Heat::None OS::TripleO::Services::NeutronLbaasv2Agent: OS::Heat::None OS::TripleO::Services::NeutronLbaasv2Api: OS::Heat::None OS::TripleO::Services::NeutronMetadataAgent: docker/services/neutron-metadata.yaml OS::TripleO::Services::OVNMetadataAgent: OS::Heat::None # FIXME(shardy) the duplicate NeutronServer line can be removed when we've updated # the multinode job ControllerServices after this patch merges OS::TripleO::Services::NeutronServer: docker/services/neutron-api.yaml OS::TripleO::Services::NeutronApi: docker/services/neutron-api.yaml OS::TripleO::Services::NeutronCorePlugin: docker/services/neutron-plugin-ml2.yaml # can be the same as NeutronCorePlugin but some vendors install different # things where VMs run OS::TripleO::Services::ComputeNeutronCorePlugin: docker/services/neutron-plugin-ml2.yaml OS::TripleO::Services::ComputeNeutronCorePluginNuage: puppet/services/neutron-compute-plugin-nuage.yaml # Neutron Core Plugin Vendors (these typically override NeutronCorePlugin) OS::TripleO::Services::NeutronCorePluginML2OVN: puppet/services/neutron-plugin-ml2-ovn.yaml OS::TripleO::Services::NeutronCorePluginPlumgrid: puppet/services/neutron-plugin-plumgrid.yaml OS::TripleO::Services::NeutronCorePluginNuage: puppet/services/neutron-plugin-nuage.yaml OS::TripleO::Services::NeutronCorePluginML2Nuage: puppet/services/neutron-plugin-ml2-nuage.yaml OS::TripleO::Services::NeutronCorePluginNSX: docker/services/neutron-plugin-nsx.yaml OS::TripleO::Services::OVNDBs: OS::Heat::None OS::TripleO::Services::OVNController: OS::Heat::None OS::TripleO::Services::NeutronCorePluginMLNXSDN: puppet/services/neutron-plugin-ml2-mlnx-sdn-assist.yaml OS::TripleO::Services::NeutronCorePluginMidonet: puppet/services/neutron-midonet.yaml OS::TripleO::Services::NeutronCorePluginVTS: docker/services/neutron-plugin-ml2-cisco-vts.yaml OS::TripleO::Services::NeutronCorePluginML2Ansible: docker/services/neutron-plugin-ml2-ansible.yaml OS::TripleO::Services::NeutronOvsAgent: docker/services/neutron-ovs-agent.yaml OS::TripleO::Services::NeutronLinuxbridgeAgent: OS::Heat::None OS::TripleO::Services::ComputeNeutronOvsAgent: docker/services/neutron-ovs-agent.yaml OS::TripleO::Services::ComputeNeutronOvsDpdk: OS::Heat::None OS::TripleO::Services::Pacemaker: OS::Heat::None OS::TripleO::Services::PacemakerRemote: OS::Heat::None OS::TripleO::Services::NeutronSriovAgent: OS::Heat::None OS::TripleO::Services::NeutronSriovHostConfig: OS::Heat::None OS::TripleO::Services::OsloMessagingRpc: docker/services/messaging/rpc-rabbitmq.yaml OS::TripleO::Services::OsloMessagingNotify: docker/services/messaging/notify-rabbitmq-shared.yaml OS::TripleO::Services::RabbitMQ: OS::Heat::None OS::TripleO::Services::Qdr: OS::Heat::None OS::TripleO::Services::HAproxy: deployment/haproxy/haproxy-container-puppet.yaml OS::TripleO::Services::HAProxyPublicTLS: deployment/haproxy/haproxy-public-tls-inject.yaml OS::TripleO::Services::HAProxyInternalTLS: OS::Heat::None OS::TripleO::Services::Iscsid: deployment/iscsid/iscsid-container-puppet.yaml OS::TripleO::Services::Keepalived: deployment/keepalived/keepalived-container-puppet.yaml OS::TripleO::Services::Memcached: deployment/memcached/memcached-container-puppet.yaml OS::TripleO::Services::SaharaApi: OS::Heat::None OS::TripleO::Services::SaharaEngine: OS::Heat::None OS::TripleO::Services::TripleoUI: OS::Heat::None OS::TripleO::Services::Tuned: deployment/tuned/tuned-baremetal-puppet.yaml OS::TripleO::Services::Securetty: OS::Heat::None OS::TripleO::Services::SELinux: OS::Heat::None OS::TripleO::Services::Sshd: deployment/sshd/sshd-baremetal-puppet.yaml OS::TripleO::Services::Redis: docker/services/database/redis.yaml OS::TripleO::Services::NovaApi: docker/services/nova-api.yaml OS::TripleO::Services::NovaCompute: docker/services/nova-compute.yaml OS::TripleO::Services::NovaConductor: docker/services/nova-conductor.yaml OS::TripleO::Services::NovaConsoleauth: docker/services/nova-consoleauth.yaml OS::TripleO::Services::NovaLibvirt: docker/services/nova-libvirt.yaml OS::TripleO::Services::NovaLibvirtGuests: puppet/services/nova-libvirt-guests.yaml OS::TripleO::Services::NovaMetadata: docker/services/nova-metadata.yaml OS::TripleO::Services::NovaMigrationTarget: docker/services/nova-migration-target.yaml OS::TripleO::Services::NovaPlacement: docker/services/nova-placement.yaml OS::TripleO::Services::NovaScheduler: docker/services/nova-scheduler.yaml OS::TripleO::Services::NovaVncProxy: docker/services/nova-vnc-proxy.yaml OS::TripleO::Services::Novajoin: OS::Heat::None OS::TripleO::Services::ContainersLogrotateCrond: docker/services/logrotate-crond.yaml OS::TripleO::Services::OpenShift::Master: OS::Heat::None OS::TripleO::Services::OpenShift::Worker: OS::Heat::None OS::TripleO::Services::OpenShift::Infra: OS::Heat::None OS::TripleO::Services::OpenShift::GlusterFS: OS::Heat::None OS::TripleO::Services::SwiftProxy: docker/services/swift-proxy.yaml OS::TripleO::Services::SwiftDispersion: OS::Heat::None OS::TripleO::Services::ExternalSwiftProxy: OS::Heat::None OS::TripleO::Services::SwiftStorage: docker/services/swift-storage.yaml OS::TripleO::Services::SwiftRingBuilder: docker/services/swift-ringbuilder.yaml OS::TripleO::Services::Snmp: deployment/snmp/snmp-baremetal-puppet.yaml OS::TripleO::Services::Tacker: OS::Heat::None OS::TripleO::Services::Timezone: deployment/time/timezone-baremetal-puppet.yaml OS::TripleO::Services::CeilometerAgentCentral: docker/services/ceilometer-agent-central.yaml OS::TripleO::Services::CeilometerAgentIpmi: docker/services/ceilometer-agent-ipmi.yaml OS::TripleO::Services::CeilometerAgentNotification: docker/services/ceilometer-agent-notification.yaml OS::TripleO::Services::ComputeCeilometerAgent: docker/services/ceilometer-agent-compute.yaml OS::TripleO::Services::Horizon: docker/services/horizon.yaml #Gnocchi services OS::TripleO::Services::GnocchiApi: docker/services/gnocchi-api.yaml OS::TripleO::Services::GnocchiMetricd: docker/services/gnocchi-metricd.yaml OS::TripleO::Services::GnocchiStatsd: docker/services/gnocchi-statsd.yaml # Drop Xinetd OS::TripleO::Services::Xinetd: docker/services/xinetd.yaml # Time sync services OS::TripleO::Services::Chrony: deployment/timesync/chrony-baremetal-ansible.yaml OS::TripleO::Services::Ntp: deployment/time/ntp-baremetal-puppet.yaml OS::TripleO::Services::Ptp: OS::Heat::None OS::TripleO::Services::Timesync: OS::TripleO::Services::Chrony # Services that are disabled by default (use relevant environment files): OS::TripleO::Services::Fluentd: OS::Heat::None OS::TripleO::Services::Ipsec: OS::Heat::None OS::TripleO::Services::Rhsm: OS::Heat::None OS::TripleO::Services::MasqueradeNetworks: OS::Heat::None OS::TripleO::Services::TripleoValidations: OS::Heat::None OS::TripleO::Services::UndercloudUpgrade: OS::Heat::None OS::TripleO::Services::Collectd: OS::Heat::None OS::TripleO::LoggingConfiguration: puppet/services/logging/fluentd-config.yaml OS::TripleO::Services::ManilaApi: OS::Heat::None OS::TripleO::Services::ManilaScheduler: OS::Heat::None OS::TripleO::Services::ManilaShare: OS::Heat::None OS::TripleO::Services::ManilaBackendIsilon: OS::Heat::None OS::TripleO::Services::ManilaBackendNetapp: OS::Heat::None OS::TripleO::Services::ManilaBackendUnity: OS::Heat::None OS::TripleO::Services::ManilaBackendVMAX: OS::Heat::None OS::TripleO::Services::ManilaBackendCephFs: OS::Heat::None OS::TripleO::Services::ManilaBackendVNX: OS::Heat::None OS::TripleO::Services::ComputeNeutronL3Agent: OS::Heat::None OS::TripleO::Services::ComputeNeutronMetadataAgent: OS::Heat::None OS::TripleO::Services::BarbicanApi: OS::Heat::None OS::TripleO::Services::BarbicanBackendSimpleCrypto: OS::Heat::None OS::TripleO::Services::BarbicanBackendDogtag: OS::Heat::None OS::TripleO::Services::BarbicanBackendKmip: OS::Heat::None OS::TripleO::Services::BarbicanBackendPkcs11Crypto: OS::Heat::None OS::TripleO::Services::AodhApi: deployment/aodh/aodh-api-container-puppet.yaml OS::TripleO::Services::AodhEvaluator: deployment/aodh/aodh-evaluator-container-puppet.yaml OS::TripleO::Services::AodhListener: deployment/aodh/aodh-listener-container-puppet.yaml OS::TripleO::Services::AodhNotifier: deployment/aodh/aodh-notifier-container-puppet.yaml OS::TripleO::Services::PankoApi: docker/services/panko-api.yaml OS::TripleO::Services::MetricsQdr: OS::Heat::None OS::TripleO::Services::MistralEngine: OS::Heat::None OS::TripleO::Services::MistralApi: OS::Heat::None OS::TripleO::Services::MistralExecutor: OS::Heat::None OS::TripleO::Services::MistralEventEngine: OS::Heat::None OS::TripleO::Services::IronicApi: OS::Heat::None OS::TripleO::Services::IronicConductor: OS::Heat::None OS::TripleO::Services::IronicInspector: OS::Heat::None OS::TripleO::Services::IronicPxe: OS::Heat::None OS::TripleO::Services::IronicNeutronAgent: OS::Heat::None OS::TripleO::Services::NovaIronic: OS::Heat::None OS::TripleO::Services::TripleoFirewall: deployment/tripleo-firewall/tripleo-firewall-baremetal-puppet.yaml OS::TripleO::Services::TripleoPackages: deployment/tripleo-packages/tripleo-packages-baremetal-puppet.yaml OS::TripleO::Services::OpenStackClients: OS::Heat::None OS::TripleO::Services::OpenDaylightApi: OS::Heat::None OS::TripleO::Services::OpenDaylightOvs: OS::Heat::None OS::TripleO::Services::SensuClient: OS::Heat::None OS::TripleO::Services::TLSProxyBase: OS::Heat::None OS::TripleO::Services::Zaqar: OS::Heat::None OS::TripleO::Services::NeutronML2FujitsuCfab: OS::Heat::None OS::TripleO::Services::NeutronML2FujitsuFossw: OS::Heat::None OS::TripleO::Services::CinderBackendDellPs: OS::Heat::None OS::TripleO::Services::CinderBackendDellSc: OS::Heat::None OS::TripleO::Services::CinderBackendDellEMCUnity: OS::Heat::None OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI: OS::Heat::None OS::TripleO::Services::CinderBackendDellEMCVNX: OS::Heat::None OS::TripleO::Services::CinderBackendDellEMCXTREMIOISCSI: OS::Heat::None OS::TripleO::Services::CinderBackendNetApp: OS::Heat::None OS::TripleO::Services::CinderBackendPure: OS::Heat::None OS::TripleO::Services::CinderBackendScaleIO: OS::Heat::None OS::TripleO::Services::CinderBackendVRTSHyperScale: OS::Heat::None OS::TripleO::Services::CinderBackendNVMeOF: OS::Heat::None OS::TripleO::Services::CinderHPELeftHandISCSI: OS::Heat::None OS::TripleO::Services::Etcd: OS::Heat::None OS::TripleO::Services::Ec2Api: OS::Heat::None OS::TripleO::Services::AuditD: OS::Heat::None OS::TripleO::Services::OctaviaApi: OS::Heat::None OS::TripleO::Services::OctaviaHealthManager: OS::Heat::None OS::TripleO::Services::OctaviaHousekeeping: OS::Heat::None OS::TripleO::Services::OctaviaWorker: OS::Heat::None OS::TripleO::Services::OctaviaDeploymentConfig: OS::Heat::None OS::TripleO::Services::LiquidioCompute: OS::Heat::None OS::TripleO::Services::MySQLClient: deployment/database/mysql-client.yaml OS::TripleO::Services::Vpp: OS::Heat::None OS::TripleO::Services::NeutronVppAgent: OS::Heat::None OS::TripleO::Services::Podman: OS::Heat::None OS::TripleO::Services::Docker: deployment/docker/docker-baremetal-ansible.yaml OS::TripleO::Services::DockerRegistry: OS::Heat::None OS::TripleO::Services::ContainerImagePrepare: puppet/services/container-image-prepare.yaml OS::TripleO::Services::CertmongerUser: puppet/services/certmonger-user.yaml OS::TripleO::Services::Clustercheck: OS::Heat::None OS::TripleO::Services::RsyslogSidecar: OS::Heat::None OS::TripleO::Services::VRTSHyperScale: OS::Heat::None OS::TripleO::Services::SkydiveAgent: OS::Heat::None OS::TripleO::Services::SkydiveAnalyzer: OS::Heat::None OS::TripleO::Services::LoginDefs: OS::Heat::None OS::TripleO::Services::ComputeInstanceHA: OS::Heat::None OS::TripleO::Services::DesignateApi: OS::Heat::None OS::TripleO::Services::DesignateCentral: OS::Heat::None OS::TripleO::Services::DesignateProducer: OS::Heat::None OS::TripleO::Services::DesignateWorker: OS::Heat::None OS::TripleO::Services::DesignateMDNS: OS::Heat::None OS::TripleO::Services::DesignateSink: OS::Heat::None # Default Neutron ML2 puppet plugin to use when NeutronCorePlugin is set to ML2 # FIXME(bogdando): can not be switched yet due to puppet-base issues # see https://review.openstack.org/#/c/563443 OS::TripleO::Docker::NeutronMl2PluginBase: puppet/services/neutron-plugin-ml2.yaml OS::TripleO::Services::Multipathd: deployment/multipathd/multipathd-container.yaml # Logging OS::TripleO::Services::Logging::BarbicanApi: docker/services/logging/files/barbican-api.yaml OS::TripleO::Services::Logging::GlanceApi: deployment/glance/glance-api-logging-file-container.yaml OS::TripleO::Services::Logging::HAProxy: docker/services/logging/files/haproxy.yaml OS::TripleO::Services::Logging::HeatApi: docker/services/logging/files/heat-api.yaml OS::TripleO::Services::Logging::HeatApiCfn: docker/services/logging/files/heat-api-cfn.yaml OS::TripleO::Services::Logging::HeatEngine: docker/services/logging/files/heat-engine.yaml OS::TripleO::Services::Logging::Keystone: docker/services/logging/files/keystone.yaml OS::TripleO::Services::Logging::NeutronApi: docker/services/logging/files/neutron-api.yaml OS::TripleO::Services::Logging::NeutronCommon: docker/services/logging/files/neutron-common.yaml OS::TripleO::Services::Logging::NovaApi: docker/services/logging/files/nova-api.yaml OS::TripleO::Services::Logging::NovaMetadata: docker/services/logging/files/nova-metadata.yaml OS::TripleO::Services::Logging::NovaCommon: docker/services/logging/files/nova-common.yaml OS::TripleO::Services::Logging::NovaLibvirt: OS::Heat::None OS::TripleO::Services::Logging::NovaPlacement: docker/services/logging/files/nova-placement.yaml OS::TripleO::Services::Logging::OpenDaylightApi: docker/services/logging/files/opendaylight-api.yaml OS::TripleO::Services::Logging::PankoApi: docker/services/logging/files/panko-api.yaml # Tempest OS::TripleO::Services::Tempest: OS::Heat::None OS::TripleO::Services::BootParams: extraconfig/pre_network/boot-params-service.yaml parameter_defaults: EnablePackageInstall: false SoftwareConfigTransport: POLL_TEMP_URL {% for role in roles %} # Parameters generated for {{role.name}} Role {{role.name}}Services: {{role.ServicesDefault|default([])}} {% endfor %}