summaryrefslogtreecommitdiff
path: root/cloudinit/config/schemas/schema-cloud-config-v1.json
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit/config/schemas/schema-cloud-config-v1.json')
-rw-r--r--cloudinit/config/schemas/schema-cloud-config-v1.json237
1 files changed, 201 insertions, 36 deletions
diff --git a/cloudinit/config/schemas/schema-cloud-config-v1.json b/cloudinit/config/schemas/schema-cloud-config-v1.json
index 598d1c3c..b7124cb7 100644
--- a/cloudinit/config/schemas/schema-cloud-config-v1.json
+++ b/cloudinit/config/schemas/schema-cloud-config-v1.json
@@ -29,7 +29,8 @@
"expiredate": {
"default": null,
"description": "Optional. Date on which the user's account will be disabled. Default: ``null``",
- "type": "string"
+ "type": "string",
+ "format": "date"
},
"gecos": {
"description": "Optional comment about the user, usually a comma-separated string of real name and contact information",
@@ -153,12 +154,28 @@
"default": false
},
"sudo": {
- "type": ["boolean", "string"],
- "description": "Sudo rule to use or false. Absence of a sudo value or ``false`` will result in no sudo rules added for this user. DEPRECATED: the value ``false`` will be deprecated in the future release. Use ``null`` or no ``sudo`` key instead."
+ "oneOf": [
+ {
+ "type": ["string", "null"],
+ "description": "Sudo rule to use or false. Absence of a sudo value or ``null`` will result in no sudo rules added for this user."
+ },
+ {
+ "type": "boolean",
+ "deprecated": true,
+ "description": "The value ``false`` will be dropped after April 2027. Use ``null`` or no ``sudo`` key instead."
+ }
+ ]
},
"uid": {
"description": "The user's ID. Default is next available value.",
- "type": "integer"
+ "oneOf": [
+ {"type": "integer"},
+ {
+ "type": "string",
+ "description": "The use of ``string`` type will be dropped after April 2027. Use an ``integer`` instead.",
+ "deprecated": true
+ }
+ ]
}
}
},
@@ -230,6 +247,101 @@
},
"additionalProperties": true
},
+ "cc_ansible": {
+ "type": "object",
+ "properties": {
+ "ansible": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "install-method": {
+ "type": "string",
+ "default": "distro",
+ "enum": [
+ "distro",
+ "pip"
+ ],
+ "description": "The type of installation for ansible. It can be one of the following values:\n\n - ``distro``\n - ``pip``"
+ },
+ "package-name": {
+ "type": "string",
+ "default": "ansible"
+ },
+ "pull": {
+ "required": ["url", "playbook-name"],
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "accept-host-key": {
+ "type": "boolean",
+ "default": false
+ },
+ "clean": {
+ "type": "boolean",
+ "default": false
+ },
+ "full": {
+ "type": "boolean",
+ "default": false
+ },
+ "diff": {
+ "type": "boolean",
+ "default": false
+ },
+ "ssh-common-args": {
+ "type": "string"
+ },
+ "scp-extra-args": {
+ "type": "string"
+ },
+ "sftp-extra-args": {
+ "type": "string"
+ },
+ "private-key": {
+ "type": "string"
+ },
+ "checkout": {
+ "type": "string"
+ },
+ "module-path": {
+ "type": "string"
+ },
+ "timeout": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "connection": {
+ "type": "string"
+ },
+ "vault-id": {
+ "type": "string"
+ },
+ "vault-password-file": {
+ "type": "string"
+ },
+ "module-name": {
+ "type": "string"
+ },
+ "sleep": {
+ "type": "string"
+ },
+ "tags": {
+ "type": "string"
+ },
+ "skip-tags": {
+ "type": "string"
+ },
+ "playbook-name": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"cc_apk_configure": {
"type": "object",
"properties": {
@@ -589,26 +701,6 @@
}
}
},
- "cc_debug": {
- "type": "object",
- "properties": {
- "debug": {
- "minProperties": 1,
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "verbose": {
- "description": "Should always be true for this module",
- "type": "boolean"
- },
- "output": {
- "description": "Location to write output. Defaults to console + log",
- "type": "string"
- }
- }
- }
- }
- },
"cc_disable_ec2_metadata": {
"type": "object",
"properties": {
@@ -649,7 +741,6 @@
"description": "Specifies the partition table type, either ``mbr`` or ``gpt``. Default: ``mbr``."
},
"layout": {
- "type": ["string", "boolean", "array"],
"default": false,
"oneOf": [
{"type": "string", "enum": ["remove"]},
@@ -769,9 +860,18 @@
"additionalProperties": false,
"properties": {
"mode": {
- "enum": [false, "auto", "growpart", "gpart", "off"],
"default": "auto",
- "description": "The utility to use for resizing. Default: ``auto``\n\nPossible options:\n\n* ``auto`` - Use any available utility\n\n* ``growpart`` - Use growpart utility\n\n* ``gpart`` - Use BSD gpart utility\n\n* ``off`` - Take no action\n\nSpecifying a boolean ``false`` value for this key is deprecated. Use ``off`` instead."
+ "description": "The utility to use for resizing. Default: ``auto``\n\nPossible options:\n\n* ``auto`` - Use any available utility\n\n* ``growpart`` - Use growpart utility\n\n* ``gpart`` - Use BSD gpart utility\n\n* ``off`` - Take no action.",
+ "oneOf": [
+ {
+ "enum": ["auto", "growpart", "gpart", "off"]
+ },
+ {
+ "enum": [false],
+ "description": "Specifying a boolean ``false`` value for this key is deprecated. Use ``off`` instead.",
+ "deprecated": true
+ }
+ ]
},
"devices": {
"type": "array",
@@ -807,7 +907,7 @@
"description": "Device to use as target for grub installation. If unspecified, ``grub-probe`` of ``/boot`` will be used to find the device"
},
"grub-pc/install_devices_empty": {
- "description": "Sets values for ``grub-pc/install_devices_empty``. If unspecified, will be set to ``true`` if ``grub-pc/install_devices`` is empty, otherwise ``false``. Using a non-boolean value for this field is deprecated.",
+ "description": "Sets values for ``grub-pc/install_devices_empty``. If unspecified, will be set to ``true`` if ``grub-pc/install_devices`` is empty, otherwise ``false``.",
"oneOf": [
{
"type": "boolean"
@@ -1385,7 +1485,7 @@
"type": "string",
"pattern": "^\\+?[0-9]+$",
"deprecated": true,
- "description": "Dropped after April 2027. Use ``now`` or integer type."
+ "description": "Use of string for this value will be dropped after April 2027. Use ``now`` or integer type."
},
{"enum": ["now"]}
]
@@ -1752,8 +1852,18 @@
"additionalProperties": false,
"properties": {
"enabled": {
- "type": ["boolean", "string"],
- "description": "Whether vendor data is enabled or not. Use of string for this value is DEPRECATED. Default: ``true``"
+ "description": "Whether vendor data is enabled or not. Default: ``true``",
+ "oneOf": [
+ {
+ "type": "boolean",
+ "default": true
+ },
+ {
+ "type": "string",
+ "description": "Use of string for this value is DEPRECATED. Use a boolean value instead.",
+ "deprecated": true
+ }
+ ]
},
"prefix": {
"type": ["array", "string"],
@@ -1828,9 +1938,13 @@
"ssh_pwauth": {
"oneOf": [
{"type": "boolean"},
- {"type": "string"}
+ {
+ "type": "string",
+ "description": "Use of non-boolean values for this field is DEPRECATED and will result in an error in a future version of cloud-init.",
+ "deprecated": true
+ }
],
- "description": "Sets whether or not to accept password authentication. ``true`` will enable password auth. ``false`` will disable. Default is to leave the value unchanged. Use of non-boolean values for this field is DEPRECATED and will result in an error in a future version of cloud-init."
+ "description": "Sets whether or not to accept password authentication. ``true`` will enable password auth. ``false`` will disable. Default is to leave the value unchanged."
},
"chpasswd": {
"type": "object",
@@ -2170,8 +2284,15 @@
"properties": {
"manage_etc_hosts": {
"default": false,
- "description": "Whether to manage ``/etc/hosts`` on the system. If ``true``, render the hosts file using ``/etc/cloud/templates/hosts.tmpl`` replacing ``$hostname`` and ``$fdqn``. If ``localhost``, append a ``127.0.1.1`` entry that resolves from FQDN and hostname every boot. Default: ``false``. DEPRECATED value ``template`` will be dropped, use ``true`` instead.",
- "enum": [true, false, "template", "localhost"]
+ "description": "Whether to manage ``/etc/hosts`` on the system. If ``true``, render the hosts file using ``/etc/cloud/templates/hosts.tmpl`` replacing ``$hostname`` and ``$fdqn``. If ``localhost``, append a ``127.0.1.1`` entry that resolves from FQDN and hostname every boot. Default: ``false``.",
+ "oneOf": [
+ {"enum": [true, false, "localhost"]},
+ {
+ "enum": ["template"],
+ "description": "Value ``template`` will be dropped after April 2027. Use ``true`` instead.",
+ "deprecated": true
+ }
+ ]
},
"fqdn": {
"type": "string",
@@ -2231,6 +2352,49 @@
}
}
},
+ "cc_wireguard": {
+ "type": "object",
+ "properties": {
+ "wireguard": {
+ "type": ["null", "object"],
+ "properties": {
+ "interfaces": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the interface. Typically wgx (example: wg0)"
+ },
+ "config_path": {
+ "type": "string",
+ "description": "Path to configuration file of Wireguard interface"
+ },
+ "content": {
+ "type": "string",
+ "description": "Wireguard interface configuration. Contains key, peer, ..."
+ }
+ },
+ "additionalProperties": false
+ },
+ "minItems": 1
+ },
+ "readinessprobe": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true,
+ "description": "List of shell commands to be executed as probes."
+ }
+ },
+ "required": ["interfaces"],
+ "minProperties": 1,
+ "additionalProperties": false
+ }
+ }
+ },
"cc_write_files": {
"type": "object",
"properties": {
@@ -2478,6 +2642,7 @@
}
},
"allOf": [
+ { "$ref": "#/$defs/cc_ansible" },
{ "$ref": "#/$defs/cc_apk_configure" },
{ "$ref": "#/$defs/cc_apt_configure" },
{ "$ref": "#/$defs/cc_apt_pipelining" },
@@ -2486,7 +2651,6 @@
{ "$ref": "#/$defs/cc_byobu" },
{ "$ref": "#/$defs/cc_ca_certs" },
{ "$ref": "#/$defs/cc_chef" },
- { "$ref": "#/$defs/cc_debug" },
{ "$ref": "#/$defs/cc_disable_ec2_metadata" },
{ "$ref": "#/$defs/cc_disk_setup" },
{ "$ref": "#/$defs/cc_fan" },
@@ -2528,6 +2692,7 @@
{ "$ref": "#/$defs/cc_update_etc_hosts"},
{ "$ref": "#/$defs/cc_update_hostname"},
{ "$ref": "#/$defs/cc_users_groups"},
+ { "$ref": "#/$defs/cc_wireguard"},
{ "$ref": "#/$defs/cc_write_files"},
{ "$ref": "#/$defs/cc_yum_add_repo"},
{ "$ref": "#/$defs/cc_zypper_add_repo"},