Merge "Tidied up the last references to ODL" into stable/arno
[genesis.git] / fuel / deploy / templates / hardware_environment / conf / ericsson_montreal_lab / dea.yaml
1 title: Deployment Environment Adapter (DEA)
2 # DEA API version supported
3 version:
4 created:
5 comment: Config for Ericsson Montreal Lab - HA deployment with Ceph and Opendaylight
6 environment:
7   name: opnfv
8   mode: ha
9   net_segment_type: gre
10 wanted_release: Juno on Ubuntu 14.04.1
11 nodes:
12 - id: 1
13   interfaces: interfaces_1
14   transformations: transformations_1
15   role: ceph-osd,controller
16 - id: 2
17   interfaces: interfaces_1
18   transformations: transformations_1
19   role: ceph-osd,controller
20 - id: 3
21   interfaces: interfaces_1
22   transformations: transformations_1
23   role: ceph-osd,controller
24 - id: 4
25   interfaces: interfaces_1
26   transformations: transformations_2
27   role: ceph-osd,compute
28 - id: 5
29   interfaces: interfaces_1
30   transformations: transformations_2
31   role: ceph-osd,compute
32 - id: 6
33   interfaces: interfaces_1
34   transformations: transformations_2
35   role: ceph-osd,compute
36 fuel:
37   ADMIN_NETWORK:
38     ipaddress: 10.40.0.2
39     netmask: 255.255.255.0
40     dhcp_pool_start: 10.40.0.3
41     dhcp_pool_end: 10.40.0.254
42   DNS_UPSTREAM: 10.118.32.193
43   DNS_DOMAIN: opnfvericsson.ca
44   DNS_SEARCH: opnfvericsson.ca
45   FUEL_ACCESS:
46     user: admin
47     password: admin
48   HOSTNAME: opnfv
49   NTP1: 10.118.34.219
50   NTP2:
51   NTP3:
52 interfaces_1:
53   eth0:
54   - fuelweb_admin
55   eth2:
56   - public
57   - management
58   - storage
59   - private
60 transformations_1:
61   transformations:
62   - action: add-br
63     name: br-fw-admin
64   - action: add-br
65     name: br-mgmt
66   - action: add-br
67     name: br-storage
68   - action: add-br
69     name: br-ex
70   - action: add-br
71     name: br-floating
72     provider: ovs
73   - action: add-patch
74     bridges:
75     - br-floating
76     - br-ex
77     mtu: 65000
78     provider: ovs
79   - action: add-br
80     name: br-mesh
81   - action: add-port
82     bridge: br-fw-admin
83     name: eth0
84   - action: add-port
85     bridge: br-mgmt
86     name: eth2.320
87   - action: add-port
88     bridge: br-storage
89     name: eth2.220
90   - action: add-port
91     bridge: br-mesh
92     name: eth2.20
93   - action: add-port
94     bridge: br-ex
95     name: eth0
96 transformations_2:
97   transformations:
98   - action: add-br
99     name: br-fw-admin
100   - action: add-br
101     name: br-mgmt
102   - action: add-br
103     name: br-storage
104   - action: add-br
105     name: br-mesh
106   - action: add-port
107     bridge: br-fw-admin
108     name: eth0
109   - action: add-port
110     bridge: br-mgmt
111     name: eth2.320
112   - action: add-port
113     bridge: br-storage
114     name: eth2.220
115   - action: add-port
116     bridge: br-mesh
117     name: eth2.20
118 network:
119   networking_parameters:
120     base_mac: fa:16:3e:00:00:00
121     dns_nameservers:
122     - 10.118.32.193
123     floating_ranges:
124     - - 10.118.34.226
125       - 10.118.34.230
126     gre_id_range:
127     - 2
128     - 65535
129     internal_cidr: 192.168.111.0/24
130     internal_gateway: 192.168.111.1
131     net_l23_provider: ovs
132     segmentation_type: gre
133     vlan_range:
134     - 2022
135     - 2023
136   networks:
137   - cidr: 10.118.34.192/24
138     gateway: 10.118.34.193
139     ip_ranges:
140     - - 10.118.34.220
141       - 10.118.34.225
142     meta:
143       cidr: 10.118.34.192/24
144       configurable: true
145       floating_range_var: floating_ranges
146       ip_range:
147       - 10.118.34.220
148       - 10.118.34.225
149       map_priority: 1
150       name: public
151       notation: ip_ranges
152       render_addr_mask: public
153       render_type: null
154       use_gateway: true
155       vips:
156       - haproxy
157       - vrouter
158       vlan_start: null
159     name: public
160     vlan_start: null
161   - cidr: 192.168.0.0/24
162     gateway: null
163     ip_ranges:
164     - - 192.168.0.1
165       - 192.168.0.254
166     meta:
167       cidr: 192.168.0.0/24
168       configurable: true
169       map_priority: 2
170       name: management
171       notation: cidr
172       render_addr_mask: internal
173       render_type: cidr
174       use_gateway: false
175       vips:
176       - haproxy
177       - vrouter
178       vlan_start: 320
179     name: management
180     vlan_start: 320
181   - cidr: 192.168.1.0/24
182     gateway: null
183     ip_ranges:
184     - - 192.168.1.1
185       - 192.168.1.254
186     meta:
187       cidr: 192.168.1.0/24
188       configurable: true
189       map_priority: 2
190       name: storage
191       notation: cidr
192       render_addr_mask: storage
193       render_type: cidr
194       use_gateway: false
195       vlan_start: 220
196     name: storage
197     vlan_start: 220
198   - cidr: 192.168.2.0/24
199     gateway: null
200     ip_ranges:
201     - - 192.168.2.1
202       - 192.168.2.254
203     meta:
204       assign_vip: 192.168.2.0/24
205       configurable: true
206       map_priority: 2
207       name: private
208       notation: cidr
209       render_addr_mask: private
210       render_type: cidr
211       seg_type: gre
212       use_gateway: false
213       vlan_start: 20
214     name: private
215     vlan_start: 20
216   - cidr: 10.40.0.0/24
217     gateway: 10.40.0.2
218     ip_ranges:
219     - - 10.40.0.3
220       - 10.40.255.254
221     meta:
222       configurable: false
223       map_priority: 0
224       notation: ip_ranges
225       render_addr_mask: null
226       render_type: null
227       unmovable: true
228       use_gateway: true
229     name: fuelweb_admin
230     vlan_start: null
231 settings:
232   editable:
233     access:
234       email:
235         description: Email address for Administrator
236         label: Email
237         regex:
238           error: Invalid email
239           source: ^\S+@\S+$
240         type: text
241         value: admin@localhost
242         weight: 40
243       metadata:
244         label: Access
245         weight: 10
246       password:
247         description: Password for Administrator
248         label: Password
249         regex:
250           error: Empty password
251           source: \S
252         type: password
253         value: admin
254         weight: 20
255       tenant:
256         description: Tenant (project) name for Administrator
257         label: Tenant
258         regex:
259           error: Invalid tenant name
260           source: ^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?![Gg]uest$)(?!.*
261             +.*$).+
262         type: text
263         value: admin
264         weight: 30
265       user:
266         description: Username for Administrator
267         label: Username
268         regex:
269           error: Invalid username
270           source: ^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?![Gg]uest$)(?!.*
271             +.*$).+
272         type: text
273         value: admin
274         weight: 10
275     additional_components:
276       ceilometer:
277         description: If selected, Ceilometer component will be installed
278         label: Install Ceilometer
279         type: checkbox
280         value: false
281         weight: 40
282       heat:
283         description: ''
284         label: ''
285         type: hidden
286         value: true
287         weight: 30
288       metadata:
289         label: Additional Components
290         weight: 20
291       mongo:
292         description: If selected, You can use external Mongo DB as ceilometer backend
293         label: Use external Mongo DB
294         restrictions:
295         - settings:additional_components.ceilometer.value == false
296         type: checkbox
297         value: false
298         weight: 40
299       murano:
300         description: If selected, Murano component will be installed
301         label: Install Murano
302         restrictions:
303         - cluster:net_provider != 'neutron'
304         type: checkbox
305         value: false
306         weight: 20
307       sahara:
308         description: If selected, Sahara component will be installed
309         label: Install Sahara
310         type: checkbox
311         value: false
312         weight: 10
313     common:
314       auth_key:
315         description: Public key(s) to include in authorized_keys on deployed nodes
316         label: Public Key
317         type: textarea
318         value: ''
319         weight: 70
320       auto_assign_floating_ip:
321         description: If selected, OpenStack will automatically assign a floating IP
322           to a new instance
323         label: Auto assign floating IP
324         restrictions:
325         - action: hide
326           condition: cluster:net_provider == 'neutron'
327         type: checkbox
328         value: false
329         weight: 40
330       debug:
331         description: Debug logging mode provides more information, but requires more
332           disk space.
333         label: OpenStack debug logging
334         type: checkbox
335         value: false
336         weight: 20
337       libvirt_type:
338         label: Hypervisor type
339         type: radio
340         value: kvm
341         values:
342         - data: kvm
343           description: Choose this type of hypervisor if you run OpenStack on hardware
344           label: KVM
345         - data: qemu
346           description: Choose this type of hypervisor if you run OpenStack on virtual
347             hosts.
348           label: QEMU
349         weight: 30
350       metadata:
351         label: Common
352         weight: 30
353       nova_quota:
354         description: Quotas are used to limit CPU and memory usage for tenants. Enabling
355           quotas will increase load on the Nova database.
356         label: Nova quotas
357         type: checkbox
358         value: false
359         weight: 25
360       puppet_debug:
361         description: Debug puppet logging mode provides more information, but requires
362           more disk space.
363         label: Puppet debug logging
364         type: checkbox
365         value: true
366         weight: 20
367       resume_guests_state_on_host_boot:
368         description: Whether to resume previous guests state when the host reboots.
369           If enabled, this option causes guests assigned to the host to resume their
370           previous state. If the guest was running a restart will be attempted when
371           nova-compute starts. If the guest was not running previously, a restart will
372           not be attempted.
373         label: Resume guests state on host boot
374         type: checkbox
375         value: true
376         weight: 60
377       use_cow_images:
378         description: For most cases you will want qcow format. If it's disabled, raw
379           image format will be used to run VMs. OpenStack with raw format currently
380           does not support snapshotting.
381         label: Use qcow format for images
382         type: checkbox
383         value: true
384         weight: 50
385       use_vcenter:
386         type: hidden
387         value: false
388         weight: 30
389     corosync:
390       group:
391         description: ''
392         label: Group
393         type: text
394         value: 226.94.1.1
395         weight: 10
396       metadata:
397         label: Corosync
398         restrictions:
399         - action: hide
400           condition: 'true'
401         weight: 50
402       port:
403         description: ''
404         label: Port
405         type: text
406         value: '12000'
407         weight: 20
408       verified:
409         description: Set True only if multicast is configured correctly on router.
410         label: Need to pass network verification.
411         type: checkbox
412         value: false
413         weight: 10
414     external_dns:
415       dns_list:
416         description: List of upstream DNS servers, separated by comma
417         label: DNS list
418         regex:
419           error: Invalid IP address list
420           source: ^\*$|^(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3}(?:\s*,\s*(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3})*$
421         type: text
422         value: 10.118.32.193
423         weight: 10
424       metadata:
425         label: Host OS DNS Servers
426         weight: 90
427     external_mongo:
428       hosts_ip:
429         description: IP Addresses of MongoDB. Use comma to split IPs
430         label: MongoDB hosts IP
431         regex:
432           error: Invalid hosts ip sequence
433           source: ^(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?),)*((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
434         type: text
435         value: ''
436         weight: 30
437       metadata:
438         label: External MongoDB
439         restrictions:
440         - action: hide
441           condition: settings:additional_components.mongo.value == false
442         weight: 20
443       mongo_db_name:
444         description: Mongo database name
445         label: Database name
446         regex:
447           error: Invalid database name
448           source: ^\w+$
449         type: text
450         value: ceilometer
451         weight: 30
452       mongo_password:
453         description: Mongo database password
454         label: Password
455         regex:
456           error: Password contains spaces
457           source: ^\S*$
458         type: password
459         value: ceilometer
460         weight: 30
461       mongo_replset:
462         description: Name for Mongo replication set
463         label: Replset
464         type: text
465         value: ''
466         weight: 30
467       mongo_user:
468         description: Mongo database username
469         label: Username
470         regex:
471           error: Empty username
472           source: ^\w+$
473         type: text
474         value: ceilometer
475         weight: 30
476     external_ntp:
477       metadata:
478         label: Host OS NTP Servers
479         weight: 100
480       ntp_list:
481         description: List of upstream NTP servers, separated by comma
482         label: NTP server list
483         regex:
484           error: Invalid NTP server list
485           source: ^\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(?:\.\d{1,3}){3})\s*(?:,\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(\.\d{1,3}){3})\s*)*$
486         type: text
487         value:  10.118.34.219
488         weight: 10
489     kernel_params:
490       kernel:
491         description: Default kernel parameters
492         label: Initial parameters
493         type: text
494         value: console=ttyS0,9600 console=tty0 net.ifnames=0 biosdevname=0 rootdelay=90
495           nomodeset
496         weight: 45
497       metadata:
498         label: Kernel parameters
499         weight: 40
500     murano_settings:
501       metadata:
502         label: Murano Settings
503         restrictions:
504         - action: hide
505           condition: settings:additional_components.murano.value == false
506         weight: 20
507       murano_repo_url:
508         description: ''
509         label: Murano Repository URL
510         type: text
511         value: http://storage.apps.openstack.org/
512         weight: 10
513     neutron_mellanox:
514       metadata:
515         enabled: true
516         label: Mellanox Neutron components
517         restrictions:
518         - action: hide
519           condition: not ('experimental' in version:feature_groups)
520         toggleable: false
521         weight: 50
522       plugin:
523         label: Mellanox drivers and SR-IOV plugin
524         type: radio
525         value: disabled
526         values:
527         - data: disabled
528           description: If selected, Mellanox drivers, Neutron and Cinder plugin will
529             not be installed.
530           label: Mellanox drivers and plugins disabled
531           restrictions:
532           - settings:storage.iser.value == true
533         - data: drivers_only
534           description: If selected, Mellanox Ethernet drivers will be installed to support
535             networking over Mellanox NIC. Mellanox Neutron plugin will not be installed.
536           label: Install only Mellanox drivers
537           restrictions:
538           - settings:common.libvirt_type.value != 'kvm'
539         - data: ethernet
540           description: If selected, both Mellanox Ethernet drivers and Mellanox network
541             acceleration (Neutron) plugin will be installed.
542           label: Install Mellanox drivers and SR-IOV plugin
543           restrictions:
544           - settings:common.libvirt_type.value != 'kvm' or not (cluster:net_provider
545             == 'neutron' and networking_parameters:segmentation_type == 'vlan')
546         weight: 60
547       vf_num:
548         description: Note that one virtual function will be reserved to the storage
549           network, in case of choosing iSER.
550         label: Number of virtual NICs
551         restrictions:
552         - settings:neutron_mellanox.plugin.value != 'ethernet'
553         type: text
554         value: '16'
555         weight: 70
556     opendaylight:
557       metadata:
558         enabled: true
559         label: OpenDaylight plugin
560         plugin_id: 1
561         restrictions:
562         - cluster:net_provider != 'neutron': Only neutron is supported by OpenDaylight
563         toggleable: true
564         weight: 70
565       rest_api_port:
566         description: Port on which ODL REST API will be available.
567         label: Port number
568         regex:
569           error: Invalid port number
570           source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$
571         type: text
572         value: '8282'
573         weight: 40
574       use_vxlan:
575         description: Configure neutron to use VXLAN tunneling
576         label: Use vxlan
577         restrictions:
578         - action: disable
579           condition: networking_parameters:segmentation_type == 'vlan'
580           message: Neutron with GRE segmentation required
581         type: checkbox
582         value: true
583         weight: 20
584       vni_range_end:
585         description: VXLAN VNI IDs range end
586         label: VNI range end
587         regex:
588           error: Invalid ID number
589           source: ^\d+$
590         restrictions:
591         - action: hide
592           condition: networking_parameters:segmentation_type == 'vlan'
593         type: text
594         value: '10000'
595         weight: 31
596       vni_range_start:
597         description: VXLAN VNI IDs range start
598         label: VNI range start
599         regex:
600           error: Invalid ID number
601           source: ^\d+$
602         restrictions:
603         - action: hide
604           condition: networking_parameters:segmentation_type == 'vlan'
605         type: text
606         value: '10'
607         weight: 30
608     provision:
609       metadata:
610         label: Provision
611         weight: 80
612       method:
613         description: Which provision method to use for this cluster.
614         label: Provision method
615         type: radio
616         value: image
617         values:
618         - data: image
619           description: Copying pre-built images on a disk.
620           label: Image
621         - data: cobbler
622           description: Install from scratch using anaconda or debian-installer.
623           label: (DEPRECATED) Classic (use anaconda or debian-installer)
624     public_network_assignment:
625       assign_to_all_nodes:
626         description: When disabled, public network will be assigned to controllers only
627         label: Assign public network to all nodes
628         type: checkbox
629         value: false
630         weight: 10
631       metadata:
632         label: Public network assignment
633         restrictions:
634         - action: hide
635           condition: cluster:net_provider != 'neutron'
636         weight: 50
637     repo_setup:
638       metadata:
639         always_editable: true
640         label: Repositories
641         weight: 50
642       repos:
643         description: 'Please note: the first repository will be considered the operating
644           system mirror that will be used during node provisioning.
645
646           To create a local repository mirror on the Fuel master node, please follow
647           the instructions provided by running "fuel-createmirror --help" on the Fuel
648           master node.
649
650           Please make sure your Fuel master node has Internet access to the repository
651           before attempting to create a mirror.
652
653           For more details, please refer to the documentation (https://docs.mirantis.com/openstack/fuel/fuel-6.1/operations.html#external-ubuntu-ops).
654
655           '
656         extra_priority: null
657         type: custom_repo_configuration
658         value:
659         - name: ubuntu
660           priority: null
661           section: main universe multiverse
662           suite: trusty
663           type: deb
664           uri: http://archive.ubuntu.com/ubuntu/
665         - name: ubuntu-updates
666           priority: null
667           section: main universe multiverse
668           suite: trusty-updates
669           type: deb
670           uri: http://archive.ubuntu.com/ubuntu/
671         - name: ubuntu-security
672           priority: null
673           section: main universe multiverse
674           suite: trusty-security
675           type: deb
676           uri: http://archive.ubuntu.com/ubuntu/
677         - name: mos
678           priority: 1050
679           section: main restricted
680           suite: mos6.1
681           type: deb
682           uri: http://10.40.0.2:8080/2014.2.2-6.1/ubuntu/x86_64
683         - name: mos-updates
684           priority: 1050
685           section: main restricted
686           suite: mos6.1-updates
687           type: deb
688           uri: http://mirror.fuel-infra.org/mos/ubuntu/
689         - name: mos-security
690           priority: 1050
691           section: main restricted
692           suite: mos6.1-security
693           type: deb
694           uri: http://mirror.fuel-infra.org/mos/ubuntu/
695         - name: mos-holdback
696           priority: 1100
697           section: main restricted
698           suite: mos6.1-holdback
699           type: deb
700           uri: http://mirror.fuel-infra.org/mos/ubuntu/
701         - name: Auxiliary
702           priority: 1150
703           section: main restricted
704           suite: auxiliary
705           type: deb
706           uri: http://10.40.0.2:8080/2014.2.2-6.1/ubuntu/auxiliary
707     storage:
708       ephemeral_ceph:
709         description: Configures Nova to store ephemeral volumes in RBD. This works best
710           if Ceph is enabled for volumes and images, too. Enables live migration of
711           all types of Ceph backed VMs (without this option, live migration will only
712           work with VMs launched from Cinder volumes).
713         label: Ceph RBD for ephemeral volumes (Nova)
714         type: checkbox
715         value: true
716         weight: 75
717       images_ceph:
718         description: Configures Glance to use the Ceph RBD backend to store images.
719           If enabled, this option will prevent Swift from installing.
720         label: Ceph RBD for images (Glance)
721         restrictions:
722         - settings:storage.images_vcenter.value == true: Only one Glance backend could
723             be selected.
724         type: checkbox
725         value: true
726         weight: 30
727       images_vcenter:
728         description: Configures Glance to use the vCenter/ESXi backend to store images.
729           If enabled, this option will prevent Swift from installing.
730         label: VMWare vCenter/ESXi datastore for images (Glance)
731         restrictions:
732         - action: hide
733           condition: settings:common.use_vcenter.value != true
734         - condition: settings:storage.images_ceph.value == true
735           message: Only one Glance backend could be selected.
736         type: checkbox
737         value: false
738         weight: 35
739       iser:
740         description: 'High performance block storage: Cinder volumes over iSER protocol
741           (iSCSI over RDMA). This feature requires SR-IOV capabilities in the NIC, and
742           will use a dedicated virtual function for the storage network.'
743         label: iSER protocol for volumes (Cinder)
744         restrictions:
745         - settings:storage.volumes_lvm.value != true or settings:common.libvirt_type.value
746           != 'kvm'
747         - action: hide
748           condition: not ('experimental' in version:feature_groups)
749         type: checkbox
750         value: false
751         weight: 11
752       metadata:
753         label: Storage
754         weight: 60
755       objects_ceph:
756         description: Configures RadosGW front end for Ceph RBD. This exposes S3 and
757           Swift API Interfaces. If enabled, this option will prevent Swift from installing.
758         label: Ceph RadosGW for objects (Swift API)
759         restrictions:
760         - settings:storage.images_ceph.value == false
761         type: checkbox
762         value: false
763         weight: 80
764       osd_pool_size:
765         description: Configures the default number of object replicas in Ceph. This
766           number must be equal to or lower than the number of deployed 'Storage - Ceph
767           OSD' nodes.
768         label: Ceph object replication factor
769         regex:
770           error: Invalid number
771           source: ^[1-9]\d*$
772         type: text
773         value: '2'
774         weight: 85
775       volumes_ceph:
776         description: Configures Cinder to store volumes in Ceph RBD images.
777         label: Ceph RBD for volumes (Cinder)
778         restrictions:
779         - settings:storage.volumes_lvm.value == true
780         type: checkbox
781         value: true
782         weight: 20
783       volumes_lvm:
784         description: It is recommended to have at least one Storage - Cinder LVM node.
785         label: Cinder LVM over iSCSI for volumes
786         restrictions:
787         - settings:storage.volumes_ceph.value == true
788         type: checkbox
789         value: false
790         weight: 10
791     syslog:
792       metadata:
793         label: Syslog
794         weight: 50
795       syslog_port:
796         description: Remote syslog port
797         label: Port
798         regex:
799           error: Invalid Syslog port
800           source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$
801         type: text
802         value: '514'
803         weight: 20
804       syslog_server:
805         description: Remote syslog hostname
806         label: Hostname
807         type: text
808         value: ''
809         weight: 10
810       syslog_transport:
811         label: Syslog transport protocol
812         type: radio
813         value: tcp
814         values:
815         - data: udp
816           description: ''
817           label: UDP
818         - data: tcp
819           description: ''
820           label: TCP
821         weight: 30
822     workloads_collector:
823       enabled:
824         type: hidden
825         value: true
826       metadata:
827         label: Workloads Collector User
828         restrictions:
829         - action: hide
830           condition: 'true'
831         weight: 10
832       password:
833         type: password
834         value: pBkLbu1k
835       tenant:
836         type: text
837         value: services
838       user:
839         type: text
840         value: fuel_stats_user