You can see examples of the configurations in the config-example.json
- General
- Extensions
- Virtual Machines Settings
- Firewall (Security Groups) Settings
- Images Settings
- User App Settings
- Service Offering Setting
Note: We implement validation to all configuration parameter values. Please, make sure you provide correct and valid values in your config.json
.
A default domain is used to fill in the 'Domain' field in the login form. The default value is an empty value.
For example,
"defaultDomain": "domain"
The session refresh interval sends a request to the server at the specified interval (in seconds) to maintain an active session.
The default value is 60
.
For example,
"sessionRefreshInterval": 60
A URL address to the API documentation. This address is displayed in the "Settings" section. The default value is a link to the Apache Cloudstack API.
For example,
"apiDocLink": "https://cloudstack.apache.org/api/apidocs-4.11/"
Allows you to enable plugins. By default, all plugins are disabled.
For example,
"extensions": {
"webShell": true,
"pulse": false,
"vmLogs": false,
"resourceLimits": false
}
Please check Wiki for a detailed information about plugins.
Allows you to configure Log View plugin.
autoUpdateRefreshFrequency
- a period of time in seconds between two log requests in the auto update mode.
Smaller values are faster, but use more network traffic.
autoUpdateRequestedInterval
- get last autoUpdateRequestedInterval
seconds of logs each time in the auto update mode.
The value depends on the time it takes to process logs on the backend: longer processing time should correspond to larger
values. Smaller values save traffic, but some logs may be missed. In any case, autoUpdateRequestedInterval
should be
greater than autoUpdateRefreshFrequency
.
For example,
"vmLogs": {
"autoUpdateRefreshFrequency": 1,
"autoUpdateRequestedInterval": 30
}
Allows you to configure Resource Limits plugin.
realm
- realm of the configured gateway.
env
- environment of the configured gateway.
For example,
"resourceLimits": {
"realm": "resource-limits",
"env": "prod"
}
Allows you to predefine a set of colors for virtual machines in the hexadecimal format. You can specify any colors you like.
For example,
"vmColors": [
{ "value": "#F44336" },
{ "value": "#E91E63" },
{ "value": "#9C27B0" },
{ "value": "#673AB7" },
{ "value": "#3F51B5" }
]
Allows you to set the maximum number of VM snapshots. You can enable feature like this"enable": true
. By default, this feature is disabled. The minimum value for snapshots limit is 0.
For example,
"vmSnapLimit": {
"enable": false,
"snapshotsLimit": 0
}
Predefined templates for security groups. You can define your own security groups that will be available for all users by default.
By default, there are no predefined templates.
For example,
"securityGroupTemplates": [
{
"id": "templateTCP",
"name": "TCP Permit All",
"description": "Permits all TPC traffic",
"preselected": false,
"ingressrule": [
{
"ruleid": "templateTCP-rule-ingress",
"protocol": "tcp",
"startport": 1,
"endport": 65535,
"cidr": "0.0.0.0/0"
}
],
"egressrule": [
{
"ruleid": "templateTCP-rule-egress",
"protocol": "tcp",
"startport": 1,
"endport": 65535,
"cidr": "0.0.0.0/0"
}
]
},
{
"id": "templateICMP",
"name": "ICMP Permit Egress",
"description": "Permits all egress ICMP traffic",
"preselected": true,
"ingressrule": [],
"egressrule": [
{
"ruleid": "templateICMP-rule-egress",
"icmpcode": -1,
"icmptype": -1,
"protocol": "icmp",
"cidr": "0.0.0.0/0"
}
]
}
]
Parameters:
- id
- name
- description
- preselected (true or false) - specifies whether network rules from this template will be automatically selected in the VM creation form
- ingress and egress rules (ingressrule and egressrule respectively):
- ruleid: a unique identifier
- protocol: either 'tcp', 'udp' or 'icmp'
- cidr: subnet mask (e.g. 0.0.0.0/0)
- For TCP and UDP: startport and endport
- For ICMP: icmpcode and icmptype
A Default Firewall group is created by CloudStack. This parameter allows you to rename this group.
The default name is default
for both languages.
For example,
"defaultSecurityGroupName": {
"en": "default name",
"ru": "имя по умолчанию"
}
Allows you to define groups for installation sources (templates and ISOs).
An image group has a required id
parameter and an optional translations
parameter.
If there are no translations defined for the template group, the group ID will be used.
By default, there are no predefined image groups.
For example,
"imageGroups": [
{
"id": "id-234",
"translations": {
"ru": "Имя группы",
"en": "Group Name"
}
}
]
Allows you to predefine the setting of the first day in the app. Possible values:
- 0 - Sunday
- 1 - Monday (default)
For example,
"defaultFirstDayOfWeek": 0
Allows you to predefine the setting of the app interface language. Possible values:
- "en" (default)
- "ru"
For example,
"defaultInterfaceLanguage": "en"
Allows you to predefine the setting of the time format. Possible values:
- "auto" - value depends on the interface language (default)
- "hour12" - 12-hour time
- "hour24" - 24-hour time
For example,
"defaultTimeFormat": "hour24"
Allows you to predefine the setting of the theme. Available themes are:
- "blue-red" (default)
- "indigo-pink"
For example,
"defaultTheme": "blue-red"
Allows you to predefine the setting of the session timeout.
This setting determines the number of minutes the user's session should stay active.
After this time passes a user is logged out.
You can set it to 0
to turn it off, although in this case the session is likely to expire on the server side.
The default value is 30
.
For example,
"sessionTimeout": 30
Allows you to enable auto generation of secret key and API key for user upon the login if they are missing. By default, auto generation is enabled.
For example,
"autoGenerateUserKeys": true
Allows you to specify default values and limits for custom compute offering hardware parameters in VM creation. By default, all compute offerings have the minimum restrictions of "1" CPU number, "1000" CPU speed, "512" memory and the maximum values are not limited, default values are equal to minimum restrictions.
For example,
"customComputeOfferingParameters": [
{
"offeringId": "73cdef05-d01f-49ad-8ecb-4f2ffd7d8e26",
"cpunumber": {
"min": 2,
"max": 8,
"value": 4
},
"cpuspeed": {
"min": 1000,
"max": 3000,
"value": 1500
},
"memory": {
"min": 512,
"max": 8192,
"value": 512
}
}
]
Allows you to specify compute offering that will be automatically preselected in the VM creation form for each zone.
For example,
"defaultComputeOffering": [
{
"zoneId": "415db026-1135-496e-9383-0c820a75694e",
"offeringId": "f216bd08-947a-4022-8271-c29e9acfffb9"
}
]
This configuration allows you to restrict compute offering change based on the compute offering host tags.
This is very useful when you have several clusters in one zone and you want to protect a user from converting offerings between incompatible states because it might happen that selected offering is not supported in the cluster where storage of current VM relates to.
Available change policies:
- "contains-all" - exact tags match
- "exactly-match" - old offering tags are subset new offering tags
- "no-restrictions" (default)
You can ignore tags that don't influence compatibility with offeringChangePolicyIgnoreTags
property.
"offeringCompatibilityPolicy": {
"offeringChangePolicy": "exactly-match",
"offeringChangePolicyIgnoreTags": ["t1"]
}
Allows you to group compute offerings into classes when choosing a compute offering in the VM creation form.
By default, there are no predefined compute offering classes.
For example,
"computeOfferingClasses": [
{
"id": "classId-1",
"name": {
"ru": "Имя класса - 1",
"en": "Class name - 1"
},
"description": {
"ru": "Описание класса - 1",
"en": "Class description - 1"
},
"computeOfferings": [
"9c81af12-f15b-41f0-9dec-2a837e1dec29"
]
},
{
"id": "classId-2",
"name": {
"ru": "Имя класса - 2",
"en": "Class name - 2"
},
"description": {
"ru": "Описание класса - 2",
"en": "Class description - 2"
},
"computeOfferings": [
"9c81af12-f15b-41f0-9dec-2a837e1dec29"
]
}
]
Allows you to specify which service offerings will be available for which zones.
If filterOfferings
is set to false
, all offerings will be available for all zones.
By default, filterOfferings
is set to false
.
For example,
"serviceOfferingAvailability": {
"filterOfferings": true,
"zones": {
"zoneId": {
"diskOfferings": ["offeringId1", "offeringId2"],
"computeOfferings": ["offeringId3", "offeringId4"]
}
}
}