oracle.oci.oci_container_engine_virtual_node_pool – Manage a VirtualNodePool resource in Oracle Cloud Infrastructure

Note

This plugin is part of the oracle.oci collection (version 5.0.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install oracle.oci.

To use it in a playbook, specify: oracle.oci.oci_container_engine_virtual_node_pool.

New in version 2.9.0: of oracle.oci

Synopsis

  • This module allows the user to create, update and delete a VirtualNodePool resource in Oracle Cloud Infrastructure

  • For state=present, create a new virtual node pool.

Requirements

The below requirements are needed on the host that executes this module.

Parameters

Parameter Choices/Defaults Comments
api_user
string
The OCID of the user, on whose behalf, OCI APIs are invoked. If not set, then the value of the OCI_USER_ID environment variable, if any, is used. This option is required if the user is not specified through a configuration file (See config_file_location). To get the user's OCID, please refer https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm.
api_user_fingerprint
string
Fingerprint for the key pair being used. If not set, then the value of the OCI_USER_FINGERPRINT environment variable, if any, is used. This option is required if the key fingerprint is not specified through a configuration file (See config_file_location). To get the key pair's fingerprint value please refer https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm.
api_user_key_file
string
Full path and filename of the private key (in PEM format). If not set, then the value of the OCI_USER_KEY_FILE variable, if any, is used. This option is required if the private key is not specified through a configuration file (See config_file_location). If the key is encrypted with a pass-phrase, the api_user_key_pass_phrase option must also be provided.
api_user_key_pass_phrase
string
Passphrase used by the key referenced in api_user_key_file, if it is encrypted. If not set, then the value of the OCI_USER_KEY_PASS_PHRASE variable, if any, is used. This option is required if the key passphrase is not specified through a configuration file (See config_file_location).
auth_purpose
string
    Choices:
  • service_principal
The auth purpose which can be used in conjunction with 'auth_type=instance_principal'. The default auth_purpose for instance_principal is None.
auth_type
string
    Choices:
  • api_key ←
  • instance_principal
  • instance_obo_user
  • resource_principal
  • security_token
The type of authentication to use for making API requests. By default auth_type="api_key" based authentication is performed and the API key (see api_user_key_file) in your config file will be used. If this 'auth_type' module option is not specified, the value of the OCI_ANSIBLE_AUTH_TYPE, if any, is used. Use auth_type="instance_principal" to use instance principal based authentication when running ansible playbooks within an OCI compute instance.
cert_bundle
string
The full path to a CA certificate bundle to be used for SSL verification. This will override the default CA certificate bundle. If not set, then the value of the OCI_ANSIBLE_CERT_BUNDLE variable, if any, is used.
cluster_id
string
The cluster the virtual node pool is associated with. A virtual node pool can only be associated with one cluster.
Required for create using state=present.
compartment_id
string
Compartment of the virtual node pool.
Required for create using state=present.
Required for update when environment variable OCI_USE_NAME_AS_IDENTIFIER is set.
Required for delete when environment variable OCI_USE_NAME_AS_IDENTIFIER is set.
config_file_location
string
Path to configuration file. If not set then the value of the OCI_CONFIG_FILE environment variable, if any, is used. Otherwise, defaults to ~/.oci/config.
config_profile_name
string
The profile to load from the config file referenced by config_file_location. If not set, then the value of the OCI_CONFIG_PROFILE environment variable, if any, is used. Otherwise, defaults to the "DEFAULT" profile in config_file_location.
defined_tags
dictionary
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: `{"Operations": {"CostCenter": "42"}}`
This parameter is updatable.
display_name
string
Display name of the virtual node pool. This is a non-unique value.
Required for create using state=present.
Required for update, delete when environment variable OCI_USE_NAME_AS_IDENTIFIER is set.
This parameter is updatable when OCI_USE_NAME_AS_IDENTIFIER is not set.

aliases: name
force_create
boolean
    Choices:
  • no ←
  • yes
Whether to attempt non-idempotent creation of a resource. By default, create resource is an idempotent operation, and doesn't create the resource if it already exists. Setting this option to true, forcefully creates a copy of the resource, even if it already exists.This option is mutually exclusive with key_by.
freeform_tags
dictionary
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: `{"Department": "Finance"}`
This parameter is updatable.
initial_virtual_node_labels
list / elements=dictionary
Initial labels that will be added to the Kubernetes Virtual Node object when it registers.
This parameter is updatable.
key
string
The key of the pair.
value
string
The value of the pair.
is_force_deletion_after_override_grace_duration_vnp
boolean
    Choices:
  • no
  • yes
If the underlying compute instance should be deleted if you cannot evict all the pods in grace period
key_by
list / elements=string
The list of attributes of this resource which should be used to uniquely identify an instance of the resource. By default, all the attributes of a resource are used to uniquely identify a resource.
nsg_ids
list / elements=string
List of network security group id's applied to the Virtual Node VNIC.
This parameter is updatable.
override_eviction_grace_duration_vnp
string
Duration after which Sk8s will give up eviction of the pods on the node. PT0M will indicate you want to delete the virtual node without cordon and drain. Default PT60M, Min PT0M, Max: PT60M. Format ISO 8601 e.g PT30M
placement_configurations
list / elements=dictionary
The list of placement configurations which determines where Virtual Nodes will be provisioned across as it relates to the subnet and availability domains. The size attribute determines how many we evenly spread across these placement configurations
Required for create using state=present.
This parameter is updatable.
availability_domain
string
The availability domain in which to place virtual nodes. Example: `Uocm:PHX-AD-1`
fault_domain
list / elements=string
The fault domain of this virtual node.
subnet_id
string
The OCID of the subnet in which to place virtual nodes.
pod_configuration
dictionary
The pod configuration for pods run on virtual nodes of this virtual node pool.
This parameter is updatable.
nsg_ids
list / elements=string
List of network security group IDs applied to the Pod VNIC.
shape
string / required
Shape of the pods.
subnet_id
string / required
The regional subnet where pods' VNIC will be placed.
realm_specific_endpoint_template_enabled
boolean
    Choices:
  • no
  • yes
Enable/Disable realm specific endpoint template for service client. By Default, realm specific endpoint template is disabled. If not set, then the value of the OCI_REALM_SPECIFIC_SERVICE_ENDPOINT_TEMPLATE_ENABLED variable, if any, is used.
region
string
The Oracle Cloud Infrastructure region to use for all OCI API requests. If not set, then the value of the OCI_REGION variable, if any, is used. This option is required if the region is not specified through a configuration file (See config_file_location). Please refer to https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/regions.htm for more information on OCI regions.
size
integer
The number of Virtual Nodes that should be in the Virtual Node Pool. The placement configurations determine where these virtual nodes are placed.
This parameter is updatable.
state
string
    Choices:
  • present ←
  • absent
The state of the VirtualNodePool.
Use state=present to create or update a VirtualNodePool.
Use state=absent to delete a VirtualNodePool.
taints
list / elements=dictionary
A taint is a collection of <key, value, effect>. These taints will be applied to the Virtual Nodes of this Virtual Node Pool for Kubernetes scheduling.
This parameter is updatable.
effect
string
The effect of the pair.
key
string
The key of the pair.
value
string
The value of the pair.
tenancy
string
OCID of your tenancy. If not set, then the value of the OCI_TENANCY variable, if any, is used. This option is required if the tenancy OCID is not specified through a configuration file (See config_file_location). To get the tenancy OCID, please refer https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm
virtual_node_pool_id
string
The OCID of the virtual node pool.
Required for update using state=present when environment variable OCI_USE_NAME_AS_IDENTIFIER is not set.
Required for delete using state=absent when environment variable OCI_USE_NAME_AS_IDENTIFIER is not set.

aliases: id
virtual_node_tags
dictionary
This parameter is updatable.
defined_tags
dictionary
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: `{"Operations": {"CostCenter": "42"}}`
freeform_tags
dictionary
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: `{"Department": "Finance"}`
wait
boolean
    Choices:
  • no
  • yes ←
Whether to wait for create or delete operation to complete.
wait_timeout
integer
Time, in seconds, to wait when wait=yes. Defaults to 1200 for most of the services but some services might have a longer wait timeout.

Examples

- name: Create virtual_node_pool
  oci_container_engine_virtual_node_pool:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    cluster_id: "ocid1.cluster.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example
    placement_configurations:
    - # optional
      availability_domain: Uocm:PHX-AD-1
      fault_domain: [ "fault_domain_example" ]
      subnet_id: "ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    initial_virtual_node_labels:
    - # optional
      key: key_example
      value: value_example
    taints:
    - # optional
      key: key_example
      value: value_example
      effect: effect_example
    size: 56
    nsg_ids: [ "nsg_ids_example" ]
    pod_configuration:
      # required
      subnet_id: "ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx"
      shape: shape_example

      # optional
      nsg_ids: [ "nsg_ids_example" ]
    freeform_tags: {'Department': 'Finance'}
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    virtual_node_tags:
      # optional
      freeform_tags: {'Department': 'Finance'}
      defined_tags: {'Operations': {'CostCenter': 'US'}}

- name: Update virtual_node_pool
  oci_container_engine_virtual_node_pool:
    # required
    virtual_node_pool_id: "ocid1.virtualnodepool.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    display_name: display_name_example
    initial_virtual_node_labels:
    - # optional
      key: key_example
      value: value_example
    taints:
    - # optional
      key: key_example
      value: value_example
      effect: effect_example
    size: 56
    placement_configurations:
    - # optional
      availability_domain: Uocm:PHX-AD-1
      fault_domain: [ "fault_domain_example" ]
      subnet_id: "ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx"
    nsg_ids: [ "nsg_ids_example" ]
    pod_configuration:
      # required
      subnet_id: "ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx"
      shape: shape_example

      # optional
      nsg_ids: [ "nsg_ids_example" ]
    freeform_tags: {'Department': 'Finance'}
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    virtual_node_tags:
      # optional
      freeform_tags: {'Department': 'Finance'}
      defined_tags: {'Operations': {'CostCenter': 'US'}}

- name: Update virtual_node_pool using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_container_engine_virtual_node_pool:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example

    # optional
    initial_virtual_node_labels:
    - # optional
      key: key_example
      value: value_example
    taints:
    - # optional
      key: key_example
      value: value_example
      effect: effect_example
    size: 56
    placement_configurations:
    - # optional
      availability_domain: Uocm:PHX-AD-1
      fault_domain: [ "fault_domain_example" ]
      subnet_id: "ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx"
    nsg_ids: [ "nsg_ids_example" ]
    pod_configuration:
      # required
      subnet_id: "ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx"
      shape: shape_example

      # optional
      nsg_ids: [ "nsg_ids_example" ]
    freeform_tags: {'Department': 'Finance'}
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    virtual_node_tags:
      # optional
      freeform_tags: {'Department': 'Finance'}
      defined_tags: {'Operations': {'CostCenter': 'US'}}

- name: Delete virtual_node_pool
  oci_container_engine_virtual_node_pool:
    # required
    virtual_node_pool_id: "ocid1.virtualnodepool.oc1..xxxxxxEXAMPLExxxxxx"
    state: absent

    # optional
    override_eviction_grace_duration_vnp: override_eviction_grace_duration_vnp_example
    is_force_deletion_after_override_grace_duration_vnp: true

- name: Delete virtual_node_pool using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_container_engine_virtual_node_pool:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example
    state: absent

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
virtual_node_pool
complex
on success
Details of the VirtualNodePool resource acted upon by the current operation

Sample:
{'cluster_id': 'ocid1.cluster.oc1..xxxxxxEXAMPLExxxxxx', 'compartment_id': 'ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx', 'defined_tags': {'Operations': {'CostCenter': 'US'}}, 'display_name': 'display_name_example', 'freeform_tags': {'Department': 'Finance'}, 'id': 'ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx', 'initial_virtual_node_labels': [{'key': 'key_example', 'value': 'value_example'}], 'kubernetes_version': 'kubernetes_version_example', 'lifecycle_details': 'lifecycle_details_example', 'lifecycle_state': 'CREATING', 'nsg_ids': [], 'placement_configurations': [{'availability_domain': 'Uocm:PHX-AD-1', 'fault_domain': [], 'subnet_id': 'ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx'}], 'pod_configuration': {'nsg_ids': [], 'shape': 'shape_example', 'subnet_id': 'ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx'}, 'size': 56, 'system_tags': {}, 'taints': [{'effect': 'effect_example', 'key': 'key_example', 'value': 'value_example'}], 'time_created': '2013-10-20T19:20:30+01:00', 'time_updated': '2013-10-20T19:20:30+01:00', 'virtual_node_tags': {'defined_tags': {'Operations': {'CostCenter': 'US'}}, 'freeform_tags': {'Department': 'Finance'}}}
 
cluster_id
string
on success
The cluster the virtual node pool is associated with. A virtual node pool can only be associated with one cluster.

Sample:
ocid1.cluster.oc1..xxxxxxEXAMPLExxxxxx
 
compartment_id
string
on success
Compartment of the virtual node pool.

Sample:
ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
 
defined_tags
dictionary
on success
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: `{"Operations": {"CostCenter": "42"}}`

Sample:
{'Operations': {'CostCenter': 'US'}}
 
display_name
string
on success
Display name of the virtual node pool. This is a non-unique value.

Sample:
display_name_example
 
freeform_tags
dictionary
on success
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: `{"Department": "Finance"}`

Sample:
{'Department': 'Finance'}
 
id
string
on success
The OCID of the virtual node pool.

Sample:
ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
 
initial_virtual_node_labels
complex
on success
Initial labels that will be added to the Kubernetes Virtual Node object when it registers. This is the same as virtualNodePool resources.

   
key
string
on success
The key of the pair.

Sample:
key_example
   
value
string
on success
The value of the pair.

Sample:
value_example
 
kubernetes_version
string
on success
The version of Kubernetes running on the nodes in the node pool.

Sample:
kubernetes_version_example
 
lifecycle_details
string
on success
Details about the state of the Virtual Node Pool.

Sample:
lifecycle_details_example
 
lifecycle_state
string
on success
The state of the Virtual Node Pool.

Sample:
CREATING
 
nsg_ids
list / elements=string
on success
List of network security group id's applied to the Virtual Node VNIC.

 
placement_configurations
complex
on success
The list of placement configurations which determines where Virtual Nodes will be provisioned across as it relates to the subnet and availability domains. The size attribute determines how many we evenly spread across these placement configurations

   
availability_domain
string
on success
The availability domain in which to place virtual nodes. Example: `Uocm:PHX-AD-1`

Sample:
Uocm:PHX-AD-1
   
fault_domain
list / elements=string
on success
The fault domain of this virtual node.

   
subnet_id
string
on success
The OCID of the subnet in which to place virtual nodes.

Sample:
ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx
 
pod_configuration
complex
on success
The pod configuration for pods run on virtual nodes of this virtual node pool.

   
nsg_ids
list / elements=string
on success
List of network security group IDs applied to the Pod VNIC.

   
shape
string
on success
Shape of the pods.

Sample:
shape_example
   
subnet_id
string
on success
The regional subnet where pods' VNIC will be placed.

Sample:
ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx
 
size
integer
on success
The number of Virtual Nodes that should be in the Virtual Node Pool. The placement configurations determine where these virtual nodes are placed.

Sample:
56
 
system_tags
dictionary
on success
Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud": {"free-tier-retained": "true"}}`

 
taints
complex
on success
A taint is a collection of <key, value, effect>. These taints will be applied to the Virtual Nodes of this Virtual Node Pool for Kubernetes scheduling.

   
effect
string
on success
The effect of the pair.

Sample:
effect_example
   
key
string
on success
The key of the pair.

Sample:
key_example
   
value
string
on success
The value of the pair.

Sample:
value_example
 
time_created
string
on success
The time the virtual node pool was created.

Sample:
2013-10-20T19:20:30+01:00
 
time_updated
string
on success
The time the virtual node pool was updated.

Sample:
2013-10-20T19:20:30+01:00
 
virtual_node_tags
complex
on success

   
defined_tags
dictionary
on success
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: `{"Operations": {"CostCenter": "42"}}`

Sample:
{'Operations': {'CostCenter': 'US'}}
   
freeform_tags
dictionary
on success
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: `{"Department": "Finance"}`

Sample:
{'Department': 'Finance'}


Authors

  • Oracle (@oracle)