Class: Google::Apis::ComposerV1beta1::NodeConfig

Inherits:
Object
  • Object
show all
Includes:
Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
Defined in:
lib/google/apis/composer_v1beta1/classes.rb,
lib/google/apis/composer_v1beta1/representations.rb,
lib/google/apis/composer_v1beta1/representations.rb

Overview

The configuration information for the Kubernetes Engine nodes running the Apache Airflow software.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ NodeConfig

Returns a new instance of NodeConfig.



1458
1459
1460
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1458

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#composer_internal_ipv4_cidr_blockString

Optional. The IP range in CIDR notation to use internally by Cloud Composer. IP addresses are not reserved - and the same range can be used by multiple Cloud Composer environments. In case of overlap, IPs from this range will not be accessible in the user's VPC network. Cannot be updated. If not specified, the default value of '100.64.128.0/20' is used. This field is supported for Cloud Composer environments in versions composer-3..-airflow-..* and newer. Corresponds to the JSON property composerInternalIpv4CidrBlock

Returns:

  • (String)


1328
1329
1330
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1328

def composer_internal_ipv4_cidr_block
  @composer_internal_ipv4_cidr_block
end

#composer_network_attachmentString

Optional. Network Attachment that Cloud Composer environment is connected to, which provides connectivity with a user's VPC network. Takes precedence over network and subnetwork settings. If not provided, but network and subnetwork are defined during environment, it will be provisioned. If not provided and network and subnetwork are also empty, then connectivity to user's VPC network is disabled. Network attachment must be provided in format projects/project/ regions/region/networkAttachments/networkAttachment. This field is supported for Cloud Composer environments in versions composer-3..-airflow-. *. and newer. Corresponds to the JSON property composerNetworkAttachment

Returns:

  • (String)


1341
1342
1343
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1341

def composer_network_attachment
  @composer_network_attachment
end

#disk_size_gbFixnum

Optional. The disk size in GB used for node VMs. Minimum size is 30GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*. Corresponds to the JSON property diskSizeGb

Returns:

  • (Fixnum)


1348
1349
1350
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1348

def disk_size_gb
  @disk_size_gb
end

#enable_ip_masq_agentBoolean Also known as: enable_ip_masq_agent?

Optional. Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google. com/kubernetes-engine/docs/how-to/ip-masquerade-agent Corresponds to the JSON property enableIpMasqAgent

Returns:

  • (Boolean)


1356
1357
1358
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1356

def enable_ip_masq_agent
  @enable_ip_masq_agent
end

#ip_allocation_policyGoogle::Apis::ComposerV1beta1::IpAllocationPolicy

Configuration for controlling how IPs are allocated in the GKE cluster. Corresponds to the JSON property ipAllocationPolicy



1362
1363
1364
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1362

def ip_allocation_policy
  @ip_allocation_policy
end

#locationString

Optional. The Compute Engine zone in which to deploy the VMs used to run the Apache Airflow software, specified as a relative resource name. For example: "projects/projectId/zones/zoneId". This location must belong to the enclosing environment's project and location. If both this field and nodeConfig.machineType are specified, nodeConfig.machineType must belong to this location; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If only one field (location or nodeConfig.machineType) is specified, the location information from the specified field will be propagated to the unspecified field. This field is supported for Cloud Composer environments in versions composer-1..-airflow-. *.. Corresponds to the JSON property location

Returns:

  • (String)


1379
1380
1381
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1379

def location
  @location
end

#machine_typeString

Optional. The Compute Engine machine type used for cluster instances, specified as a relative resource name. For example: "projects/projectId/ zones/zoneId/machineTypes/machineTypeId". The machineType must belong to the enclosing environment's project and location. If both this field and nodeConfig.location are specified, this machineType must belong to the nodeConfig.location; if both are unspecified, the service will pick a zone in the Compute Engine region corresponding to the Cloud Composer location, and propagate that choice to both fields. If exactly one of this field and nodeConfig.location is specified, the location information from the specified field will be propagated to the unspecified field. The machineTypeId must not be a shared-core machine type. If this field is unspecified, the machineTypeId defaults to "n1-standard-1". This field is supported for Cloud Composer environments in versions composer-1. .-airflow-..*. Corresponds to the JSON property machineType

Returns:

  • (String)


1398
1399
1400
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1398

def machine_type
  @machine_type
end

#max_pods_per_nodeFixnum

Optional. The maximum number of pods per node in the Cloud Composer GKE cluster. The value must be between 8 and 110 and it can be set only if the environment is VPC-native. The default value is 32. Values of this field will be propagated both to the default-pool node pool of the newly created GKE cluster, and to the default "Maximum Pods per Node" value which is used for newly created node pools if their value is not explicitly set during node pool creation. For more information, see Optimizing IP address allocation. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*. Corresponds to the JSON property maxPodsPerNode

Returns:

  • (Fixnum)


1412
1413
1414
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1412

def max_pods_per_node
  @max_pods_per_node
end

#networkString

Optional. The Compute Engine network to be used for machine communications, specified as a relative resource name. For example: "projects/projectId/global/networks/ networkId". If unspecified, the default network in the environment's project is used. If a Custom Subnet Network is provided, nodeConfig.subnetwork must also be provided. For Shared VPC subnetwork requirements, see nodeConfig.subnetwork. Corresponds to the JSON property network

Returns:

  • (String)


1423
1424
1425
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1423

def network
  @network
end

#oauth_scopesArray<String>

Optional. The set of Google API scopes to be made available on all node VMs. If oauth_scopes is empty, defaults to ["https://www.googleapis.com/auth/ cloud-platform"]. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1..-airflow-..*. Corresponds to the JSON property oauthScopes

Returns:

  • (Array<String>)


1431
1432
1433
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1431

def oauth_scopes
  @oauth_scopes
end

#service_accountString

Optional. The Google Cloud Platform Service Account to be used by the workloads. If a service account is not specified, the "default" Compute Engine service account is used. Cannot be updated. Corresponds to the JSON property serviceAccount

Returns:

  • (String)


1438
1439
1440
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1438

def 
  @service_account
end

#subnetworkString

Optional. The Compute Engine subnetwork to be used for machine communications, specified as a relative resource name. For example: "projects/projectId/regions/regionId/ subnetworks/subnetworkId" If a subnetwork is provided, nodeConfig.network must also be provided, and the subnetwork must belong to the enclosing environment's project and location. Corresponds to the JSON property subnetwork

Returns:

  • (String)


1448
1449
1450
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1448

def subnetwork
  @subnetwork
end

#tagsArray<String>

Optional. The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated. Corresponds to the JSON property tags

Returns:

  • (Array<String>)


1456
1457
1458
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1456

def tags
  @tags
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
# File 'lib/google/apis/composer_v1beta1/classes.rb', line 1463

def update!(**args)
  @composer_internal_ipv4_cidr_block = args[:composer_internal_ipv4_cidr_block] if args.key?(:composer_internal_ipv4_cidr_block)
  @composer_network_attachment = args[:composer_network_attachment] if args.key?(:composer_network_attachment)
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
  @enable_ip_masq_agent = args[:enable_ip_masq_agent] if args.key?(:enable_ip_masq_agent)
  @ip_allocation_policy = args[:ip_allocation_policy] if args.key?(:ip_allocation_policy)
  @location = args[:location] if args.key?(:location)
  @machine_type = args[:machine_type] if args.key?(:machine_type)
  @max_pods_per_node = args[:max_pods_per_node] if args.key?(:max_pods_per_node)
  @network = args[:network] if args.key?(:network)
  @oauth_scopes = args[:oauth_scopes] if args.key?(:oauth_scopes)
  @service_account = args[:service_account] if args.key?(:service_account)
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
  @tags = args[:tags] if args.key?(:tags)
end