nbcontractv1

package
v0.20241112.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 12, 2024 License: MIT Imports: 14 Imported by: 0

README

This readme is to describe the new public data contract AKSNodeConfig between a bootstrap requester (client) and a Linux node to be bootstrapped and join an AKS cluster. The contract is defined in a set of proto files with protobuf. And we convert/compile all the proto files into specific programming languages. Currently we only convert to .go files for Go. We can convert to other languages if needed in the future. A simple way to compile the files to Go is to run this command at AgentBaker root directory.

make compile-proto-files

Public data contract AKSNodeConfig

This table is describing the all the AKSNodeConfig Fields converted to .go files. The naming convention is a bit different in the .proto files. For example, in config.proto file, you will see api_server_config, but in config.pb.go, it's automatically renamed to ApiServerConfig. In the following table, we will use the names defined in the .go files.

AKSNodeConfig Fields Types Descriptions OLD CSE env variables mapping
Version string Semantic version of this node bootstrap contract N/A, new
KubeBinaryConfig KubeBinaryConfig Kubernetes binary URL configuration KUBE_BINARY_URL, CUSTOM_KUBE_BINARY_URL, PRIVATE_KUBE_BINARY_URL , CREDENTIAL_PROVIDER_DOWNLOAD_URL
CustomCloudConfig CustomCloudConfig Custom cloud configuration IS_CUSTOM_CLOUD, AKS_CUSTOM_CLOUD_CONTAINER_REGISTRY_DNS_SUFFIX, REPO_DEPOT_ENDPOINT, CUSTOM_ENV_JSON
ApiServerConfig ApiServerConfig Kubernetes API server configuration APISERVER_PUBLIC_KEY, API_SERVER_NAME
ClusterConfig ClusterConfig Various Kubernetes cluster level configuration RESOURCE_GROUP, LOCATION, VM_TYPE, PRIMARY_AVAILABILITY_SET, PRIMARY_SCALE_SET, USE_INSTANCE_METADATA
-ClusterNetworkConfig ClusterNetworkConfig Cluster network config. We assumed network mode is always "transparent" now so it's removed from the contract. VIRTUAL_NETWORK, VIRTUAL_NETWORK_RESOURCE_GROUP, SUBNET, NETWORK_SECURITY_GROUP, ROUTE_TABLE
-LoadBalancerConfig LoadBalancerConfig Load balancer config LOAD_BALANCER_SKU, EXCLUDE_MASTER_FROM_STANDARD_LB, MAXIMUM_LOADBALANCER_RULE_COUNT, LOAD_BALANCER_DISABLE_OUTBOUND_SNAT
TlsBootstrappingConfig TLSBootstrappingConfig TLS bootstrap configuration ENABLE_TLS_BOOTSTRAPPING, ENABLE_SECURE_TLS_BOOTSTRAPPING, CUSTOM_SECURE_TLS_BOOTSTRAP_AAD_SERVER_APP_ID
AuthConfig AuthConfig Authentication configuration TENANT_ID, SUBSCRIPTION_ID, SERVICE_PRINCIPAL_CLIENT_ID, SERVICE_PRINCIPAL_FILE_CONTENT, USER_ASSIGNED_IDENTITY_ID, USE_MANAGED_IDENTITY_EXTENSION
RuncConfig RuncConfig The CLI tool runc configuration RUNC_VERSION, RUNC_PACKAGE_URL
ContainerdConfig ContainerdConfig Containerd configuration CONTAINERD_DOWNLOAD_URL_BASE, CONTAINERD_VERSION, CONTAINERD_PACKAGE_URL
TeleportConfig TeleportConfig Teleport configuration TELEPORT_ENABLED, TELEPORTD_PLUGIN_DOWNLOAD_URL
KubeletConfig KubeletConfig Kubelet configuration KUBELET_FLAGS, KUBELET_NODE_LABELS, HAS_KUBELET_DISK_TYPE, KUBELET_CONFIG_FILE_ENABLED, KUBELET_CONFIG_FILE_CONTENT, KUBELET_CLIENT_CONTENT, KUBELET_CLIENT_CERT_CONTENT
CustomSearchDomainConfig CustomSearchDomainConfig Custom search domain configuration CUSTOM_SEARCH_DOMAIN_NAME, CUSTOM_SEARCH_REALM_USER, CUSTOM_SEARCH_REALM_PASSWORD
CustomLinuxOSConfig CustomLinuxOSConfig Custom Linux OS configurations including SwapFile, SysCtl configs, etc. SYSCTL_CONTENT, CONTAINERD_ULIMITS, SHOULD_CONFIG_SWAP_FILE, SWAP_FILE_SIZE_MB, THP_ENABLED, THP_DEFRAG, SHOULD_CONFIG_TRANSPARENT_HUGE_PAGE, SHOULD_CONFIG_CONTAINERD_ULIMITS
HTTPProxyConfig HTTPProxyConfig HTTP/HTTPS proxy configuration for the node SHOULD_CONFIGURE_HTTP_PROXY, SHOULD_CONFIGURE_HTTP_PROXY_CA, HTTP_PROXY_TRUSTED_CA, HTTP_PROXY_URLS, HTTPS_PROXY_URLS, NO_PROXY_URLS, PROXY_VARS
GPUConfig GPUConfig GPU configuration for the node GPU_NODE, CONFIG_GPU_DRIVER_IF_NEEDED, ENABLE_GPU_DEVICE_PLUGIN_IF_NEEDED, MIG_NODE, GPU_INSTANCE_PROFILE
NetworkConfig NetworkConfig Network configuration for the node NETWORK_PLUGIN, NETWORK_POLICY, VNET_CNI_PLUGINS_URL, ENSURE_NO_DUPE_PROMISCUOUS_BRIDGE
KubernetesCaCert string Kubernetes certificate authority (CA) certificate, required by the node to establish TLS with the API server KUBE_CA_CRT
KubernetesVersion string Kubernetes version KUBERNETES_VERSION
KubeProxyUrl string Kube proxy URL KUBEPROXY_URL
VmSize string The VM size of the node N/A, new
LinuxAdminUsername string Linux admin username. If not specified, the default value is azureuser ADMINUSER
IsVhd bool Specifies whether the node is a VHD node. This is still needed for some customized scenarios. This is labeled as optional (explicit presence) so that we know whether it's set or not. If it's not set, the default value will be nil. IS_VHD
EnableSsh bool Specifies if SSH is enabled on the VM node. This is labeled as optional (explicit presence) so that we know whether it's set or not. If it's not set, the default value will be nil, but will be set to true on the VHD. DISABLE_SSH
EnableUnattendedUpgrade bool Specifies whether unattended upgrade is enabled or disabled on the VM node ENABLE_UNATTENDED_UPGRADES
MessageOfTheDay string The message of the day that is displayed on the VM node when a user logs in MESSAGE_OF_THE_DAY
EnableHostsConfigAgent bool Specifies whether the hosts config agent is enabled or disabled on the VM node ENABLE_HOSTS_CONFIG_AGENT
CustomCaCerts []string Custom CA certificates to be added to the system trust store SHOULD_CONFIGURE_CUSTOM_CA_TRUST, CUSTOM_CA_TRUST_COUNT, CUSTOM_CA_CERT_{{$i}}
ProvisionOutput string A local file path where cluster provision cse output should be stored PROVISION_OUTPUT
WorkloadRuntime WorkloadRuntime Workload runtime, e.g., either "OCIContainer" or "WasmWasi", currently. IS_KRUSTLET
Ipv6DualStackEnabled bool Specifies whether IPv6 dual stack is enabled or disabled on the VM node IPV6_DUAL_STACK_ENABLED
OutboundCommand bool Specifies whether IPv6 dual stack is enabled or disabled on the VM node OUTBOUND_COMMAND
AzurePrivateRegistryServer string Azure private registry server URI AZURE_PRIVATE_REGISTRY_SERVER
PrivateEgressProxyAddress string Private egress proxy address PRIVATE_EGRESS_PROXY_ADDRESS
PrivateEgressProxyAddress bool Specifies whether artifact streaming is enabled or disabled on the VM node ARTIFACT_STREAMING_ENABLED
IsKata bool Specifies if it is a Kata node IS_KATA
NeedsCgroupv2 *bool Specifies whether the node needs cgroupv2. Labeled as optional (explicit presence) so that we know whether it's set or not. If it's not set, the default value will be nil and it's defaulted to false. Future plan is to get the value from VHD during bootstrapping. NEEDS_CGROUPV2
BootstrapProfileContainerRegistryServer string Bootstrap profile container registry server URI BOOTSTRAP_PROFILE_CONTAINER_REGISTRY_SERVER
IMDSRestrictionConfig IMDSRestrictionConfig IMDS restriction configuration ENABLE_IMDS_RESTRICTION, INSERT_IMDS_RESTRICTION_RULE_TO_MANGLE_TABLE

Removed old environment variables from cse_cmd.sh: CSE_HELPERS_FILEPATH, CSE_DISTRO_HELPERS_FILEPATH, CSE_INSTALL_FILEPATH, CSE_DISTRO_INSTALL_FILEPATH, CSE_CONFIG_FILEPATH, DHCPV6_SERVICE_FILEPATH, DHCPV6_CONFIG_FILEPATH, NEEDS_DOCKER_LOGIN, NEEDS_CONTAINERD, CLI_TOOL, CONTAINER_RUNTIME, MOBY_VERSION, HYPERKUBE_URL, SGX_NODE and more.

Many variables are changed to optional and we have a builder function as a helper to provide default values. For example, the builder function defaults LinuxAdminUsername to value azureuser, OutboundCommand to a default outbound command curl -v --insecure --proxy-insecure https://mcr.microsoft.com/v2/.

Guideline to add a new variable to AKSNodeConfig

Why Protobuf? (Feel free to skip)

We use Protobuf.proto3 to define the data contract and make use of its benefits as follows:

  • Support across different programming languages
  • Schema definition in a structured way
  • Easier to validate at compile time
  • Natively support backward/forward compatibility

Protobuf provides another benefit that we are not planning to use yet, which is encoding/decoding the payload. Since we are only bootstrapping the node once at the first boot, the transfer speed is not the major concern of this project. In the future, we can still consider transferring encoded payload. The proposed design is flexible to adapt to this future change.

Defining a variable in the contract

In protobuf, a variable can be defined as one of the general types: bool, string, a group of sub-level variables, an array of variables, etc. Here are some examples.

In protobuf In Go
string var1 Var1 string
bool var2 Var2 bool
repeated string var3 Var3 []string
GroupType var4 Var4 *GroupType
optional bool var5 Var5 *bool

When to use the label optional specifically in proto3? (Feel free to come back to read this section when needed. You can skip to next section High level Steps)

For 90% of the cases, we don't need to add label optional. In proto3, variable without optional label is considered as no presence and the one with optional label is explicit presence. Application Note: Field Presence | Protocol Buffers Documentation (protobuf.dev) In an intuitive way to explain this,

  1. No presence (without optional label) If this variable’s value is unset, the consumer (in our case, bootstrappers) will get a default value based on its type. For example, if a bool variable’s value is unset, the consumer will get false. The default value for an unset string variable is an empty string.
  2. Explicit presence (with optional label) If this variable’s value is unset, the consumer will get a nil value. With that, the feature owner can use this additional state (besides true and false for a bool) to add some logic to it.

Considering an evolution scenario where we should be adding a label optional. We will explain what the effect of adding this label is. There is a new feature AwesomeFeature, which will replace an old feature OldFeature gradually. It is still in a pre-production state and is not ready in the VHD provisioning process yet. A dev adds a new variable AwesomeFeature to the contract and set it as false. The label optional should be added to this variable. An evolutional scenario will look like this,

  1. When AwesomeFeature is not yet available and the OldFeature is still running: AwesomeFeature = false, OldFeature=true
  2. When AwesomeFeature is available in production and the OldFeature is also available: AwesomeFeature = true, OldFeature=false
  3. When OldFeature is deprecated and AwesomeFeature=true is the only option: The feature owner can of course request the producer of the contract payload (the bootstrapper) to always set AwesomeFeature = false. Given that we don’t allow the removal of a variable from the contract because it’s a breaking change that breaks compatibility, another more elegant way is to loosen this requirement. That is, even if the value is not set, we can still control the default value in the Go binary in VHD. Without optional label, the default value will be automatically assigned by the protobuf compiled codes so we can’t tell if the value is from defaulting or from the producer’s explicit assignment. But with optional label, if the value is not set, we will get a nil for bool, and so on. Therefore, the feature owner can add handling logic in the codes by making use of this additional feature state.

Notes: In proto3, all variables are optional, not required. Thus indeed, optional label in proto3 doesn’t really mean it’s an optional variable. It’s saying that it’s explicit presence. (I know it’s confusing). The concept of optional label is to distinguish between these 2 cases.

  • A variable is not set, meaning assigned with no value. In case of no presence, it will be automatically assigned with the default value. Depending on different types of variables, proto3 has different default values. Check more here if interested.
  • A variable is explicitly assigned with a value, which happens to be the default value. For some cases, knowing that the variable is not set is important. Then the feature owner can handle it with additional logic. For the best practice, if the feature doesn’t require distinguishing the 2 cases above, please don’t add an optional label. If it’s needed to distinguish between, please add an optional label. Nevertheless, it’s not a big harm to use optional even though it’s not needed. It’s just on the consumer side, you will need to either use the proto3 generated getters, which ensures non-nil value, or handle the nil value properly by yourself. But you may also want to let other people know that it could be nil value when they use the variable you added.

High level Steps

  1. Update corresponding .proto files to the data contract. Usually we start with config.proto.
  2. At AgentBaker root level, run command make compile-proto-files to compile the .proto files to .go files. At this point, we updated the data contract.
  3. Tell how VHD should react to this new variable by updaing the bootscripts as you do before. Basically you will be modifying shell scripts like install-dependencies.sh, cse_install.sh, cse_helpers.sh, etc. You may also want to add some unit tests to spec files like cse_install_spec.sh, cse_helpers.sh to find bugs earlier.
  4. On the VHD side, we are still invoking the bootstrap scripts under the hood. So we will need to update cse_cmd.sh.gtpl to set the environment variables of the CSE trigger command. Note: Node SIG is working on migrating all scripts to managable Go binary. Before it's done, the bootstrap scripts will still be used.
  5. Set default values for your variables, if the existing defaulting provided by proto3 doesn't fit your purpose. For example, if a bool variable is not set, proto will default it to false. However, if you want to default it to true, then you can set your own default function. getDisableSSH in cse_cmd.sh.gtpl is 1 example.

Detailed steps with example

Example: IMDSRescrtionConfig

  1. Create a proto file with name imdsrestrictionconfig.proto with the following contents.
syntax = "proto3";
package nbcontract.v1;

message IMDSRestrictionConfig {
  // Enable IMDS restriction for the node.
  bool enable_imds_restriction = 1;

  // Insert IMDS restriction rule to mangle table.
  bool insert_imds_restriction_rule_to_mangle_table = 2;
}
  1. In the root level .proto file config.proto, import the newly created file with import "pkg/proto/nbcontract/v1/imdsrestrictionconfig.proto";. Add IMDSRestrictionConfig in the message body such as:
  // IMDS restriction configuration
  IMDSRestrictionConfig imds_restriction_config = 39;
  1. Once you finished step 2, proto3 actually created some getters that we can use. For example, in the imdsrestrictionconfig.pb.go that was automatically created, you can find GetEnableImdsRestriction and GetInsertImdsRestrictionRuleToMangleTable. Therefore, in nbcparser/pkg/parser/templates/cse_cmd.sh.gtpl, which is a Go template file that will be converted to a .sh script file in the end, you can add the following lines,
ENABLE_IMDS_RESTRICTION={{.GetEnableImdsRestriction}}
INSERT_IMDS_RESTRICTION_RULE_TO_MANGLE_TABLE={{.GetInsertImdsRestrictionRuleToMangleTable}}

This is to tell Go when it executes/resolves this template file, call those functions to get the actual values. In this case, it's a bool. If the client (such as AKS-RP) which provides this AKSNodeConfig, doesn't specify a value to EnableImdsRestriction, it will be defaulted to false. You can also see this logic in the GetEnableImdsRestriction in imdsrestrictionconfig.pb.go.

This should fit most of the use cases. However, for some reasons if you want to explicitly know if the client really sets false (because you can't tell this variable is really set to false or client doesn't set it and it was set by defaulting), then you will need to set it with a label optional explicity presence. Now you will need to read through an earlier section When to use the label optional specifically in proto3?

Documentation

Overview

All the helper functions should be hosted by another public repo later. (e.g. agentbaker) Helper functions in this file will be called by bootstrappers to populate nb contract payload.

Index

Constants

View Source
const (
	VMTypeStandard       = "standard"
	VMTypeVmss           = "vmss"
	NetworkPluginAzure   = "azure"
	NetworkPluginKubenet = "kubenet"
	NetworkPolicyAzure   = "azure"
	NetworkPolicyCalico  = "calico"
	LoadBalancerBasic    = "basic"
	LoadBalancerStandard = "Standard"
	VMSizeStandardDc2s   = "Standard_DC2s"
	VMSizeStandardDc4s   = "Standard_DC4s"
	DefaultLinuxUser     = "azureuser"
	DefaultCloudName     = "AzurePublicCloud"
	AksCustomCloudName   = "akscustom"
	AzureStackCloud      = "AzureStackCloud"
)

Variables

View Source
var (
	ClusterConfig_VM_name = map[int32]string{
		0: "UNSPECIFIED",
		1: "STANDARD",
		2: "VMSS",
	}
	ClusterConfig_VM_value = map[string]int32{
		"UNSPECIFIED": 0,
		"STANDARD":    1,
		"VMSS":        2,
	}
)

Enum value maps for ClusterConfig_VM.

View Source
var (
	LoadBalancerConfig_LoadBalancerSku_name = map[int32]string{
		0: "UNSPECIFIED",
		1: "BASIC",
		2: "STANDARD",
	}
	LoadBalancerConfig_LoadBalancerSku_value = map[string]int32{
		"UNSPECIFIED": 0,
		"BASIC":       1,
		"STANDARD":    2,
	}
)

Enum value maps for LoadBalancerConfig_LoadBalancerSku.

View Source
var (
	WorkloadRuntime_name = map[int32]string{
		0: "WR_UNSPECIFIED",
		1: "OCI_CONTAINER",
		2: "WASM_WASI",
	}
	WorkloadRuntime_value = map[string]int32{
		"WR_UNSPECIFIED": 0,
		"OCI_CONTAINER":  1,
		"WASM_WASI":      2,
	}
)

Enum value maps for WorkloadRuntime.

View Source
var (
	KubeletDisk_name = map[int32]string{
		0: "KD_UNSPECIFIED",
		1: "OS_DISK",
		2: "TEMP_DISK",
	}
	KubeletDisk_value = map[string]int32{
		"KD_UNSPECIFIED": 0,
		"OS_DISK":        1,
		"TEMP_DISK":      2,
	}
)

Enum value maps for KubeletDisk.

View Source
var (
	NetworkPlugin_name = map[int32]string{
		0: "NP_UNSPECIFIED",
		1: "NP_NONE",
		2: "NP_AZURE",
		3: "NP_KUBENET",
	}
	NetworkPlugin_value = map[string]int32{
		"NP_UNSPECIFIED": 0,
		"NP_NONE":        1,
		"NP_AZURE":       2,
		"NP_KUBENET":     3,
	}
)

Enum value maps for NetworkPlugin.

View Source
var (
	NetworkPolicy_name = map[int32]string{
		0: "NPO_UNSPECIFIED",
		1: "NPO_NONE",
		2: "NPO_AZURE",
		3: "NPO_CALICO",
	}
	NetworkPolicy_value = map[string]int32{
		"NPO_UNSPECIFIED": 0,
		"NPO_NONE":        1,
		"NPO_AZURE":       2,
		"NPO_CALICO":      3,
	}
)

Enum value maps for NetworkPolicy.

View Source
var File_pkg_proto_nbcontract_v1_apiserverconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_authconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_clusterconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_config_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_containerdconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_customcloudconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_customlinuxosconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_customsearchdomainconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_gpuconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_httpproxyconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_imdsrestrictionconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_kubebinaryconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_kubeletconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_networkconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_runcconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_teleportconfig_proto protoreflect.FileDescriptor
View Source
var File_pkg_proto_nbcontract_v1_tlsbootstrappingconfig_proto protoreflect.FileDescriptor

Functions

func GetDefaultOutboundCommand

func GetDefaultOutboundCommand() string

GetDefaultOutboundCommand returns a default outbound traffic command.

func GetKubeletConfigFlag

func GetKubeletConfigFlag(k map[string]string, cs *datamodel.ContainerService, profile *datamodel.AgentPoolProfile,
	kubeletConfigFileToggleEnabled bool) map[string]string

GetOrderedKubeletConfigFlagString returns an ordered string of key/val pairs. copied from AKS-Engine and filter out flags that already translated to config file.

func GetKubeletNodeLabels

func GetKubeletNodeLabels(agentPool *datamodel.AgentPoolProfile) map[string]string

func GetOutBoundCmd

func GetOutBoundCmd(nbc *datamodel.NodeBootstrappingConfiguration) string

GetOutBoundCmd returns a proper outbound traffic command based on some cloud and Linux distro configs.

func IsKubernetesVersionGe

func IsKubernetesVersionGe(actualVersion, version string) bool

IsKubernetesVersionGe returns true if actualVersion is greater than or equal to version.

func ValidateAndSetLinuxKubeletFlags

func ValidateAndSetLinuxKubeletFlags(kubeletFlags map[string]string, cs *datamodel.ContainerService, profile *datamodel.AgentPoolProfile)

Types

type ApiServerConfig

type ApiServerConfig struct {

	// The certificate public key of the API server.
	ApiServerPublicKey string `protobuf:"bytes,1,opt,name=api_server_public_key,json=apiServerPublicKey,proto3" json:"api_server_public_key,omitempty"`
	// The name or endpoint URI of the API server.
	ApiServerName string `protobuf:"bytes,2,opt,name=api_server_name,json=apiServerName,proto3" json:"api_server_name,omitempty"`
	// contains filtered or unexported fields
}

func (*ApiServerConfig) Descriptor deprecated

func (*ApiServerConfig) Descriptor() ([]byte, []int)

Deprecated: Use ApiServerConfig.ProtoReflect.Descriptor instead.

func (*ApiServerConfig) GetApiServerName

func (x *ApiServerConfig) GetApiServerName() string

func (*ApiServerConfig) GetApiServerPublicKey

func (x *ApiServerConfig) GetApiServerPublicKey() string

func (*ApiServerConfig) ProtoMessage

func (*ApiServerConfig) ProtoMessage()

func (*ApiServerConfig) ProtoReflect

func (x *ApiServerConfig) ProtoReflect() protoreflect.Message

func (*ApiServerConfig) Reset

func (x *ApiServerConfig) Reset()

func (*ApiServerConfig) String

func (x *ApiServerConfig) String() string

type AuthConfig

type AuthConfig struct {

	// Tenant ID
	TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	// Subscription ID
	SubscriptionId string `protobuf:"bytes,2,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"`
	// Service Principal ID. set to aadClientId
	ServicePrincipalId string `protobuf:"bytes,3,opt,name=service_principal_id,json=servicePrincipalId,proto3" json:"service_principal_id,omitempty"`
	// Service Principal Secret. set to aadClientSecret
	ServicePrincipalSecret string `` /* 129-byte string literal not displayed */
	// Assigned identity id, could be user or system assigned, depending on the type.
	AssignedIdentityId string `protobuf:"bytes,5,opt,name=assigned_identity_id,json=assignedIdentityId,proto3" json:"assigned_identity_id,omitempty"`
	// Specify if use managed identity extension, default to false
	UseManagedIdentityExtension bool `` /* 147-byte string literal not displayed */
	// contains filtered or unexported fields
}

Auth Config fields stored in azure.json used by cloud-provider-azure

func (*AuthConfig) Descriptor deprecated

func (*AuthConfig) Descriptor() ([]byte, []int)

Deprecated: Use AuthConfig.ProtoReflect.Descriptor instead.

func (*AuthConfig) GetAssignedIdentityId

func (x *AuthConfig) GetAssignedIdentityId() string

func (*AuthConfig) GetServicePrincipalId

func (x *AuthConfig) GetServicePrincipalId() string

func (*AuthConfig) GetServicePrincipalSecret

func (x *AuthConfig) GetServicePrincipalSecret() string

func (*AuthConfig) GetSubscriptionId

func (x *AuthConfig) GetSubscriptionId() string

func (*AuthConfig) GetTenantId

func (x *AuthConfig) GetTenantId() string

func (*AuthConfig) GetUseManagedIdentityExtension

func (x *AuthConfig) GetUseManagedIdentityExtension() bool

func (*AuthConfig) ProtoMessage

func (*AuthConfig) ProtoMessage()

func (*AuthConfig) ProtoReflect

func (x *AuthConfig) ProtoReflect() protoreflect.Message

func (*AuthConfig) Reset

func (x *AuthConfig) Reset()

func (*AuthConfig) String

func (x *AuthConfig) String() string

type ClusterConfig

type ClusterConfig struct {

	// Cluster network config. We assumed network mode is always "transparent" now so it's removed from the contract.
	ClusterNetworkConfig *ClusterNetworkConfig `protobuf:"bytes,1,opt,name=cluster_network_config,json=clusterNetworkConfig,proto3" json:"cluster_network_config,omitempty"`
	// Load balancer config
	LoadBalancerConfig *LoadBalancerConfig `protobuf:"bytes,2,opt,name=load_balancer_config,json=loadBalancerConfig,proto3" json:"load_balancer_config,omitempty"`
	// Rescource group name
	ResourceGroup string `protobuf:"bytes,3,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"`
	// Location
	Location string `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"`
	// VM type
	VmType ClusterConfig_VM `protobuf:"varint,5,opt,name=vm_type,json=vmType,proto3,enum=nbcontract.v1.ClusterConfig_VM" json:"vm_type,omitempty"` // default to standard for v1.27 and below versions and vmss for v1.28+ versions
	// Primary availability set name
	PrimaryAvailabilitySet string `` /* 129-byte string literal not displayed */
	// Primary scale set name
	PrimaryScaleSet string `protobuf:"bytes,7,opt,name=primary_scale_set,json=primaryScaleSet,proto3" json:"primary_scale_set,omitempty"`
	// Specifiy if it uses instance metadata
	UseInstanceMetadata bool `protobuf:"varint,8,opt,name=use_instance_metadata,json=useInstanceMetadata,proto3" json:"use_instance_metadata,omitempty"` // default to false
	// contains filtered or unexported fields
}

Cluster Config fields stored in azure.json used by cloud-provider-azure

func (*ClusterConfig) Descriptor deprecated

func (*ClusterConfig) Descriptor() ([]byte, []int)

Deprecated: Use ClusterConfig.ProtoReflect.Descriptor instead.

func (*ClusterConfig) GetClusterNetworkConfig

func (x *ClusterConfig) GetClusterNetworkConfig() *ClusterNetworkConfig

func (*ClusterConfig) GetLoadBalancerConfig

func (x *ClusterConfig) GetLoadBalancerConfig() *LoadBalancerConfig

func (*ClusterConfig) GetLocation

func (x *ClusterConfig) GetLocation() string

func (*ClusterConfig) GetPrimaryAvailabilitySet

func (x *ClusterConfig) GetPrimaryAvailabilitySet() string

func (*ClusterConfig) GetPrimaryScaleSet

func (x *ClusterConfig) GetPrimaryScaleSet() string

func (*ClusterConfig) GetResourceGroup

func (x *ClusterConfig) GetResourceGroup() string

func (*ClusterConfig) GetUseInstanceMetadata

func (x *ClusterConfig) GetUseInstanceMetadata() bool

func (*ClusterConfig) GetVmType

func (x *ClusterConfig) GetVmType() ClusterConfig_VM

func (*ClusterConfig) ProtoMessage

func (*ClusterConfig) ProtoMessage()

func (*ClusterConfig) ProtoReflect

func (x *ClusterConfig) ProtoReflect() protoreflect.Message

func (*ClusterConfig) Reset

func (x *ClusterConfig) Reset()

func (*ClusterConfig) String

func (x *ClusterConfig) String() string

type ClusterConfig_VM

type ClusterConfig_VM int32
const (
	ClusterConfig_UNSPECIFIED ClusterConfig_VM = 0
	ClusterConfig_STANDARD    ClusterConfig_VM = 1
	ClusterConfig_VMSS        ClusterConfig_VM = 2
)

func (ClusterConfig_VM) Descriptor

func (ClusterConfig_VM) Enum

func (ClusterConfig_VM) EnumDescriptor deprecated

func (ClusterConfig_VM) EnumDescriptor() ([]byte, []int)

Deprecated: Use ClusterConfig_VM.Descriptor instead.

func (ClusterConfig_VM) Number

func (ClusterConfig_VM) String

func (x ClusterConfig_VM) String() string

func (ClusterConfig_VM) Type

type ClusterNetworkConfig

type ClusterNetworkConfig struct {

	// Virtual network name
	VnetName string `protobuf:"bytes,1,opt,name=vnet_name,json=vnetName,proto3" json:"vnet_name,omitempty"`
	// Virtual network resource group
	VnetResourceGroup string `protobuf:"bytes,2,opt,name=vnet_resource_group,json=vnetResourceGroup,proto3" json:"vnet_resource_group,omitempty"`
	// Subnet name
	Subnet string `protobuf:"bytes,3,opt,name=subnet,proto3" json:"subnet,omitempty"`
	// Network security group name
	SecurityGroupName string `protobuf:"bytes,4,opt,name=security_group_name,json=securityGroupName,proto3" json:"security_group_name,omitempty"`
	// Route table name
	RouteTable string `protobuf:"bytes,5,opt,name=route_table,json=routeTable,proto3" json:"route_table,omitempty"`
	// contains filtered or unexported fields
}

func (*ClusterNetworkConfig) Descriptor deprecated

func (*ClusterNetworkConfig) Descriptor() ([]byte, []int)

Deprecated: Use ClusterNetworkConfig.ProtoReflect.Descriptor instead.

func (*ClusterNetworkConfig) GetRouteTable

func (x *ClusterNetworkConfig) GetRouteTable() string

func (*ClusterNetworkConfig) GetSecurityGroupName

func (x *ClusterNetworkConfig) GetSecurityGroupName() string

func (*ClusterNetworkConfig) GetSubnet

func (x *ClusterNetworkConfig) GetSubnet() string

func (*ClusterNetworkConfig) GetVnetName

func (x *ClusterNetworkConfig) GetVnetName() string

func (*ClusterNetworkConfig) GetVnetResourceGroup

func (x *ClusterNetworkConfig) GetVnetResourceGroup() string

func (*ClusterNetworkConfig) ProtoMessage

func (*ClusterNetworkConfig) ProtoMessage()

func (*ClusterNetworkConfig) ProtoReflect

func (x *ClusterNetworkConfig) ProtoReflect() protoreflect.Message

func (*ClusterNetworkConfig) Reset

func (x *ClusterNetworkConfig) Reset()

func (*ClusterNetworkConfig) String

func (x *ClusterNetworkConfig) String() string

type Configuration

type Configuration struct {

	// Semantic version of this node bootstrap contract
	Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	// Kube binary URL config
	KubeBinaryConfig *KubeBinaryConfig `protobuf:"bytes,2,opt,name=kube_binary_config,json=kubeBinaryConfig,proto3" json:"kube_binary_config,omitempty"`
	// Custom cloud config
	CustomCloudConfig *CustomCloudConfig `protobuf:"bytes,3,opt,name=custom_cloud_config,json=customCloudConfig,proto3" json:"custom_cloud_config,omitempty"`
	// Kubernetes API server configuration
	ApiServerConfig *ApiServerConfig `protobuf:"bytes,4,opt,name=api_server_config,json=apiServerConfig,proto3" json:"api_server_config,omitempty"`
	// Various Kubernetes cluster level configuration
	ClusterConfig *ClusterConfig `protobuf:"bytes,5,opt,name=cluster_config,json=clusterConfig,proto3" json:"cluster_config,omitempty"`
	// TLS bootstrap config
	TlsBootstrappingConfig *TLSBootstrappingConfig `` /* 129-byte string literal not displayed */
	// Authentication configuration
	AuthConfig *AuthConfig `protobuf:"bytes,7,opt,name=auth_config,json=authConfig,proto3" json:"auth_config,omitempty"`
	// The CLI tool runc configuration
	RuncConfig *RuncConfig `protobuf:"bytes,8,opt,name=runc_config,json=runcConfig,proto3" json:"runc_config,omitempty"`
	// Containerd configuration
	ContainerdConfig *ContainerdConfig `protobuf:"bytes,9,opt,name=containerd_config,json=containerdConfig,proto3" json:"containerd_config,omitempty"`
	// Teleport configuration
	TeleportConfig *TeleportConfig `protobuf:"bytes,10,opt,name=teleport_config,json=teleportConfig,proto3" json:"teleport_config,omitempty"`
	// Kubelet configuration
	KubeletConfig *KubeletConfig `protobuf:"bytes,11,opt,name=kubelet_config,json=kubeletConfig,proto3" json:"kubelet_config,omitempty"`
	// Custom search domain configurations
	CustomSearchDomainConfig *CustomSearchDomainConfig `` /* 138-byte string literal not displayed */
	// Custom Linux OS configurations including SwapFile, SysCtl configs, etc.
	CustomLinuxOsConfig *CustomLinuxOSConfig `protobuf:"bytes,13,opt,name=custom_linux_os_config,json=customLinuxOsConfig,proto3" json:"custom_linux_os_config,omitempty"`
	// HTTP/HTTPS proxy configuration for the node
	HttpProxyConfig *HTTPProxyConfig `protobuf:"bytes,14,opt,name=http_proxy_config,json=httpProxyConfig,proto3" json:"http_proxy_config,omitempty"`
	// GPU configuration for the node
	GpuConfig *GPUConfig `protobuf:"bytes,15,opt,name=gpu_config,json=gpuConfig,proto3" json:"gpu_config,omitempty"`
	// Network configuration for the node
	NetworkConfig *NetworkConfig `protobuf:"bytes,16,opt,name=network_config,json=networkConfig,proto3" json:"network_config,omitempty"`
	// Kubernetes certificate authority (CA) certificate, required by the node to establish TLS with the API server
	KubernetesCaCert string `protobuf:"bytes,17,opt,name=kubernetes_ca_cert,json=kubernetesCaCert,proto3" json:"kubernetes_ca_cert,omitempty"`
	// Kubernetes version
	KubernetesVersion string `protobuf:"bytes,18,opt,name=kubernetes_version,json=kubernetesVersion,proto3" json:"kubernetes_version,omitempty"`
	// Kube proxy URL
	KubeProxyUrl string `protobuf:"bytes,19,opt,name=kube_proxy_url,json=kubeProxyUrl,proto3" json:"kube_proxy_url,omitempty"`
	// The VM size of the node
	VmSize string `protobuf:"bytes,20,opt,name=vm_size,json=vmSize,proto3" json:"vm_size,omitempty"`
	// Linux admin username. If not specified, the default value is "azureuser"
	LinuxAdminUsername string `protobuf:"bytes,21,opt,name=linux_admin_username,json=linuxAdminUsername,proto3" json:"linux_admin_username,omitempty"`
	// Specifies whether the node is a VHD node. This is still needed for some customized scenarios.
	// This is labeled as optional (explicit presence) so that we know whether it's set or not.
	// If it's not set, the default value will be nil.
	IsVhd *bool `protobuf:"varint,22,opt,name=is_vhd,json=isVhd,proto3,oneof" json:"is_vhd,omitempty"`
	// Specifies whether SSH is enabled or disabled on the VM node
	// This is labeled as optional (explicit presence) so that we know whether it's set or not.
	// If it's not set, the default value will be nil, but will be set to true on the VHD.
	EnableSsh *bool `protobuf:"varint,23,opt,name=enable_ssh,json=enableSsh,proto3,oneof" json:"enable_ssh,omitempty"`
	// Specifies whether unattended upgrade is enabled or disabled on the VM node
	EnableUnattendedUpgrade bool `` /* 134-byte string literal not displayed */
	// The message of the day that is displayed on the VM node when a user logs in
	MessageOfTheDay string `protobuf:"bytes,25,opt,name=message_of_the_day,json=messageOfTheDay,proto3" json:"message_of_the_day,omitempty"`
	// Specifies whether the hosts config agent is enabled or disabled on the VM node
	EnableHostsConfigAgent bool `` /* 133-byte string literal not displayed */
	// Custom CA certificates to be added to the system trust store
	CustomCaCerts []string `protobuf:"bytes,27,rep,name=custom_ca_certs,json=customCaCerts,proto3" json:"custom_ca_certs,omitempty"`
	// A local file path where cluster provision cse output should be stored
	ProvisionOutput string `protobuf:"bytes,28,opt,name=provision_output,json=provisionOutput,proto3" json:"provision_output,omitempty"`
	// Workload runtime, e.g., either "OCIContainer" or "WasmWasi", currently.
	WorkloadRuntime WorkloadRuntime `` /* 143-byte string literal not displayed */
	// Specifies whether IPv6 dual stack is enabled or disabled on the VM node
	Ipv6DualStackEnabled bool `` /* 127-byte string literal not displayed */
	// Command to use for outbound traffic
	OutboundCommand string `protobuf:"bytes,31,opt,name=outbound_command,json=outboundCommand,proto3" json:"outbound_command,omitempty"`
	// Azure private registry server URI
	AzurePrivateRegistryServer string `` /* 144-byte string literal not displayed */
	// Private egress proxy address
	PrivateEgressProxyAddress string `` /* 141-byte string literal not displayed */
	// Specifies whether artifact streaming is enabled or disabled on the VM node
	EnableArtifactStreaming bool `` /* 134-byte string literal not displayed */
	// Specifies if it is a Kata node
	IsKata bool `protobuf:"varint,35,opt,name=is_kata,json=isKata,proto3" json:"is_kata,omitempty"`
	// Specifies whether the node needs cgroupv2.
	// Labeled as optional (explicit presence) so that we know whether it's set or not.
	// If it's not set, the default value will be nil and we will get the value on the VHD during bootstrapping.
	NeedsCgroupv2 *bool `protobuf:"varint,36,opt,name=needs_cgroupv2,json=needsCgroupv2,proto3,oneof" json:"needs_cgroupv2,omitempty"`
	// Specified whether the node wants to disable custom data scripts for bootstrapping
	DisableCustomData bool `protobuf:"varint,37,opt,name=disable_custom_data,json=disableCustomData,proto3" json:"disable_custom_data,omitempty"`
	// Bootstrap profile container registry server URI
	BootstrapProfileContainerRegistryServer string `` /* 185-byte string literal not displayed */
	// IMDS restriction configuration
	ImdsRestrictionConfig *IMDSRestrictionConfig `` /* 127-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*Configuration) Descriptor deprecated

func (*Configuration) Descriptor() ([]byte, []int)

Deprecated: Use Configuration.ProtoReflect.Descriptor instead.

func (*Configuration) GetApiServerConfig

func (x *Configuration) GetApiServerConfig() *ApiServerConfig

func (*Configuration) GetAuthConfig

func (x *Configuration) GetAuthConfig() *AuthConfig

func (*Configuration) GetAzurePrivateRegistryServer

func (x *Configuration) GetAzurePrivateRegistryServer() string

func (*Configuration) GetBootstrapProfileContainerRegistryServer added in v0.20241027.0

func (x *Configuration) GetBootstrapProfileContainerRegistryServer() string

func (*Configuration) GetClusterConfig

func (x *Configuration) GetClusterConfig() *ClusterConfig

func (*Configuration) GetContainerdConfig

func (x *Configuration) GetContainerdConfig() *ContainerdConfig

func (*Configuration) GetCustomCaCerts

func (x *Configuration) GetCustomCaCerts() []string

func (*Configuration) GetCustomCloudConfig

func (x *Configuration) GetCustomCloudConfig() *CustomCloudConfig

func (*Configuration) GetCustomLinuxOsConfig

func (x *Configuration) GetCustomLinuxOsConfig() *CustomLinuxOSConfig

func (*Configuration) GetCustomSearchDomainConfig

func (x *Configuration) GetCustomSearchDomainConfig() *CustomSearchDomainConfig

func (*Configuration) GetDisableCustomData

func (x *Configuration) GetDisableCustomData() bool

func (*Configuration) GetEnableArtifactStreaming

func (x *Configuration) GetEnableArtifactStreaming() bool

func (*Configuration) GetEnableHostsConfigAgent

func (x *Configuration) GetEnableHostsConfigAgent() bool

func (*Configuration) GetEnableSsh

func (x *Configuration) GetEnableSsh() bool

func (*Configuration) GetEnableUnattendedUpgrade

func (x *Configuration) GetEnableUnattendedUpgrade() bool

func (*Configuration) GetGpuConfig

func (x *Configuration) GetGpuConfig() *GPUConfig

func (*Configuration) GetHttpProxyConfig

func (x *Configuration) GetHttpProxyConfig() *HTTPProxyConfig

func (*Configuration) GetImdsRestrictionConfig added in v0.20241027.0

func (x *Configuration) GetImdsRestrictionConfig() *IMDSRestrictionConfig

func (*Configuration) GetIpv6DualStackEnabled

func (x *Configuration) GetIpv6DualStackEnabled() bool

func (*Configuration) GetIsKata

func (x *Configuration) GetIsKata() bool

func (*Configuration) GetIsVhd

func (x *Configuration) GetIsVhd() bool

func (*Configuration) GetKubeBinaryConfig

func (x *Configuration) GetKubeBinaryConfig() *KubeBinaryConfig

func (*Configuration) GetKubeProxyUrl

func (x *Configuration) GetKubeProxyUrl() string

func (*Configuration) GetKubeletConfig

func (x *Configuration) GetKubeletConfig() *KubeletConfig

func (*Configuration) GetKubernetesCaCert

func (x *Configuration) GetKubernetesCaCert() string

func (*Configuration) GetKubernetesVersion

func (x *Configuration) GetKubernetesVersion() string

func (*Configuration) GetLinuxAdminUsername

func (x *Configuration) GetLinuxAdminUsername() string

func (*Configuration) GetMessageOfTheDay

func (x *Configuration) GetMessageOfTheDay() string

func (*Configuration) GetNeedsCgroupv2

func (x *Configuration) GetNeedsCgroupv2() bool

func (*Configuration) GetNetworkConfig

func (x *Configuration) GetNetworkConfig() *NetworkConfig

func (*Configuration) GetOutboundCommand

func (x *Configuration) GetOutboundCommand() string

func (*Configuration) GetPrivateEgressProxyAddress

func (x *Configuration) GetPrivateEgressProxyAddress() string

func (*Configuration) GetProvisionOutput

func (x *Configuration) GetProvisionOutput() string

func (*Configuration) GetRuncConfig

func (x *Configuration) GetRuncConfig() *RuncConfig

func (*Configuration) GetTeleportConfig

func (x *Configuration) GetTeleportConfig() *TeleportConfig

func (*Configuration) GetTlsBootstrappingConfig

func (x *Configuration) GetTlsBootstrappingConfig() *TLSBootstrappingConfig

func (*Configuration) GetVersion

func (x *Configuration) GetVersion() string

func (*Configuration) GetVmSize

func (x *Configuration) GetVmSize() string

func (*Configuration) GetWorkloadRuntime

func (x *Configuration) GetWorkloadRuntime() WorkloadRuntime

func (*Configuration) ProtoMessage

func (*Configuration) ProtoMessage()

func (*Configuration) ProtoReflect

func (x *Configuration) ProtoReflect() protoreflect.Message

func (*Configuration) Reset

func (x *Configuration) Reset()

func (*Configuration) String

func (x *Configuration) String() string

type ContainerdConfig

type ContainerdConfig struct {

	// The base URL for downloading containerd.
	ContainerdDownloadUrlBase string `` /* 140-byte string literal not displayed */
	// The version of containerd to download.
	ContainerdVersion string `protobuf:"bytes,2,opt,name=containerd_version,json=containerdVersion,proto3" json:"containerd_version,omitempty"`
	// The URL for downloading the containerd package.
	ContainerdPackageUrl string `protobuf:"bytes,3,opt,name=containerd_package_url,json=containerdPackageUrl,proto3" json:"containerd_package_url,omitempty"`
	// contains filtered or unexported fields
}

func (*ContainerdConfig) Descriptor deprecated

func (*ContainerdConfig) Descriptor() ([]byte, []int)

Deprecated: Use ContainerdConfig.ProtoReflect.Descriptor instead.

func (*ContainerdConfig) GetContainerdDownloadUrlBase

func (x *ContainerdConfig) GetContainerdDownloadUrlBase() string

func (*ContainerdConfig) GetContainerdPackageUrl

func (x *ContainerdConfig) GetContainerdPackageUrl() string

func (*ContainerdConfig) GetContainerdVersion

func (x *ContainerdConfig) GetContainerdVersion() string

func (*ContainerdConfig) ProtoMessage

func (*ContainerdConfig) ProtoMessage()

func (*ContainerdConfig) ProtoReflect

func (x *ContainerdConfig) ProtoReflect() protoreflect.Message

func (*ContainerdConfig) Reset

func (x *ContainerdConfig) Reset()

func (*ContainerdConfig) String

func (x *ContainerdConfig) String() string

type CustomCloudConfig

type CustomCloudConfig struct {

	// Name of custom cloud
	CustomCloudEnvName string `protobuf:"bytes,1,opt,name=custom_cloud_env_name,json=customCloudEnvName,proto3" json:"custom_cloud_env_name,omitempty"`
	// RepoDepotEndpoint is the endpoint of the repo depot
	RepoDepotEndpoint string `protobuf:"bytes,2,opt,name=repo_depot_endpoint,json=repoDepotEndpoint,proto3" json:"repo_depot_endpoint,omitempty"`
	// Base64 encoded JSON string of custom cloud environment
	CustomEnvJsonContent string `protobuf:"bytes,3,opt,name=custom_env_json_content,json=customEnvJsonContent,proto3" json:"custom_env_json_content,omitempty"`
	// AKSCustomCloudContainerRegistryDNSSuffix specifies a custom cloud container registry dns suffix for credential provider
	ContainerRegistryDnsSuffix string `` /* 143-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*CustomCloudConfig) Descriptor deprecated

func (*CustomCloudConfig) Descriptor() ([]byte, []int)

Deprecated: Use CustomCloudConfig.ProtoReflect.Descriptor instead.

func (*CustomCloudConfig) GetContainerRegistryDnsSuffix

func (x *CustomCloudConfig) GetContainerRegistryDnsSuffix() string

func (*CustomCloudConfig) GetCustomCloudEnvName

func (x *CustomCloudConfig) GetCustomCloudEnvName() string

func (*CustomCloudConfig) GetCustomEnvJsonContent

func (x *CustomCloudConfig) GetCustomEnvJsonContent() string

func (*CustomCloudConfig) GetRepoDepotEndpoint

func (x *CustomCloudConfig) GetRepoDepotEndpoint() string

func (*CustomCloudConfig) ProtoMessage

func (*CustomCloudConfig) ProtoMessage()

func (*CustomCloudConfig) ProtoReflect

func (x *CustomCloudConfig) ProtoReflect() protoreflect.Message

func (*CustomCloudConfig) Reset

func (x *CustomCloudConfig) Reset()

func (*CustomCloudConfig) String

func (x *CustomCloudConfig) String() string

type CustomLinuxOSConfig

type CustomLinuxOSConfig struct {

	// Sysctl settings for Linux agent nodes
	SysctlConfig *SysctlConfig `protobuf:"bytes,1,opt,name=sysctl_config,json=sysctlConfig,proto3" json:"sysctl_config,omitempty"`
	// Ulimit settings for Linux agent nodes
	UlimitConfig *UlimitConfig `protobuf:"bytes,2,opt,name=ulimit_config,json=ulimitConfig,proto3" json:"ulimit_config,omitempty"`
	// Enable or disable swap configuration
	EnableSwapConfig bool `protobuf:"varint,3,opt,name=enable_swap_config,json=enableSwapConfig,proto3" json:"enable_swap_config,omitempty"`
	// The size in MB of a swap file that will be created on each node
	SwapFileSize int32 `protobuf:"varint,4,opt,name=swap_file_size,json=swapFileSize,proto3" json:"swap_file_size,omitempty"`
	// Valid values are "always", "defer", "defer+madvise", "madvise" and "never"
	// If it's unset or set to empty string, it will use the default value in the VHD "always"
	TransparentHugepageSupport string `` /* 141-byte string literal not displayed */
	// Valid values are "always", "madvise" and "never"
	// If it's unset or set to empty string, it will use the default value in the VHD "madvise"
	TransparentDefrag string `protobuf:"bytes,6,opt,name=transparent_defrag,json=transparentDefrag,proto3" json:"transparent_defrag,omitempty"`
	// contains filtered or unexported fields
}

Custom Linux Node OS Config

func (*CustomLinuxOSConfig) Descriptor deprecated

func (*CustomLinuxOSConfig) Descriptor() ([]byte, []int)

Deprecated: Use CustomLinuxOSConfig.ProtoReflect.Descriptor instead.

func (*CustomLinuxOSConfig) GetEnableSwapConfig

func (x *CustomLinuxOSConfig) GetEnableSwapConfig() bool

func (*CustomLinuxOSConfig) GetSwapFileSize

func (x *CustomLinuxOSConfig) GetSwapFileSize() int32

func (*CustomLinuxOSConfig) GetSysctlConfig

func (x *CustomLinuxOSConfig) GetSysctlConfig() *SysctlConfig

func (*CustomLinuxOSConfig) GetTransparentDefrag

func (x *CustomLinuxOSConfig) GetTransparentDefrag() string

func (*CustomLinuxOSConfig) GetTransparentHugepageSupport

func (x *CustomLinuxOSConfig) GetTransparentHugepageSupport() string

func (*CustomLinuxOSConfig) GetUlimitConfig

func (x *CustomLinuxOSConfig) GetUlimitConfig() *UlimitConfig

func (*CustomLinuxOSConfig) ProtoMessage

func (*CustomLinuxOSConfig) ProtoMessage()

func (*CustomLinuxOSConfig) ProtoReflect

func (x *CustomLinuxOSConfig) ProtoReflect() protoreflect.Message

func (*CustomLinuxOSConfig) Reset

func (x *CustomLinuxOSConfig) Reset()

func (*CustomLinuxOSConfig) String

func (x *CustomLinuxOSConfig) String() string

type CustomSearchDomainConfig

type CustomSearchDomainConfig struct {

	// The name of the custom search domain.
	DomainName string `protobuf:"bytes,1,opt,name=domain_name,json=domainName,proto3" json:"domain_name,omitempty"`
	// The user name for the custom search domain.
	RealmUser string `protobuf:"bytes,2,opt,name=realm_user,json=realmUser,proto3" json:"realm_user,omitempty"`
	// The password for the custom search domain.
	RealmPassword string `protobuf:"bytes,3,opt,name=realm_password,json=realmPassword,proto3" json:"realm_password,omitempty"`
	// contains filtered or unexported fields
}

func (*CustomSearchDomainConfig) Descriptor deprecated

func (*CustomSearchDomainConfig) Descriptor() ([]byte, []int)

Deprecated: Use CustomSearchDomainConfig.ProtoReflect.Descriptor instead.

func (*CustomSearchDomainConfig) GetDomainName

func (x *CustomSearchDomainConfig) GetDomainName() string

func (*CustomSearchDomainConfig) GetRealmPassword

func (x *CustomSearchDomainConfig) GetRealmPassword() string

func (*CustomSearchDomainConfig) GetRealmUser

func (x *CustomSearchDomainConfig) GetRealmUser() string

func (*CustomSearchDomainConfig) ProtoMessage

func (*CustomSearchDomainConfig) ProtoMessage()

func (*CustomSearchDomainConfig) ProtoReflect

func (x *CustomSearchDomainConfig) ProtoReflect() protoreflect.Message

func (*CustomSearchDomainConfig) Reset

func (x *CustomSearchDomainConfig) Reset()

func (*CustomSearchDomainConfig) String

func (x *CustomSearchDomainConfig) String() string

type GPUConfig

type GPUConfig struct {

	// Specifies whether any nvidia configurations should be applied for GPU nodes. False when vm size is not a GPU node or driver install is skipped and no GPU configuration is needed.
	// Making optional so that default will be set to IsNvidiaEnabledSku(vmSize) instead of false
	EnableNvidia *bool `protobuf:"varint,1,opt,name=enable_nvidia,json=enableNvidia,proto3,oneof" json:"enable_nvidia,omitempty"`
	// Specifies whether bootstrap process should install and configure the GPU driver when necessary. Configuration includes appropriate set up of components like the fabric manager where applicable.
	ConfigGpuDriver bool `protobuf:"varint,2,opt,name=config_gpu_driver,json=configGpuDriver,proto3" json:"config_gpu_driver,omitempty"`
	// Specifies whether special config is needed for MIG GPUs that use GPU dedicated VHDs and enable the device plugin (for all GPU dedicated VHDs)
	GpuDevicePlugin bool `protobuf:"varint,3,opt,name=gpu_device_plugin,json=gpuDevicePlugin,proto3" json:"gpu_device_plugin,omitempty"`
	// Represents the GPU instance profile.
	GpuInstanceProfile string `protobuf:"bytes,4,opt,name=gpu_instance_profile,json=gpuInstanceProfile,proto3" json:"gpu_instance_profile,omitempty"`
	// contains filtered or unexported fields
}

func (*GPUConfig) Descriptor deprecated

func (*GPUConfig) Descriptor() ([]byte, []int)

Deprecated: Use GPUConfig.ProtoReflect.Descriptor instead.

func (*GPUConfig) GetConfigGpuDriver

func (x *GPUConfig) GetConfigGpuDriver() bool

func (*GPUConfig) GetEnableNvidia

func (x *GPUConfig) GetEnableNvidia() bool

func (*GPUConfig) GetGpuDevicePlugin

func (x *GPUConfig) GetGpuDevicePlugin() bool

func (*GPUConfig) GetGpuInstanceProfile

func (x *GPUConfig) GetGpuInstanceProfile() string

func (*GPUConfig) ProtoMessage

func (*GPUConfig) ProtoMessage()

func (*GPUConfig) ProtoReflect

func (x *GPUConfig) ProtoReflect() protoreflect.Message

func (*GPUConfig) Reset

func (x *GPUConfig) Reset()

func (*GPUConfig) String

func (x *GPUConfig) String() string

type HTTPProxyConfig

type HTTPProxyConfig struct {

	// Proxy endpoint/URL using HTTP through which the traffic should be routed for making HTTP connections outside the cluster
	HttpProxy string `protobuf:"bytes,1,opt,name=http_proxy,json=httpProxy,proto3" json:"http_proxy,omitempty"`
	// Proxy endpoint/URL using HTTPS through which the traffic should be routed for making HTTPS connections outside the cluster
	HttpsProxy string `protobuf:"bytes,2,opt,name=https_proxy,json=httpsProxy,proto3" json:"https_proxy,omitempty"`
	// A list of entries including IPs, domains, or other network CIDRs that should not be accessed through the proxy
	NoProxyEntries []string `protobuf:"bytes,3,rep,name=no_proxy_entries,json=noProxyEntries,proto3" json:"no_proxy_entries,omitempty"`
	// Custom CA certificate that should be trusted by the proxy
	ProxyTrustedCa string `protobuf:"bytes,4,opt,name=proxy_trusted_ca,json=proxyTrustedCa,proto3" json:"proxy_trusted_ca,omitempty"`
	// contains filtered or unexported fields
}

func (*HTTPProxyConfig) Descriptor deprecated

func (*HTTPProxyConfig) Descriptor() ([]byte, []int)

Deprecated: Use HTTPProxyConfig.ProtoReflect.Descriptor instead.

func (*HTTPProxyConfig) GetHttpProxy

func (x *HTTPProxyConfig) GetHttpProxy() string

func (*HTTPProxyConfig) GetHttpsProxy

func (x *HTTPProxyConfig) GetHttpsProxy() string

func (*HTTPProxyConfig) GetNoProxyEntries

func (x *HTTPProxyConfig) GetNoProxyEntries() []string

func (*HTTPProxyConfig) GetProxyTrustedCa

func (x *HTTPProxyConfig) GetProxyTrustedCa() string

func (*HTTPProxyConfig) ProtoMessage

func (*HTTPProxyConfig) ProtoMessage()

func (*HTTPProxyConfig) ProtoReflect

func (x *HTTPProxyConfig) ProtoReflect() protoreflect.Message

func (*HTTPProxyConfig) Reset

func (x *HTTPProxyConfig) Reset()

func (*HTTPProxyConfig) String

func (x *HTTPProxyConfig) String() string

type IMDSRestrictionConfig added in v0.20241027.0

type IMDSRestrictionConfig struct {

	// Enable IMDS restriction for the node.
	EnableImdsRestriction bool `` /* 127-byte string literal not displayed */
	// Insert IMDS restriction rule to mangle table.
	InsertImdsRestrictionRuleToMangleTable bool `` /* 186-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*IMDSRestrictionConfig) Descriptor deprecated added in v0.20241027.0

func (*IMDSRestrictionConfig) Descriptor() ([]byte, []int)

Deprecated: Use IMDSRestrictionConfig.ProtoReflect.Descriptor instead.

func (*IMDSRestrictionConfig) GetEnableImdsRestriction added in v0.20241027.0

func (x *IMDSRestrictionConfig) GetEnableImdsRestriction() bool

func (*IMDSRestrictionConfig) GetInsertImdsRestrictionRuleToMangleTable added in v0.20241027.0

func (x *IMDSRestrictionConfig) GetInsertImdsRestrictionRuleToMangleTable() bool

func (*IMDSRestrictionConfig) ProtoMessage added in v0.20241027.0

func (*IMDSRestrictionConfig) ProtoMessage()

func (*IMDSRestrictionConfig) ProtoReflect added in v0.20241027.0

func (x *IMDSRestrictionConfig) ProtoReflect() protoreflect.Message

func (*IMDSRestrictionConfig) Reset added in v0.20241027.0

func (x *IMDSRestrictionConfig) Reset()

func (*IMDSRestrictionConfig) String added in v0.20241027.0

func (x *IMDSRestrictionConfig) String() string

type KubeBinaryConfig

type KubeBinaryConfig struct {

	// default kube binary url
	KubeBinaryUrl string `protobuf:"bytes,1,opt,name=kube_binary_url,json=kubeBinaryUrl,proto3" json:"kube_binary_url,omitempty"`
	// user's custom kube binary url
	CustomKubeBinaryUrl string `protobuf:"bytes,2,opt,name=custom_kube_binary_url,json=customKubeBinaryUrl,proto3" json:"custom_kube_binary_url,omitempty"`
	// privately cached kube binary url
	PrivateKubeBinaryUrl string `protobuf:"bytes,3,opt,name=private_kube_binary_url,json=privateKubeBinaryUrl,proto3" json:"private_kube_binary_url,omitempty"`
	// full path to the "pause" image. Used for --pod-infra-container-image.
	PodInfraContainerImageUrl string `` /* 142-byte string literal not displayed */
	// Full path to the Linux credential provider (tar.gz) to use.
	LinuxCredentialProviderUrl string `` /* 143-byte string literal not displayed */
	// contains filtered or unexported fields
}

Kube Binary Config

func (*KubeBinaryConfig) Descriptor deprecated

func (*KubeBinaryConfig) Descriptor() ([]byte, []int)

Deprecated: Use KubeBinaryConfig.ProtoReflect.Descriptor instead.

func (*KubeBinaryConfig) GetCustomKubeBinaryUrl

func (x *KubeBinaryConfig) GetCustomKubeBinaryUrl() string

func (*KubeBinaryConfig) GetKubeBinaryUrl

func (x *KubeBinaryConfig) GetKubeBinaryUrl() string

func (*KubeBinaryConfig) GetLinuxCredentialProviderUrl

func (x *KubeBinaryConfig) GetLinuxCredentialProviderUrl() string

func (*KubeBinaryConfig) GetPodInfraContainerImageUrl

func (x *KubeBinaryConfig) GetPodInfraContainerImageUrl() string

func (*KubeBinaryConfig) GetPrivateKubeBinaryUrl

func (x *KubeBinaryConfig) GetPrivateKubeBinaryUrl() string

func (*KubeBinaryConfig) ProtoMessage

func (*KubeBinaryConfig) ProtoMessage()

func (*KubeBinaryConfig) ProtoReflect

func (x *KubeBinaryConfig) ProtoReflect() protoreflect.Message

func (*KubeBinaryConfig) Reset

func (x *KubeBinaryConfig) Reset()

func (*KubeBinaryConfig) String

func (x *KubeBinaryConfig) String() string

type KubeletConfig

type KubeletConfig struct {

	// A list of taints to apply to the node.
	Taints []*Taint `protobuf:"bytes,1,rep,name=taints,proto3" json:"taints,omitempty"`
	// A map of kubelet flags to their values.
	KubeletFlags map[string]string `` /* 185-byte string literal not displayed */
	// A map of node labels to their values.
	KubeletNodeLabels map[string]string `` /* 202-byte string literal not displayed */
	// A list of taints to apply to the node at startup.
	StartupTaints []*Taint `protobuf:"bytes,4,rep,name=startup_taints,json=startupTaints,proto3" json:"startup_taints,omitempty"`
	// The type of disk to use for the kubelet.
	KubeletDiskType KubeletDisk `` /* 140-byte string literal not displayed */
	// Whether kubelet config should be enabled.
	EnableKubeletConfigFile bool `` /* 135-byte string literal not displayed */
	// Base64 encoded content of the kubelet config file.
	KubeletConfigFileContent string `` /* 137-byte string literal not displayed */
	// Kubelet client private key
	KubeletClientKey string `protobuf:"bytes,8,opt,name=kubelet_client_key,json=kubeletClientKey,proto3" json:"kubelet_client_key,omitempty"`
	// The content of the kubelet client certificate file.
	KubeletClientCertContent string `` /* 137-byte string literal not displayed */
	// The path used to mount docker images, emptyDir volumes, and kubelet data.
	ContainerDataDir string `protobuf:"bytes,10,opt,name=container_data_dir,json=containerDataDir,proto3" json:"container_data_dir,omitempty"`
	// contains filtered or unexported fields
}

func (*KubeletConfig) Descriptor deprecated

func (*KubeletConfig) Descriptor() ([]byte, []int)

Deprecated: Use KubeletConfig.ProtoReflect.Descriptor instead.

func (*KubeletConfig) GetContainerDataDir

func (x *KubeletConfig) GetContainerDataDir() string

func (*KubeletConfig) GetEnableKubeletConfigFile

func (x *KubeletConfig) GetEnableKubeletConfigFile() bool

func (*KubeletConfig) GetKubeletClientCertContent

func (x *KubeletConfig) GetKubeletClientCertContent() string

func (*KubeletConfig) GetKubeletClientKey

func (x *KubeletConfig) GetKubeletClientKey() string

func (*KubeletConfig) GetKubeletConfigFileContent

func (x *KubeletConfig) GetKubeletConfigFileContent() string

func (*KubeletConfig) GetKubeletDiskType

func (x *KubeletConfig) GetKubeletDiskType() KubeletDisk

func (*KubeletConfig) GetKubeletFlags

func (x *KubeletConfig) GetKubeletFlags() map[string]string

func (*KubeletConfig) GetKubeletNodeLabels

func (x *KubeletConfig) GetKubeletNodeLabels() map[string]string

func (*KubeletConfig) GetStartupTaints

func (x *KubeletConfig) GetStartupTaints() []*Taint

func (*KubeletConfig) GetTaints

func (x *KubeletConfig) GetTaints() []*Taint

func (*KubeletConfig) ProtoMessage

func (*KubeletConfig) ProtoMessage()

func (*KubeletConfig) ProtoReflect

func (x *KubeletConfig) ProtoReflect() protoreflect.Message

func (*KubeletConfig) Reset

func (x *KubeletConfig) Reset()

func (*KubeletConfig) String

func (x *KubeletConfig) String() string

type KubeletDisk

type KubeletDisk int32
const (
	KubeletDisk_KD_UNSPECIFIED KubeletDisk = 0
	KubeletDisk_OS_DISK        KubeletDisk = 1
	KubeletDisk_TEMP_DISK      KubeletDisk = 2
)

func (KubeletDisk) Descriptor

func (KubeletDisk) Enum

func (x KubeletDisk) Enum() *KubeletDisk

func (KubeletDisk) EnumDescriptor deprecated

func (KubeletDisk) EnumDescriptor() ([]byte, []int)

Deprecated: Use KubeletDisk.Descriptor instead.

func (KubeletDisk) Number

func (x KubeletDisk) Number() protoreflect.EnumNumber

func (KubeletDisk) String

func (x KubeletDisk) String() string

func (KubeletDisk) Type

type LoadBalancerConfig

type LoadBalancerConfig struct {

	// Load balancer sku, default to basic
	LoadBalancerSku LoadBalancerConfig_LoadBalancerSku `` /* 163-byte string literal not displayed */
	// Specify if master node should be excluded from standard load balancer, default to true
	ExcludeMasterFromStandardLoadBalancer *bool `` /* 187-byte string literal not displayed */
	// Maximum number of load balancer rules, default to 148
	MaxLoadBalancerRuleCount *int32 `` /* 146-byte string literal not displayed */
	// Disable outbound SNAT (Source Network Address Translation) for load balancer, default to false
	DisableOutboundSnat bool `protobuf:"varint,4,opt,name=disable_outbound_snat,json=disableOutboundSnat,proto3" json:"disable_outbound_snat,omitempty"`
	// contains filtered or unexported fields
}

func (*LoadBalancerConfig) Descriptor deprecated

func (*LoadBalancerConfig) Descriptor() ([]byte, []int)

Deprecated: Use LoadBalancerConfig.ProtoReflect.Descriptor instead.

func (*LoadBalancerConfig) GetDisableOutboundSnat

func (x *LoadBalancerConfig) GetDisableOutboundSnat() bool

func (*LoadBalancerConfig) GetExcludeMasterFromStandardLoadBalancer

func (x *LoadBalancerConfig) GetExcludeMasterFromStandardLoadBalancer() bool

func (*LoadBalancerConfig) GetLoadBalancerSku

func (*LoadBalancerConfig) GetMaxLoadBalancerRuleCount

func (x *LoadBalancerConfig) GetMaxLoadBalancerRuleCount() int32

func (*LoadBalancerConfig) ProtoMessage

func (*LoadBalancerConfig) ProtoMessage()

func (*LoadBalancerConfig) ProtoReflect

func (x *LoadBalancerConfig) ProtoReflect() protoreflect.Message

func (*LoadBalancerConfig) Reset

func (x *LoadBalancerConfig) Reset()

func (*LoadBalancerConfig) String

func (x *LoadBalancerConfig) String() string

type LoadBalancerConfig_LoadBalancerSku

type LoadBalancerConfig_LoadBalancerSku int32
const (
	LoadBalancerConfig_UNSPECIFIED LoadBalancerConfig_LoadBalancerSku = 0
	LoadBalancerConfig_BASIC       LoadBalancerConfig_LoadBalancerSku = 1
	LoadBalancerConfig_STANDARD    LoadBalancerConfig_LoadBalancerSku = 2
)

func GetLoadBalancerSKU

func GetLoadBalancerSKU(sku string) LoadBalancerConfig_LoadBalancerSku

GetLoadBalancerSKI returns the LoadBalancerSku enum based on the input string.

func (LoadBalancerConfig_LoadBalancerSku) Descriptor

func (LoadBalancerConfig_LoadBalancerSku) Enum

func (LoadBalancerConfig_LoadBalancerSku) EnumDescriptor deprecated

func (LoadBalancerConfig_LoadBalancerSku) EnumDescriptor() ([]byte, []int)

Deprecated: Use LoadBalancerConfig_LoadBalancerSku.Descriptor instead.

func (LoadBalancerConfig_LoadBalancerSku) Number

func (LoadBalancerConfig_LoadBalancerSku) String

func (LoadBalancerConfig_LoadBalancerSku) Type

type NBContractBuilder

type NBContractBuilder struct {
	// contains filtered or unexported fields
}

NBContractBuilder is a helper struct to build the NBContract (Node Bootstrap Contract). It provides methods to apply configuration, get the NBContract object, and validate the contract, etc.

func NewNBContractBuilder

func NewNBContractBuilder() *NBContractBuilder

NewNBContractBuilder creates a new instance of NBContractBuilder and ensures all objects in nodeBootstrapConfig are non-nil.

func (*NBContractBuilder) ApplyConfiguration

func (nBCB *NBContractBuilder) ApplyConfiguration(config *Configuration)

ApplyConfiguration Applies the configuration to the nodeBootstrapConfig object.

func (*NBContractBuilder) GetNodeBootstrapConfig

func (nBCB *NBContractBuilder) GetNodeBootstrapConfig() *Configuration

GetNodeBootstrapConfig gets the nodeBootstrapConfig object.

func (*NBContractBuilder) ValidateNBContract

func (nBCB *NBContractBuilder) ValidateNBContract() error

ValidateNBContract validates the NBContract. It returns an error if the contract is invalid. This function should be called after applying all configuration and before sending to downstream component.

type NetworkConfig

type NetworkConfig struct {

	// Network plugin to be used by the cluster. Options are NONE, AZURE, KUBENET.
	NetworkPlugin NetworkPlugin `` /* 134-byte string literal not displayed */
	// Network policy to be used by the cluster.
	// This is still needed to compute ENSURE_NO_DUPE_PROMISCUOUS_BRIDGE.
	// Other than that, it is not used by others. See the discussions here https://github.com/Azure/AgentBaker/pull/4241#discussion_r1554283228
	NetworkPolicy NetworkPolicy `` /* 134-byte string literal not displayed */
	// URL to the vnet cni plugins tarball.
	VnetCniPluginsUrl string `protobuf:"bytes,3,opt,name=vnet_cni_plugins_url,json=vnetCniPluginsUrl,proto3" json:"vnet_cni_plugins_url,omitempty"`
	// URL to the cni plugins tarball.
	CniPluginsUrl string `protobuf:"bytes,4,opt,name=cni_plugins_url,json=cniPluginsUrl,proto3" json:"cni_plugins_url,omitempty"`
	// contains filtered or unexported fields
}

func (*NetworkConfig) Descriptor deprecated

func (*NetworkConfig) Descriptor() ([]byte, []int)

Deprecated: Use NetworkConfig.ProtoReflect.Descriptor instead.

func (*NetworkConfig) GetCniPluginsUrl

func (x *NetworkConfig) GetCniPluginsUrl() string

func (*NetworkConfig) GetNetworkPlugin

func (x *NetworkConfig) GetNetworkPlugin() NetworkPlugin

func (*NetworkConfig) GetNetworkPolicy

func (x *NetworkConfig) GetNetworkPolicy() NetworkPolicy

func (*NetworkConfig) GetVnetCniPluginsUrl

func (x *NetworkConfig) GetVnetCniPluginsUrl() string

func (*NetworkConfig) ProtoMessage

func (*NetworkConfig) ProtoMessage()

func (*NetworkConfig) ProtoReflect

func (x *NetworkConfig) ProtoReflect() protoreflect.Message

func (*NetworkConfig) Reset

func (x *NetworkConfig) Reset()

func (*NetworkConfig) String

func (x *NetworkConfig) String() string

type NetworkPlugin

type NetworkPlugin int32
const (
	NetworkPlugin_NP_UNSPECIFIED NetworkPlugin = 0
	NetworkPlugin_NP_NONE        NetworkPlugin = 1
	NetworkPlugin_NP_AZURE       NetworkPlugin = 2
	NetworkPlugin_NP_KUBENET     NetworkPlugin = 3
)

func GetNetworkPluginType

func GetNetworkPluginType(networkPlugin string) NetworkPlugin

GetNetworkPluginType returns the NetworkPluginType enum based on the input string.

func (NetworkPlugin) Descriptor

func (NetworkPlugin) Enum

func (x NetworkPlugin) Enum() *NetworkPlugin

func (NetworkPlugin) EnumDescriptor deprecated

func (NetworkPlugin) EnumDescriptor() ([]byte, []int)

Deprecated: Use NetworkPlugin.Descriptor instead.

func (NetworkPlugin) Number

func (NetworkPlugin) String

func (x NetworkPlugin) String() string

func (NetworkPlugin) Type

type NetworkPolicy

type NetworkPolicy int32
const (
	NetworkPolicy_NPO_UNSPECIFIED NetworkPolicy = 0
	NetworkPolicy_NPO_NONE        NetworkPolicy = 1
	NetworkPolicy_NPO_AZURE       NetworkPolicy = 2
	NetworkPolicy_NPO_CALICO      NetworkPolicy = 3
)

func GetNetworkPolicyType

func GetNetworkPolicyType(networkPolicy string) NetworkPolicy

GetNetworkPolicyType returns the NetworkPolicyType enum based on the input string.

func (NetworkPolicy) Descriptor

func (NetworkPolicy) Enum

func (x NetworkPolicy) Enum() *NetworkPolicy

func (NetworkPolicy) EnumDescriptor deprecated

func (NetworkPolicy) EnumDescriptor() ([]byte, []int)

Deprecated: Use NetworkPolicy.Descriptor instead.

func (NetworkPolicy) Number

func (NetworkPolicy) String

func (x NetworkPolicy) String() string

func (NetworkPolicy) Type

type RuncConfig

type RuncConfig struct {

	// The version of runc to use.
	RuncVersion string `protobuf:"bytes,1,opt,name=runc_version,json=runcVersion,proto3" json:"runc_version,omitempty"`
	// The URL to download the runc package from.
	RuncPackageUrl string `protobuf:"bytes,2,opt,name=runc_package_url,json=runcPackageUrl,proto3" json:"runc_package_url,omitempty"`
	// contains filtered or unexported fields
}

func (*RuncConfig) Descriptor deprecated

func (*RuncConfig) Descriptor() ([]byte, []int)

Deprecated: Use RuncConfig.ProtoReflect.Descriptor instead.

func (*RuncConfig) GetRuncPackageUrl

func (x *RuncConfig) GetRuncPackageUrl() string

func (*RuncConfig) GetRuncVersion

func (x *RuncConfig) GetRuncVersion() string

func (*RuncConfig) ProtoMessage

func (*RuncConfig) ProtoMessage()

func (*RuncConfig) ProtoReflect

func (x *RuncConfig) ProtoReflect() protoreflect.Message

func (*RuncConfig) Reset

func (x *RuncConfig) Reset()

func (*RuncConfig) String

func (x *RuncConfig) String() string

type SysctlConfig

type SysctlConfig struct {

	// using optional here to allow detecting if the field is set or not (explicit presence in proto3)
	NetCoreSomaxconn               *int32  `protobuf:"varint,1,opt,name=NetCoreSomaxconn,proto3,oneof" json:"NetCoreSomaxconn,omitempty"`
	NetCoreNetdevMaxBacklog        *int32  `protobuf:"varint,2,opt,name=NetCoreNetdevMaxBacklog,proto3,oneof" json:"NetCoreNetdevMaxBacklog,omitempty"`
	NetCoreRmemDefault             *int32  `protobuf:"varint,3,opt,name=NetCoreRmemDefault,proto3,oneof" json:"NetCoreRmemDefault,omitempty"`
	NetCoreRmemMax                 *int32  `protobuf:"varint,4,opt,name=NetCoreRmemMax,proto3,oneof" json:"NetCoreRmemMax,omitempty"`
	NetCoreWmemDefault             *int32  `protobuf:"varint,5,opt,name=NetCoreWmemDefault,proto3,oneof" json:"NetCoreWmemDefault,omitempty"`
	NetCoreWmemMax                 *int32  `protobuf:"varint,6,opt,name=NetCoreWmemMax,proto3,oneof" json:"NetCoreWmemMax,omitempty"`
	NetCoreOptmemMax               *int32  `protobuf:"varint,7,opt,name=NetCoreOptmemMax,proto3,oneof" json:"NetCoreOptmemMax,omitempty"`
	NetIpv4TcpMaxSynBacklog        *int32  `protobuf:"varint,8,opt,name=NetIpv4TcpMaxSynBacklog,proto3,oneof" json:"NetIpv4TcpMaxSynBacklog,omitempty"`
	NetIpv4TcpMaxTwBuckets         *int32  `protobuf:"varint,9,opt,name=NetIpv4TcpMaxTwBuckets,proto3,oneof" json:"NetIpv4TcpMaxTwBuckets,omitempty"`
	NetIpv4TcpFinTimeout           *int32  `protobuf:"varint,10,opt,name=NetIpv4TcpFinTimeout,proto3,oneof" json:"NetIpv4TcpFinTimeout,omitempty"`
	NetIpv4TcpKeepaliveTime        *int32  `protobuf:"varint,11,opt,name=NetIpv4TcpKeepaliveTime,proto3,oneof" json:"NetIpv4TcpKeepaliveTime,omitempty"`
	NetIpv4TcpKeepaliveProbes      *int32  `protobuf:"varint,12,opt,name=NetIpv4TcpKeepaliveProbes,proto3,oneof" json:"NetIpv4TcpKeepaliveProbes,omitempty"`
	NetIpv4TcpkeepaliveIntvl       *int32  `protobuf:"varint,13,opt,name=NetIpv4TcpkeepaliveIntvl,proto3,oneof" json:"NetIpv4TcpkeepaliveIntvl,omitempty"`
	NetIpv4TcpTwReuse              *bool   `protobuf:"varint,14,opt,name=NetIpv4TcpTwReuse,proto3,oneof" json:"NetIpv4TcpTwReuse,omitempty"`
	NetIpv4IpLocalPortRange        *string `protobuf:"bytes,15,opt,name=NetIpv4IpLocalPortRange,proto3,oneof" json:"NetIpv4IpLocalPortRange,omitempty"`
	NetIpv4NeighDefaultGcThresh1   *int32  `protobuf:"varint,16,opt,name=NetIpv4NeighDefaultGcThresh1,proto3,oneof" json:"NetIpv4NeighDefaultGcThresh1,omitempty"`
	NetIpv4NeighDefaultGcThresh2   *int32  `protobuf:"varint,17,opt,name=NetIpv4NeighDefaultGcThresh2,proto3,oneof" json:"NetIpv4NeighDefaultGcThresh2,omitempty"`
	NetIpv4NeighDefaultGcThresh3   *int32  `protobuf:"varint,18,opt,name=NetIpv4NeighDefaultGcThresh3,proto3,oneof" json:"NetIpv4NeighDefaultGcThresh3,omitempty"`
	NetNetfilterNfConntrackMax     *int32  `protobuf:"varint,19,opt,name=NetNetfilterNfConntrackMax,proto3,oneof" json:"NetNetfilterNfConntrackMax,omitempty"`
	NetNetfilterNfConntrackBuckets *int32  `protobuf:"varint,20,opt,name=NetNetfilterNfConntrackBuckets,proto3,oneof" json:"NetNetfilterNfConntrackBuckets,omitempty"`
	FsInotifyMaxUserWatches        *int32  `protobuf:"varint,21,opt,name=FsInotifyMaxUserWatches,proto3,oneof" json:"FsInotifyMaxUserWatches,omitempty"`
	FsFileMax                      *int32  `protobuf:"varint,22,opt,name=FsFileMax,proto3,oneof" json:"FsFileMax,omitempty"`
	FsAioMaxNr                     *int32  `protobuf:"varint,23,opt,name=FsAioMaxNr,proto3,oneof" json:"FsAioMaxNr,omitempty"`
	FsNrOpen                       *int32  `protobuf:"varint,24,opt,name=FsNrOpen,proto3,oneof" json:"FsNrOpen,omitempty"`
	KernelThreadsMax               *int32  `protobuf:"varint,25,opt,name=KernelThreadsMax,proto3,oneof" json:"KernelThreadsMax,omitempty"`
	VMMaxMapCount                  *int32  `protobuf:"varint,26,opt,name=VMMaxMapCount,proto3,oneof" json:"VMMaxMapCount,omitempty"`
	VMSwappiness                   *int32  `protobuf:"varint,27,opt,name=VMSwappiness,proto3,oneof" json:"VMSwappiness,omitempty"`
	VMVfsCachePressure             *int32  `protobuf:"varint,28,opt,name=VMVfsCachePressure,proto3,oneof" json:"VMVfsCachePressure,omitempty"`
	// contains filtered or unexported fields
}

func (*SysctlConfig) Descriptor deprecated

func (*SysctlConfig) Descriptor() ([]byte, []int)

Deprecated: Use SysctlConfig.ProtoReflect.Descriptor instead.

func (*SysctlConfig) GetFsAioMaxNr

func (x *SysctlConfig) GetFsAioMaxNr() int32

func (*SysctlConfig) GetFsFileMax

func (x *SysctlConfig) GetFsFileMax() int32

func (*SysctlConfig) GetFsInotifyMaxUserWatches

func (x *SysctlConfig) GetFsInotifyMaxUserWatches() int32

func (*SysctlConfig) GetFsNrOpen

func (x *SysctlConfig) GetFsNrOpen() int32

func (*SysctlConfig) GetKernelThreadsMax

func (x *SysctlConfig) GetKernelThreadsMax() int32

func (*SysctlConfig) GetNetCoreNetdevMaxBacklog

func (x *SysctlConfig) GetNetCoreNetdevMaxBacklog() int32

func (*SysctlConfig) GetNetCoreOptmemMax

func (x *SysctlConfig) GetNetCoreOptmemMax() int32

func (*SysctlConfig) GetNetCoreRmemDefault

func (x *SysctlConfig) GetNetCoreRmemDefault() int32

func (*SysctlConfig) GetNetCoreRmemMax

func (x *SysctlConfig) GetNetCoreRmemMax() int32

func (*SysctlConfig) GetNetCoreSomaxconn

func (x *SysctlConfig) GetNetCoreSomaxconn() int32

func (*SysctlConfig) GetNetCoreWmemDefault

func (x *SysctlConfig) GetNetCoreWmemDefault() int32

func (*SysctlConfig) GetNetCoreWmemMax

func (x *SysctlConfig) GetNetCoreWmemMax() int32

func (*SysctlConfig) GetNetIpv4IpLocalPortRange

func (x *SysctlConfig) GetNetIpv4IpLocalPortRange() string

func (*SysctlConfig) GetNetIpv4NeighDefaultGcThresh1

func (x *SysctlConfig) GetNetIpv4NeighDefaultGcThresh1() int32

func (*SysctlConfig) GetNetIpv4NeighDefaultGcThresh2

func (x *SysctlConfig) GetNetIpv4NeighDefaultGcThresh2() int32

func (*SysctlConfig) GetNetIpv4NeighDefaultGcThresh3

func (x *SysctlConfig) GetNetIpv4NeighDefaultGcThresh3() int32

func (*SysctlConfig) GetNetIpv4TcpFinTimeout

func (x *SysctlConfig) GetNetIpv4TcpFinTimeout() int32

func (*SysctlConfig) GetNetIpv4TcpKeepaliveProbes

func (x *SysctlConfig) GetNetIpv4TcpKeepaliveProbes() int32

func (*SysctlConfig) GetNetIpv4TcpKeepaliveTime

func (x *SysctlConfig) GetNetIpv4TcpKeepaliveTime() int32

func (*SysctlConfig) GetNetIpv4TcpMaxSynBacklog

func (x *SysctlConfig) GetNetIpv4TcpMaxSynBacklog() int32

func (*SysctlConfig) GetNetIpv4TcpMaxTwBuckets

func (x *SysctlConfig) GetNetIpv4TcpMaxTwBuckets() int32

func (*SysctlConfig) GetNetIpv4TcpTwReuse

func (x *SysctlConfig) GetNetIpv4TcpTwReuse() bool

func (*SysctlConfig) GetNetIpv4TcpkeepaliveIntvl

func (x *SysctlConfig) GetNetIpv4TcpkeepaliveIntvl() int32

func (*SysctlConfig) GetNetNetfilterNfConntrackBuckets

func (x *SysctlConfig) GetNetNetfilterNfConntrackBuckets() int32

func (*SysctlConfig) GetNetNetfilterNfConntrackMax

func (x *SysctlConfig) GetNetNetfilterNfConntrackMax() int32

func (*SysctlConfig) GetVMMaxMapCount

func (x *SysctlConfig) GetVMMaxMapCount() int32

func (*SysctlConfig) GetVMSwappiness

func (x *SysctlConfig) GetVMSwappiness() int32

func (*SysctlConfig) GetVMVfsCachePressure

func (x *SysctlConfig) GetVMVfsCachePressure() int32

func (*SysctlConfig) ProtoMessage

func (*SysctlConfig) ProtoMessage()

func (*SysctlConfig) ProtoReflect

func (x *SysctlConfig) ProtoReflect() protoreflect.Message

func (*SysctlConfig) Reset

func (x *SysctlConfig) Reset()

func (*SysctlConfig) String

func (x *SysctlConfig) String() string

type TLSBootstrappingConfig

type TLSBootstrappingConfig struct {

	// Enable secure TLS bootstrapping for the node.
	EnableSecureTlsBootstrapping *bool `` /* 156-byte string literal not displayed */
	// Only required until Secure TLS bootstrapping in place. Would use kubelet identity after that.
	TlsBootstrappingToken string `` /* 126-byte string literal not displayed */
	// Only used when secure TLS bootstrapping is enabled. This is the appserver appid that the node will use to bootstrap.
	CustomSecureTlsBootstrappingAppserverAppid string `` /* 195-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*TLSBootstrappingConfig) Descriptor deprecated

func (*TLSBootstrappingConfig) Descriptor() ([]byte, []int)

Deprecated: Use TLSBootstrappingConfig.ProtoReflect.Descriptor instead.

func (*TLSBootstrappingConfig) GetCustomSecureTlsBootstrappingAppserverAppid

func (x *TLSBootstrappingConfig) GetCustomSecureTlsBootstrappingAppserverAppid() string

func (*TLSBootstrappingConfig) GetEnableSecureTlsBootstrapping

func (x *TLSBootstrappingConfig) GetEnableSecureTlsBootstrapping() bool

func (*TLSBootstrappingConfig) GetTlsBootstrappingToken

func (x *TLSBootstrappingConfig) GetTlsBootstrappingToken() string

func (*TLSBootstrappingConfig) ProtoMessage

func (*TLSBootstrappingConfig) ProtoMessage()

func (*TLSBootstrappingConfig) ProtoReflect

func (x *TLSBootstrappingConfig) ProtoReflect() protoreflect.Message

func (*TLSBootstrappingConfig) Reset

func (x *TLSBootstrappingConfig) Reset()

func (*TLSBootstrappingConfig) String

func (x *TLSBootstrappingConfig) String() string

type Taint

type Taint struct {
	Key    string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Effect string `protobuf:"bytes,2,opt,name=effect,proto3" json:"effect,omitempty"`
	// contains filtered or unexported fields
}

func (*Taint) Descriptor deprecated

func (*Taint) Descriptor() ([]byte, []int)

Deprecated: Use Taint.ProtoReflect.Descriptor instead.

func (*Taint) GetEffect

func (x *Taint) GetEffect() string

func (*Taint) GetKey

func (x *Taint) GetKey() string

func (*Taint) ProtoMessage

func (*Taint) ProtoMessage()

func (*Taint) ProtoReflect

func (x *Taint) ProtoReflect() protoreflect.Message

func (*Taint) Reset

func (x *Taint) Reset()

func (*Taint) String

func (x *Taint) String() string

type TeleportConfig

type TeleportConfig struct {

	// The status of the teleportd plugin. If true, the plugin is enabled.
	Status bool `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
	// The URL to download the teleportd plugin.
	TeleportdPluginDownloadUrl string `` /* 143-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*TeleportConfig) Descriptor deprecated

func (*TeleportConfig) Descriptor() ([]byte, []int)

Deprecated: Use TeleportConfig.ProtoReflect.Descriptor instead.

func (*TeleportConfig) GetStatus

func (x *TeleportConfig) GetStatus() bool

func (*TeleportConfig) GetTeleportdPluginDownloadUrl

func (x *TeleportConfig) GetTeleportdPluginDownloadUrl() string

func (*TeleportConfig) ProtoMessage

func (*TeleportConfig) ProtoMessage()

func (*TeleportConfig) ProtoReflect

func (x *TeleportConfig) ProtoReflect() protoreflect.Message

func (*TeleportConfig) Reset

func (x *TeleportConfig) Reset()

func (*TeleportConfig) String

func (x *TeleportConfig) String() string

type UlimitConfig

type UlimitConfig struct {

	// using optional here to allow detecting if the field is set or not (explicit presence in proto3)
	NoFile          *string `protobuf:"bytes,1,opt,name=NoFile,proto3,oneof" json:"NoFile,omitempty"`
	MaxLockedMemory *string `protobuf:"bytes,2,opt,name=MaxLockedMemory,proto3,oneof" json:"MaxLockedMemory,omitempty"`
	// contains filtered or unexported fields
}

func (*UlimitConfig) Descriptor deprecated

func (*UlimitConfig) Descriptor() ([]byte, []int)

Deprecated: Use UlimitConfig.ProtoReflect.Descriptor instead.

func (*UlimitConfig) GetMaxLockedMemory

func (x *UlimitConfig) GetMaxLockedMemory() string

func (*UlimitConfig) GetNoFile

func (x *UlimitConfig) GetNoFile() string

func (*UlimitConfig) ProtoMessage

func (*UlimitConfig) ProtoMessage()

func (*UlimitConfig) ProtoReflect

func (x *UlimitConfig) ProtoReflect() protoreflect.Message

func (*UlimitConfig) Reset

func (x *UlimitConfig) Reset()

func (*UlimitConfig) String

func (x *UlimitConfig) String() string

type WorkloadRuntime

type WorkloadRuntime int32
const (
	WorkloadRuntime_WR_UNSPECIFIED WorkloadRuntime = 0
	WorkloadRuntime_OCI_CONTAINER  WorkloadRuntime = 1
	WorkloadRuntime_WASM_WASI      WorkloadRuntime = 2
)

func (WorkloadRuntime) Descriptor

func (WorkloadRuntime) Enum

func (x WorkloadRuntime) Enum() *WorkloadRuntime

func (WorkloadRuntime) EnumDescriptor deprecated

func (WorkloadRuntime) EnumDescriptor() ([]byte, []int)

Deprecated: Use WorkloadRuntime.Descriptor instead.

func (WorkloadRuntime) Number

func (WorkloadRuntime) String

func (x WorkloadRuntime) String() string

func (WorkloadRuntime) Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL