From 5e26a68c9eaa0ddaf16b50c31f33364192a33cc2 Mon Sep 17 00:00:00 2001 From: Tim Wright Date: Wed, 20 Nov 2024 10:49:56 +1300 Subject: [PATCH 1/2] feat: change from a bool value for bootstrapping auth method to an enum. (#5201) --- aks-node-controller/parser/helper.go | 12 +- aks-node-controller/parser/parser.go | 8 +- .../parser/testdata/test_aksnodeconfig.json | 4 +- .../test_aksnodeconfig_fields_missing.json | 4 +- .../test_aksnodeconfig_fields_unexpected.json | 4 +- .../v1/bootstrapping_config.pb.go | 355 +++++++++++++++ .../pkg/gen/aksnodeconfig/v1/config.pb.go | 431 +++++++++--------- .../v1/tls_bootstrapping_config.pb.go | 179 -------- aks-node-controller/proto/README.md | 82 ++-- .../v1/bootstrapping_config.proto | 47 ++ .../proto/aksnodeconfig/v1/config.proto | 4 +- .../v1/tls_bootstrapping_config.proto | 13 - e2e/template.go | 4 +- e2e/validation.go | 7 +- pkg/agent/datamodel/helper_test.go | 2 +- pkg/agent/datamodel/versions_test.go | 52 +-- 16 files changed, 711 insertions(+), 497 deletions(-) create mode 100644 aks-node-controller/pkg/gen/aksnodeconfig/v1/bootstrapping_config.pb.go delete mode 100644 aks-node-controller/pkg/gen/aksnodeconfig/v1/tls_bootstrapping_config.pb.go create mode 100644 aks-node-controller/proto/aksnodeconfig/v1/bootstrapping_config.proto delete mode 100644 aks-node-controller/proto/aksnodeconfig/v1/tls_bootstrapping_config.proto diff --git a/aks-node-controller/parser/helper.go b/aks-node-controller/parser/helper.go index 9b5916bc50c..bfaefff7e2f 100644 --- a/aks-node-controller/parser/helper.go +++ b/aks-node-controller/parser/helper.go @@ -173,21 +173,21 @@ func getCustomCACertsStatus(customCACerts []string) bool { return len(customCACerts) > 0 } -func getEnableTLSBootstrap(bootstrapConfig *aksnodeconfigv1.TlsBootstrappingConfig) bool { +func getEnableTLSBootstrap(bootstrapConfig *aksnodeconfigv1.BootstrappingConfig) bool { return bootstrapConfig.GetTlsBootstrappingToken() != "" } -func getEnableSecureTLSBootstrap(bootstrapConfig *aksnodeconfigv1.TlsBootstrappingConfig) bool { +func getEnableSecureTLSBootstrap(bootstrapConfig *aksnodeconfigv1.BootstrappingConfig) bool { // TODO: Change logic to default to false once Secure TLS Bootstrapping is complete - return bootstrapConfig.GetEnableSecureTlsBootstrapping() + return bootstrapConfig.GetBootstrappingAuthMethod() == aksnodeconfigv1.BootstrappingAuthMethod_BOOTSTRAPPING_AUTH_METHOD_SECURE_TLS_BOOTSTRAPPING } -func getTLSBootstrapToken(bootstrapConfig *aksnodeconfigv1.TlsBootstrappingConfig) string { +func getTLSBootstrapToken(bootstrapConfig *aksnodeconfigv1.BootstrappingConfig) string { return bootstrapConfig.GetTlsBootstrappingToken() } -func getCustomSecureTLSBootstrapAADServerAppID(bootstrapConfig *aksnodeconfigv1.TlsBootstrappingConfig) string { - return bootstrapConfig.GetCustomSecureTlsBootstrappingAppserverAppid() +func getCustomSecureTLSBootstrapAADServerAppID(bootstrapConfig *aksnodeconfigv1.BootstrappingConfig) string { + return bootstrapConfig.GetCustomAadResource() } func getIsKrustlet(wr aksnodeconfigv1.WorkloadRuntime) bool { diff --git a/aks-node-controller/parser/parser.go b/aks-node-controller/parser/parser.go index f8100ba4d17..69e7c1a0ff8 100644 --- a/aks-node-controller/parser/parser.go +++ b/aks-node-controller/parser/parser.go @@ -127,9 +127,9 @@ func getCSEEnv(config *aksnodeconfigv1.Configuration) map[string]string { "HTTPS_PROXY_URLS": config.GetHttpProxyConfig().GetHttpsProxy(), "NO_PROXY_URLS": getStringifiedStringArray(config.GetHttpProxyConfig().GetNoProxyEntries(), ","), "PROXY_VARS": getProxyVariables(config.GetHttpProxyConfig()), - "ENABLE_TLS_BOOTSTRAPPING": fmt.Sprintf("%v", getEnableTLSBootstrap(config.GetTlsBootstrappingConfig())), - "ENABLE_SECURE_TLS_BOOTSTRAPPING": fmt.Sprintf("%v", getEnableSecureTLSBootstrap(config.GetTlsBootstrappingConfig())), - "CUSTOM_SECURE_TLS_BOOTSTRAP_AAD_SERVER_APP_ID": getCustomSecureTLSBootstrapAADServerAppID(config.GetTlsBootstrappingConfig()), + "ENABLE_TLS_BOOTSTRAPPING": fmt.Sprintf("%v", getEnableTLSBootstrap(config.GetBootstrappingConfig())), + "ENABLE_SECURE_TLS_BOOTSTRAPPING": fmt.Sprintf("%v", getEnableSecureTLSBootstrap(config.GetBootstrappingConfig())), + "CUSTOM_SECURE_TLS_BOOTSTRAP_AAD_SERVER_APP_ID": getCustomSecureTLSBootstrapAADServerAppID(config.GetBootstrappingConfig()), "DHCPV6_SERVICE_FILEPATH": getDHCPV6ServiceFilepath(), "DHCPV6_CONFIG_FILEPATH": getDHCPV6ConfigFilepath(), "THP_ENABLED": config.GetCustomLinuxOsConfig().GetTransparentHugepageSupport(), @@ -149,7 +149,7 @@ func getCSEEnv(config *aksnodeconfigv1.Configuration) map[string]string { "MESSAGE_OF_THE_DAY": config.GetMessageOfTheDay(), "HAS_KUBELET_DISK_TYPE": fmt.Sprintf("%v", getHasKubeletDiskType(config.GetKubeletConfig())), "NEEDS_CGROUPV2": fmt.Sprintf("%v", config.GetNeedsCgroupv2()), - "TLS_BOOTSTRAP_TOKEN": getTLSBootstrapToken(config.GetTlsBootstrappingConfig()), + "TLS_BOOTSTRAP_TOKEN": getTLSBootstrapToken(config.GetBootstrappingConfig()), "KUBELET_FLAGS": createSortedKeyValuePairs(config.GetKubeletConfig().GetKubeletFlags(), " "), "NETWORK_POLICY": getStringFromNetworkPolicyType(config.GetNetworkConfig().GetNetworkPolicy()), "KUBELET_NODE_LABELS": createSortedKeyValuePairs(config.GetKubeletConfig().GetKubeletNodeLabels(), ","), diff --git a/aks-node-controller/parser/testdata/test_aksnodeconfig.json b/aks-node-controller/parser/testdata/test_aksnodeconfig.json index 41375d4473c..979e0b1515c 100644 --- a/aks-node-controller/parser/testdata/test_aksnodeconfig.json +++ b/aks-node-controller/parser/testdata/test_aksnodeconfig.json @@ -1,7 +1,7 @@ { "version": "v0", - "tls_bootstrapping_config": { - "enable_secure_tls_bootstrapping": false + "bootstrapping_config": { + "bootstrapping_auth_method": "BOOTSTRAPPING_AUTH_METHOD_BOOTSTRAP_TOKEN" }, "cluster_config": { "vm_type": "VM_TYPE_VMSS", diff --git a/aks-node-controller/parser/testdata/test_aksnodeconfig_fields_missing.json b/aks-node-controller/parser/testdata/test_aksnodeconfig_fields_missing.json index c77043ec1b9..a3457202cad 100644 --- a/aks-node-controller/parser/testdata/test_aksnodeconfig_fields_missing.json +++ b/aks-node-controller/parser/testdata/test_aksnodeconfig_fields_missing.json @@ -1,7 +1,7 @@ { "version": "v0", - "tls_bootstrapping_config": { - "enable_secure_tls_bootstrapping": false + "bootstrapping_config": { + "bootstrapping_auth_method": "BOOTSTRAPPING_AUTH_METHOD_BOOTSTRAP_TOKEN" }, "cluster_config": { "vm_type": 2, diff --git a/aks-node-controller/parser/testdata/test_aksnodeconfig_fields_unexpected.json b/aks-node-controller/parser/testdata/test_aksnodeconfig_fields_unexpected.json index c3aabf339bc..e089f0c53f5 100644 --- a/aks-node-controller/parser/testdata/test_aksnodeconfig_fields_unexpected.json +++ b/aks-node-controller/parser/testdata/test_aksnodeconfig_fields_unexpected.json @@ -1,7 +1,7 @@ { "version": "v0", - "tls_bootstrapping_config": { - "enable_secure_tls_bootstrapping": false + "bootstrapping_config": { + "bootstrapping_auth_method": "BOOTSTRAPPING_AUTH_METHOD_BOOTSTRAP_TOKEN" }, "cluster_config": { "vm_type": 2, diff --git a/aks-node-controller/pkg/gen/aksnodeconfig/v1/bootstrapping_config.pb.go b/aks-node-controller/pkg/gen/aksnodeconfig/v1/bootstrapping_config.pb.go new file mode 100644 index 00000000000..a64e2ea6c58 --- /dev/null +++ b/aks-node-controller/pkg/gen/aksnodeconfig/v1/bootstrapping_config.pb.go @@ -0,0 +1,355 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc (unknown) +// source: aksnodeconfig/v1/bootstrapping_config.proto + +package aksnodeconfigv1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type BootstrappingAuthMethod int32 + +const ( + BootstrappingAuthMethod_BOOTSTRAPPING_AUTH_METHOD_UNSPECIFIED BootstrappingAuthMethod = 0 + // This is the default K8s bootstrap authentication method - a time limited bootstrap token. It's stored as a secret + // with a particular type in the API server. + // + //nolint:gosec // this is a const string to use in switch statements, not hardcoded credentials + BootstrappingAuthMethod_BOOTSTRAPPING_AUTH_METHOD_BOOTSTRAP_TOKEN BootstrappingAuthMethod = 1 + // Secure TLS bootstrapping is a process where the node can use signed metadata from the Azure IMDS service to authenticate + // against the api server + BootstrappingAuthMethod_BOOTSTRAPPING_AUTH_METHOD_SECURE_TLS_BOOTSTRAPPING BootstrappingAuthMethod = 2 + // Nodes running outside Azure can use the Azure Arc MSI to authenticate to an API server. This only works when the cluster is + // + // using AAD authentication. + BootstrappingAuthMethod_BOOTSTRAPPING_AUTH_METHOD_ARC_MSI BootstrappingAuthMethod = 3 + // Nodes running inside Azure can use the Azure Arc MSI to authenticate to an API server. This only works when the cluster is + // using AAD authentication. + BootstrappingAuthMethod_BOOTSTRAPPING_AUTH_METHOD_AZURE_MSI BootstrappingAuthMethod = 4 +) + +// Enum value maps for BootstrappingAuthMethod. +var ( + BootstrappingAuthMethod_name = map[int32]string{ + 0: "BOOTSTRAPPING_AUTH_METHOD_UNSPECIFIED", + 1: "BOOTSTRAPPING_AUTH_METHOD_BOOTSTRAP_TOKEN", + 2: "BOOTSTRAPPING_AUTH_METHOD_SECURE_TLS_BOOTSTRAPPING", + 3: "BOOTSTRAPPING_AUTH_METHOD_ARC_MSI", + 4: "BOOTSTRAPPING_AUTH_METHOD_AZURE_MSI", + } + BootstrappingAuthMethod_value = map[string]int32{ + "BOOTSTRAPPING_AUTH_METHOD_UNSPECIFIED": 0, + "BOOTSTRAPPING_AUTH_METHOD_BOOTSTRAP_TOKEN": 1, + "BOOTSTRAPPING_AUTH_METHOD_SECURE_TLS_BOOTSTRAPPING": 2, + "BOOTSTRAPPING_AUTH_METHOD_ARC_MSI": 3, + "BOOTSTRAPPING_AUTH_METHOD_AZURE_MSI": 4, + } +) + +func (x BootstrappingAuthMethod) Enum() *BootstrappingAuthMethod { + p := new(BootstrappingAuthMethod) + *p = x + return p +} + +func (x BootstrappingAuthMethod) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BootstrappingAuthMethod) Descriptor() protoreflect.EnumDescriptor { + return file_aksnodeconfig_v1_bootstrapping_config_proto_enumTypes[0].Descriptor() +} + +func (BootstrappingAuthMethod) Type() protoreflect.EnumType { + return &file_aksnodeconfig_v1_bootstrapping_config_proto_enumTypes[0] +} + +func (x BootstrappingAuthMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BootstrappingAuthMethod.Descriptor instead. +func (BootstrappingAuthMethod) EnumDescriptor() ([]byte, []int) { + return file_aksnodeconfig_v1_bootstrapping_config_proto_rawDescGZIP(), []int{0} +} + +type ClusterJoinMethod int32 + +const ( + ClusterJoinMethod_CLUSTER_JOIN_METHOD_UNSPECIFIED ClusterJoinMethod = 0 + // The default behaviour is for the node to make a certificate signing request (CSR) and then + // use that CSR for ongoing communication. + ClusterJoinMethod_CLUSTER_JOIN_METHOD_GENERATE_CSR ClusterJoinMethod = 1 + // In some cases, the node will use the bootstrapping auth to register itself as a node and for ongoing communications. + ClusterJoinMethod_CLUSTER_JOIN_METHOD_USE_BOOTSTRAPPING_AUTH ClusterJoinMethod = 2 +) + +// Enum value maps for ClusterJoinMethod. +var ( + ClusterJoinMethod_name = map[int32]string{ + 0: "CLUSTER_JOIN_METHOD_UNSPECIFIED", + 1: "CLUSTER_JOIN_METHOD_GENERATE_CSR", + 2: "CLUSTER_JOIN_METHOD_USE_BOOTSTRAPPING_AUTH", + } + ClusterJoinMethod_value = map[string]int32{ + "CLUSTER_JOIN_METHOD_UNSPECIFIED": 0, + "CLUSTER_JOIN_METHOD_GENERATE_CSR": 1, + "CLUSTER_JOIN_METHOD_USE_BOOTSTRAPPING_AUTH": 2, + } +) + +func (x ClusterJoinMethod) Enum() *ClusterJoinMethod { + p := new(ClusterJoinMethod) + *p = x + return p +} + +func (x ClusterJoinMethod) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ClusterJoinMethod) Descriptor() protoreflect.EnumDescriptor { + return file_aksnodeconfig_v1_bootstrapping_config_proto_enumTypes[1].Descriptor() +} + +func (ClusterJoinMethod) Type() protoreflect.EnumType { + return &file_aksnodeconfig_v1_bootstrapping_config_proto_enumTypes[1] +} + +func (x ClusterJoinMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ClusterJoinMethod.Descriptor instead. +func (ClusterJoinMethod) EnumDescriptor() ([]byte, []int) { + return file_aksnodeconfig_v1_bootstrapping_config_proto_rawDescGZIP(), []int{1} +} + +type BootstrappingConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Method to authenticate the node to the API server + BootstrappingAuthMethod BootstrappingAuthMethod `protobuf:"varint,1,opt,name=bootstrapping_auth_method,json=bootstrappingAuthMethod,proto3,enum=aksnodeconfig.v1.BootstrappingAuthMethod" json:"bootstrapping_auth_method,omitempty"` + // how the node should join and communicate with the API server after authentication + ClusterJoinMethod ClusterJoinMethod `protobuf:"varint,2,opt,name=cluster_join_method,json=clusterJoinMethod,proto3,enum=aksnodeconfig.v1.ClusterJoinMethod" json:"cluster_join_method,omitempty"` + // Only required until Secure TLS bootstrapping in place. Would use kubelet identity after that. + TlsBootstrappingToken *string `protobuf:"bytes,3,opt,name=tls_bootstrapping_token,json=tlsBootstrappingToken,proto3,oneof" json:"tls_bootstrapping_token,omitempty"` + // Only used when secure TLS bootstrapping is enabled or one of the Azure/Arc methods. This is the appserver appid that the node will use to bootstrap. + CustomAadResource *string `protobuf:"bytes,4,opt,name=custom_aad_resource,json=customAadResource,proto3,oneof" json:"custom_aad_resource,omitempty"` + // Only used when one of the Azure/Arc methods is enabled. This is the client ID of the MSI that the node will use to bootstrap. + CustomAadClientId *string `protobuf:"bytes,5,opt,name=custom_aad_client_id,json=customAadClientId,proto3,oneof" json:"custom_aad_client_id,omitempty"` +} + +func (x *BootstrappingConfig) Reset() { + *x = BootstrappingConfig{} + mi := &file_aksnodeconfig_v1_bootstrapping_config_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BootstrappingConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BootstrappingConfig) ProtoMessage() {} + +func (x *BootstrappingConfig) ProtoReflect() protoreflect.Message { + mi := &file_aksnodeconfig_v1_bootstrapping_config_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BootstrappingConfig.ProtoReflect.Descriptor instead. +func (*BootstrappingConfig) Descriptor() ([]byte, []int) { + return file_aksnodeconfig_v1_bootstrapping_config_proto_rawDescGZIP(), []int{0} +} + +func (x *BootstrappingConfig) GetBootstrappingAuthMethod() BootstrappingAuthMethod { + if x != nil { + return x.BootstrappingAuthMethod + } + return BootstrappingAuthMethod_BOOTSTRAPPING_AUTH_METHOD_UNSPECIFIED +} + +func (x *BootstrappingConfig) GetClusterJoinMethod() ClusterJoinMethod { + if x != nil { + return x.ClusterJoinMethod + } + return ClusterJoinMethod_CLUSTER_JOIN_METHOD_UNSPECIFIED +} + +func (x *BootstrappingConfig) GetTlsBootstrappingToken() string { + if x != nil && x.TlsBootstrappingToken != nil { + return *x.TlsBootstrappingToken + } + return "" +} + +func (x *BootstrappingConfig) GetCustomAadResource() string { + if x != nil && x.CustomAadResource != nil { + return *x.CustomAadResource + } + return "" +} + +func (x *BootstrappingConfig) GetCustomAadClientId() string { + if x != nil && x.CustomAadClientId != nil { + return *x.CustomAadClientId + } + return "" +} + +var File_aksnodeconfig_v1_bootstrapping_config_proto protoreflect.FileDescriptor + +var file_aksnodeconfig_v1_bootstrapping_config_proto_rawDesc = []byte{ + 0x0a, 0x2b, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x61, + 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x22, + 0xc6, 0x03, 0x0a, 0x13, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x65, 0x0a, 0x19, 0x62, 0x6f, 0x6f, 0x74, 0x73, + 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x61, 0x6b, 0x73, + 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, + 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x75, 0x74, 0x68, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x17, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x53, + 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x61, 0x6b, + 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x12, 0x3b, 0x0a, 0x17, 0x74, 0x6c, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, + 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x15, 0x74, 0x6c, 0x73, 0x42, 0x6f, 0x6f, 0x74, 0x73, + 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x61, 0x61, 0x64, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x61, 0x61, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x61, 0x64, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, + 0x74, 0x6c, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x61, 0x61, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x61, 0x61, 0x64, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x2a, 0xfb, 0x01, 0x0a, 0x17, 0x42, 0x6f, 0x6f, + 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x75, 0x74, 0x68, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x4f, 0x4f, 0x54, 0x53, 0x54, 0x52, 0x41, + 0x50, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, + 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x2d, 0x0a, 0x29, 0x42, 0x4f, 0x4f, 0x54, 0x53, 0x54, 0x52, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, + 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x42, 0x4f, 0x4f, + 0x54, 0x53, 0x54, 0x52, 0x41, 0x50, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x36, + 0x0a, 0x32, 0x42, 0x4f, 0x4f, 0x54, 0x53, 0x54, 0x52, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x5f, + 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x45, 0x43, 0x55, + 0x52, 0x45, 0x5f, 0x54, 0x4c, 0x53, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x53, 0x54, 0x52, 0x41, 0x50, + 0x50, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x4f, 0x4f, 0x54, 0x53, 0x54, + 0x52, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4d, 0x45, 0x54, + 0x48, 0x4f, 0x44, 0x5f, 0x41, 0x52, 0x43, 0x5f, 0x4d, 0x53, 0x49, 0x10, 0x03, 0x12, 0x27, 0x0a, + 0x23, 0x42, 0x4f, 0x4f, 0x54, 0x53, 0x54, 0x52, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x5f, 0x41, + 0x55, 0x54, 0x48, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, + 0x5f, 0x4d, 0x53, 0x49, 0x10, 0x04, 0x2a, 0x8e, 0x01, 0x0a, 0x11, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x23, 0x0a, 0x1f, + 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x4d, 0x45, 0x54, + 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4a, 0x4f, 0x49, + 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, + 0x45, 0x5f, 0x43, 0x53, 0x52, 0x10, 0x01, 0x12, 0x2e, 0x0a, 0x2a, 0x43, 0x4c, 0x55, 0x53, 0x54, + 0x45, 0x52, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, + 0x53, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x53, 0x54, 0x52, 0x41, 0x50, 0x50, 0x49, 0x4e, 0x47, + 0x5f, 0x41, 0x55, 0x54, 0x48, 0x10, 0x02, 0x42, 0xeb, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, + 0x42, 0x18, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x58, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x2f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x6b, 0x65, 0x72, 0x2f, 0x61, 0x6b, 0x73, 0x2d, 0x6e, 0x6f, + 0x64, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x10, 0x41, + 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x10, 0x41, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, + 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x41, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x11, 0x41, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_aksnodeconfig_v1_bootstrapping_config_proto_rawDescOnce sync.Once + file_aksnodeconfig_v1_bootstrapping_config_proto_rawDescData = file_aksnodeconfig_v1_bootstrapping_config_proto_rawDesc +) + +func file_aksnodeconfig_v1_bootstrapping_config_proto_rawDescGZIP() []byte { + file_aksnodeconfig_v1_bootstrapping_config_proto_rawDescOnce.Do(func() { + file_aksnodeconfig_v1_bootstrapping_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_aksnodeconfig_v1_bootstrapping_config_proto_rawDescData) + }) + return file_aksnodeconfig_v1_bootstrapping_config_proto_rawDescData +} + +var file_aksnodeconfig_v1_bootstrapping_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_aksnodeconfig_v1_bootstrapping_config_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_aksnodeconfig_v1_bootstrapping_config_proto_goTypes = []any{ + (BootstrappingAuthMethod)(0), // 0: aksnodeconfig.v1.BootstrappingAuthMethod + (ClusterJoinMethod)(0), // 1: aksnodeconfig.v1.ClusterJoinMethod + (*BootstrappingConfig)(nil), // 2: aksnodeconfig.v1.BootstrappingConfig +} +var file_aksnodeconfig_v1_bootstrapping_config_proto_depIdxs = []int32{ + 0, // 0: aksnodeconfig.v1.BootstrappingConfig.bootstrapping_auth_method:type_name -> aksnodeconfig.v1.BootstrappingAuthMethod + 1, // 1: aksnodeconfig.v1.BootstrappingConfig.cluster_join_method:type_name -> aksnodeconfig.v1.ClusterJoinMethod + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_aksnodeconfig_v1_bootstrapping_config_proto_init() } +func file_aksnodeconfig_v1_bootstrapping_config_proto_init() { + if File_aksnodeconfig_v1_bootstrapping_config_proto != nil { + return + } + file_aksnodeconfig_v1_bootstrapping_config_proto_msgTypes[0].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_aksnodeconfig_v1_bootstrapping_config_proto_rawDesc, + NumEnums: 2, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_aksnodeconfig_v1_bootstrapping_config_proto_goTypes, + DependencyIndexes: file_aksnodeconfig_v1_bootstrapping_config_proto_depIdxs, + EnumInfos: file_aksnodeconfig_v1_bootstrapping_config_proto_enumTypes, + MessageInfos: file_aksnodeconfig_v1_bootstrapping_config_proto_msgTypes, + }.Build() + File_aksnodeconfig_v1_bootstrapping_config_proto = out.File + file_aksnodeconfig_v1_bootstrapping_config_proto_rawDesc = nil + file_aksnodeconfig_v1_bootstrapping_config_proto_goTypes = nil + file_aksnodeconfig_v1_bootstrapping_config_proto_depIdxs = nil +} diff --git a/aks-node-controller/pkg/gen/aksnodeconfig/v1/config.pb.go b/aks-node-controller/pkg/gen/aksnodeconfig/v1/config.pb.go index f4be8e24660..42cb475fe1e 100644 --- a/aks-node-controller/pkg/gen/aksnodeconfig/v1/config.pb.go +++ b/aks-node-controller/pkg/gen/aksnodeconfig/v1/config.pb.go @@ -85,7 +85,7 @@ type Configuration struct { // 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 `protobuf:"bytes,6,opt,name=tls_bootstrapping_config,json=tlsBootstrappingConfig,proto3" json:"tls_bootstrapping_config,omitempty"` + BootstrappingConfig *BootstrappingConfig `protobuf:"bytes,6,opt,name=bootstrapping_config,json=bootstrappingConfig,proto3" json:"bootstrapping_config,omitempty"` // Authentication configuration AuthConfig *AuthConfig `protobuf:"bytes,7,opt,name=auth_config,json=authConfig,proto3" json:"auth_config,omitempty"` // The CLI tool runc configuration @@ -225,9 +225,9 @@ func (x *Configuration) GetClusterConfig() *ClusterConfig { return nil } -func (x *Configuration) GetTlsBootstrappingConfig() *TlsBootstrappingConfig { +func (x *Configuration) GetBootstrappingConfig() *BootstrappingConfig { if x != nil { - return x.TlsBootstrappingConfig + return x.BootstrappingConfig } return nil } @@ -474,220 +474,219 @@ var file_aksnodeconfig_v1_config_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x25, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x2a, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x76, 0x31, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x61, 0x6b, + 0x2b, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, + 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x5f, 0x6f, 0x73, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 0x61, 0x6b, 0x73, - 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x21, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, - 0x31, 0x2f, 0x67, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x28, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x61, 0x6b, - 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x69, - 0x6d, 0x64, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x61, 0x6b, - 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6b, - 0x75, 0x62, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, - 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, - 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, - 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x61, 0x6b, 0x73, 0x6e, 0x6f, - 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x2f, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x6c, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x9d, 0x13, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x50, - 0x0a, 0x12, 0x6b, 0x75, 0x62, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x6b, 0x73, - 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x75, - 0x62, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, - 0x6b, 0x75, 0x62, 0x65, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x53, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4d, 0x0a, 0x11, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x0f, 0x61, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x61, + 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x61, 0x6b, 0x73, 0x6e, 0x6f, + 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x5f, 0x6f, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, + 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x61, 0x6b, + 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x67, + 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x28, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, + 0x31, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, + 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6d, 0x64, 0x73, + 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x61, 0x6b, 0x73, 0x6e, 0x6f, + 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x75, 0x62, 0x65, + 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x61, 0x6b, 0x73, + 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x22, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, + 0x13, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x12, 0x6b, 0x75, + 0x62, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x42, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x6b, 0x75, 0x62, 0x65, + 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x53, 0x0a, 0x13, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x6b, 0x73, 0x6e, + 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x4d, 0x0a, 0x11, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x62, 0x0a, 0x18, - 0x74, 0x6c, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x0f, 0x61, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x46, 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, + 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x58, 0x0a, 0x14, 0x62, 0x6f, 0x6f, 0x74, + 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, + 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x62, + 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, + 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x3d, 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x63, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x72, 0x75, 0x6e, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x4f, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x6b, + 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x49, 0x0a, 0x0f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x6b, 0x73, + 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, + 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x74, 0x65, + 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0e, + 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x69, 0x0a, 0x1b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x6b, 0x73, 0x6e, + 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x5a, 0x0a, 0x16, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x5f, + 0x6f, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x4f, 0x73, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x69, + 0x6e, 0x75, 0x78, 0x4f, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4d, 0x0a, 0x11, 0x68, + 0x74, 0x74, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x50, 0x72, + 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x50, + 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x0a, 0x67, 0x70, + 0x75, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x70, 0x75, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x67, 0x70, 0x75, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x54, 0x6c, 0x73, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x16, 0x74, 0x6c, 0x73, 0x42, 0x6f, 0x6f, - 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x3d, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x3d, 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x63, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x0a, 0x72, 0x75, 0x6e, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, - 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x6b, 0x73, 0x6e, - 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x49, 0x0a, 0x0f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, - 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x74, 0x65, 0x6c, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0e, 0x6b, 0x75, - 0x62, 0x65, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x69, 0x0a, 0x1b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, - 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5a, 0x0a, - 0x16, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x5f, 0x6f, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, + 0x0a, 0x12, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x61, 0x5f, + 0x63, 0x65, 0x72, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6b, 0x75, 0x62, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x43, 0x61, 0x43, 0x65, 0x72, 0x74, 0x12, 0x2d, 0x0a, 0x12, + 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x6b, + 0x75, 0x62, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6b, 0x75, 0x62, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x72, + 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x76, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x69, + 0x6e, 0x75, 0x78, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x06, + 0x69, 0x73, 0x5f, 0x76, 0x68, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, + 0x69, 0x73, 0x56, 0x68, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x73, 0x73, 0x68, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x09, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x19, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x6e, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x5f, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x68, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, + 0x68, 0x65, 0x44, 0x61, 0x79, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x68, 0x6f, 0x73, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x48, 0x6f, 0x73, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x5f, 0x63, 0x65, + 0x72, 0x74, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x43, 0x61, 0x43, 0x65, 0x72, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x1c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x12, 0x4c, 0x0a, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x4f, 0x73, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x69, 0x6e, 0x75, - 0x78, 0x4f, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4d, 0x0a, 0x11, 0x68, 0x74, 0x74, - 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, 0x78, - 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x50, 0x72, 0x6f, - 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x0a, 0x67, 0x70, 0x75, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, - 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x70, 0x75, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x67, 0x70, 0x75, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, - 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x12, - 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x61, 0x5f, 0x63, 0x65, - 0x72, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x65, 0x73, 0x43, 0x61, 0x43, 0x65, 0x72, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x6b, 0x75, - 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x6b, 0x75, 0x62, - 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6b, 0x75, 0x62, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x72, 0x6c, 0x12, - 0x17, 0x0a, 0x07, 0x76, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x76, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6c, 0x69, 0x6e, 0x75, - 0x78, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x69, 0x6e, 0x75, 0x78, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x69, 0x73, - 0x5f, 0x76, 0x68, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x69, 0x73, - 0x56, 0x68, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x73, 0x73, 0x68, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x09, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x53, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x6e, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, - 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x6e, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x55, - 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x68, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x19, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, - 0x44, 0x61, 0x79, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x6f, - 0x73, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x6f, - 0x73, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x26, - 0x0a, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74, - 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, - 0x61, 0x43, 0x65, 0x72, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x12, 0x4c, 0x0a, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x61, 0x6b, - 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x0f, - 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, - 0x35, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x64, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, - 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x44, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, - 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x12, 0x41, 0x0a, 0x1d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x50, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x1c, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x70, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, - 0x6e, 0x67, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, - 0x67, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6b, 0x61, 0x74, 0x61, 0x18, 0x23, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4b, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x0e, 0x6e, 0x65, - 0x65, 0x64, 0x73, 0x5f, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x76, 0x32, 0x18, 0x24, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x43, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x76, 0x32, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x25, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5c, 0x0a, 0x2b, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, - 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x27, 0x62, 0x6f, 0x6f, - 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x12, 0x5f, 0x0a, 0x17, 0x69, 0x6d, 0x64, 0x73, 0x5f, 0x72, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x64, 0x73, 0x52, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, - 0x69, 0x6d, 0x64, 0x73, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x73, 0x5f, 0x76, 0x68, 0x64, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x73, 0x68, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x5f, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x76, 0x32, 0x2a, 0x77, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, - 0x44, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x4f, 0x52, 0x4b, 0x4c, - 0x4f, 0x41, 0x44, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x4f, 0x43, 0x49, 0x5f, - 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x57, - 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x5f, - 0x57, 0x41, 0x53, 0x4d, 0x5f, 0x57, 0x41, 0x53, 0x49, 0x10, 0x02, 0x42, 0xde, 0x01, 0x0a, 0x14, - 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x58, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x6b, 0x65, 0x72, - 0x2f, 0x61, 0x6b, 0x73, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x6b, 0x73, - 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6b, - 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x41, 0x58, 0x58, 0xaa, 0x02, 0x10, 0x41, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x41, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x41, 0x6b, 0x73, 0x6e, - 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x41, 0x6b, 0x73, 0x6e, 0x6f, - 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x64, 0x75, 0x61, 0x6c, 0x5f, 0x73, + 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x44, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x1f, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x12, 0x41, 0x0a, 0x1d, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x5f, 0x70, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x1c, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x69, 0x6e, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6b, 0x61, 0x74, 0x61, 0x18, 0x23, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4b, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x0e, + 0x6e, 0x65, 0x65, 0x64, 0x73, 0x5f, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x76, 0x32, 0x18, 0x24, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x43, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x76, 0x32, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x25, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5c, 0x0a, 0x2b, 0x62, 0x6f, 0x6f, 0x74, + 0x73, 0x74, 0x72, 0x61, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x27, 0x62, + 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x5f, 0x0a, 0x17, 0x69, 0x6d, 0x64, 0x73, 0x5f, 0x72, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, + 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x64, 0x73, 0x52, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x15, 0x69, 0x6d, 0x64, 0x73, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x73, 0x5f, 0x76, + 0x68, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x73, + 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x5f, 0x63, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x76, 0x32, 0x2a, 0x77, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x57, 0x4f, 0x52, 0x4b, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x4f, 0x52, + 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x4f, 0x43, + 0x49, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1e, 0x0a, + 0x1a, 0x57, 0x4f, 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, + 0x45, 0x5f, 0x57, 0x41, 0x53, 0x4d, 0x5f, 0x57, 0x41, 0x53, 0x49, 0x10, 0x02, 0x42, 0xde, 0x01, + 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x58, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x6b, + 0x65, 0x72, 0x2f, 0x61, 0x6b, 0x73, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, + 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, + 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x10, 0x41, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x41, 0x6b, 0x73, 0x6e, 0x6f, + 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x41, 0x6b, + 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x41, 0x6b, 0x73, + 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -711,7 +710,7 @@ var file_aksnodeconfig_v1_config_proto_goTypes = []any{ (*CustomCloudConfig)(nil), // 3: aksnodeconfig.v1.CustomCloudConfig (*ApiServerConfig)(nil), // 4: aksnodeconfig.v1.ApiServerConfig (*ClusterConfig)(nil), // 5: aksnodeconfig.v1.ClusterConfig - (*TlsBootstrappingConfig)(nil), // 6: aksnodeconfig.v1.TlsBootstrappingConfig + (*BootstrappingConfig)(nil), // 6: aksnodeconfig.v1.BootstrappingConfig (*AuthConfig)(nil), // 7: aksnodeconfig.v1.AuthConfig (*RuncConfig)(nil), // 8: aksnodeconfig.v1.RuncConfig (*ContainerdConfig)(nil), // 9: aksnodeconfig.v1.ContainerdConfig @@ -729,7 +728,7 @@ var file_aksnodeconfig_v1_config_proto_depIdxs = []int32{ 3, // 1: aksnodeconfig.v1.Configuration.custom_cloud_config:type_name -> aksnodeconfig.v1.CustomCloudConfig 4, // 2: aksnodeconfig.v1.Configuration.api_server_config:type_name -> aksnodeconfig.v1.ApiServerConfig 5, // 3: aksnodeconfig.v1.Configuration.cluster_config:type_name -> aksnodeconfig.v1.ClusterConfig - 6, // 4: aksnodeconfig.v1.Configuration.tls_bootstrapping_config:type_name -> aksnodeconfig.v1.TlsBootstrappingConfig + 6, // 4: aksnodeconfig.v1.Configuration.bootstrapping_config:type_name -> aksnodeconfig.v1.BootstrappingConfig 7, // 5: aksnodeconfig.v1.Configuration.auth_config:type_name -> aksnodeconfig.v1.AuthConfig 8, // 6: aksnodeconfig.v1.Configuration.runc_config:type_name -> aksnodeconfig.v1.RuncConfig 9, // 7: aksnodeconfig.v1.Configuration.containerd_config:type_name -> aksnodeconfig.v1.ContainerdConfig @@ -756,6 +755,7 @@ func file_aksnodeconfig_v1_config_proto_init() { } file_aksnodeconfig_v1_api_server_config_proto_init() file_aksnodeconfig_v1_auth_config_proto_init() + file_aksnodeconfig_v1_bootstrapping_config_proto_init() file_aksnodeconfig_v1_cluster_config_proto_init() file_aksnodeconfig_v1_containerd_config_proto_init() file_aksnodeconfig_v1_custom_cloud_config_proto_init() @@ -769,7 +769,6 @@ func file_aksnodeconfig_v1_config_proto_init() { file_aksnodeconfig_v1_network_config_proto_init() file_aksnodeconfig_v1_runc_config_proto_init() file_aksnodeconfig_v1_teleport_config_proto_init() - file_aksnodeconfig_v1_tls_bootstrapping_config_proto_init() file_aksnodeconfig_v1_config_proto_msgTypes[0].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ diff --git a/aks-node-controller/pkg/gen/aksnodeconfig/v1/tls_bootstrapping_config.pb.go b/aks-node-controller/pkg/gen/aksnodeconfig/v1/tls_bootstrapping_config.pb.go deleted file mode 100644 index dd764018f9a..00000000000 --- a/aks-node-controller/pkg/gen/aksnodeconfig/v1/tls_bootstrapping_config.pb.go +++ /dev/null @@ -1,179 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.2 -// protoc (unknown) -// source: aksnodeconfig/v1/tls_bootstrapping_config.proto - -package aksnodeconfigv1 - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type TlsBootstrappingConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Enable secure TLS bootstrapping for the node. - EnableSecureTlsBootstrapping *bool `protobuf:"varint,1,opt,name=enable_secure_tls_bootstrapping,json=enableSecureTlsBootstrapping,proto3,oneof" json:"enable_secure_tls_bootstrapping,omitempty"` - // Only required until Secure TLS bootstrapping in place. Would use kubelet identity after that. - TlsBootstrappingToken string `protobuf:"bytes,2,opt,name=tls_bootstrapping_token,json=tlsBootstrappingToken,proto3" json:"tls_bootstrapping_token,omitempty"` - // Only used when secure TLS bootstrapping is enabled. This is the appserver appid that the node will use to bootstrap. - CustomSecureTlsBootstrappingAppserverAppid string `protobuf:"bytes,3,opt,name=custom_secure_tls_bootstrapping_appserver_appid,json=customSecureTlsBootstrappingAppserverAppid,proto3" json:"custom_secure_tls_bootstrapping_appserver_appid,omitempty"` -} - -func (x *TlsBootstrappingConfig) Reset() { - *x = TlsBootstrappingConfig{} - mi := &file_aksnodeconfig_v1_tls_bootstrapping_config_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *TlsBootstrappingConfig) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TlsBootstrappingConfig) ProtoMessage() {} - -func (x *TlsBootstrappingConfig) ProtoReflect() protoreflect.Message { - mi := &file_aksnodeconfig_v1_tls_bootstrapping_config_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TlsBootstrappingConfig.ProtoReflect.Descriptor instead. -func (*TlsBootstrappingConfig) Descriptor() ([]byte, []int) { - return file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDescGZIP(), []int{0} -} - -func (x *TlsBootstrappingConfig) GetEnableSecureTlsBootstrapping() bool { - if x != nil && x.EnableSecureTlsBootstrapping != nil { - return *x.EnableSecureTlsBootstrapping - } - return false -} - -func (x *TlsBootstrappingConfig) GetTlsBootstrappingToken() string { - if x != nil { - return x.TlsBootstrappingToken - } - return "" -} - -func (x *TlsBootstrappingConfig) GetCustomSecureTlsBootstrappingAppserverAppid() string { - if x != nil { - return x.CustomSecureTlsBootstrappingAppserverAppid - } - return "" -} - -var File_aksnodeconfig_v1_tls_bootstrapping_config_proto protoreflect.FileDescriptor - -var file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDesc = []byte{ - 0x0a, 0x2f, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, - 0x76, 0x31, 0x2f, 0x74, 0x6c, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x10, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x76, 0x31, 0x22, 0xa5, 0x02, 0x0a, 0x16, 0x54, 0x6c, 0x73, 0x42, 0x6f, 0x6f, 0x74, 0x73, - 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4a, - 0x0a, 0x1f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, - 0x74, 0x6c, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x1c, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x54, 0x6c, 0x73, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, - 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x17, 0x74, 0x6c, - 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x74, 0x6c, 0x73, - 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x63, 0x0a, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x63, - 0x75, 0x72, 0x65, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x2a, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x54, 0x6c, 0x73, 0x42, 0x6f, 0x6f, 0x74, - 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x41, 0x70, 0x70, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x41, 0x70, 0x70, 0x69, 0x64, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x62, 0x6f, - 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x42, 0xee, 0x01, 0x0a, 0x14, - 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x76, 0x31, 0x42, 0x1b, 0x54, 0x6c, 0x73, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, - 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x58, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x7a, 0x75, 0x72, 0x65, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x6b, 0x65, 0x72, - 0x2f, 0x61, 0x6b, 0x73, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x6b, 0x73, - 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6b, - 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x41, 0x58, 0x58, 0xaa, 0x02, 0x10, 0x41, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x41, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x41, 0x6b, 0x73, 0x6e, - 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x41, 0x6b, 0x73, 0x6e, 0x6f, - 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDescOnce sync.Once - file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDescData = file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDesc -) - -func file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDescGZIP() []byte { - file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDescOnce.Do(func() { - file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDescData) - }) - return file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDescData -} - -var file_aksnodeconfig_v1_tls_bootstrapping_config_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_aksnodeconfig_v1_tls_bootstrapping_config_proto_goTypes = []any{ - (*TlsBootstrappingConfig)(nil), // 0: aksnodeconfig.v1.TlsBootstrappingConfig -} -var file_aksnodeconfig_v1_tls_bootstrapping_config_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_aksnodeconfig_v1_tls_bootstrapping_config_proto_init() } -func file_aksnodeconfig_v1_tls_bootstrapping_config_proto_init() { - if File_aksnodeconfig_v1_tls_bootstrapping_config_proto != nil { - return - } - file_aksnodeconfig_v1_tls_bootstrapping_config_proto_msgTypes[0].OneofWrappers = []any{} - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_aksnodeconfig_v1_tls_bootstrapping_config_proto_goTypes, - DependencyIndexes: file_aksnodeconfig_v1_tls_bootstrapping_config_proto_depIdxs, - MessageInfos: file_aksnodeconfig_v1_tls_bootstrapping_config_proto_msgTypes, - }.Build() - File_aksnodeconfig_v1_tls_bootstrapping_config_proto = out.File - file_aksnodeconfig_v1_tls_bootstrapping_config_proto_rawDesc = nil - file_aksnodeconfig_v1_tls_bootstrapping_config_proto_goTypes = nil - file_aksnodeconfig_v1_tls_bootstrapping_config_proto_depIdxs = nil -} diff --git a/aks-node-controller/proto/README.md b/aks-node-controller/proto/README.md index 991791027d7..641062246e0 100644 --- a/aks-node-controller/proto/README.md +++ b/aks-node-controller/proto/README.md @@ -7,48 +7,48 @@ 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 AKSNodeConfig | 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` | +| AKSNodeConfig Fields | Types | Descriptions | OLD CSE env variables mapping | +|------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------| +| `Version` | `string` | Semantic version of this AKSNodeConfig | 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` | +| `BootstrappingConfig` | `TLSBootstrappingConfig` | 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`| +| `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: diff --git a/aks-node-controller/proto/aksnodeconfig/v1/bootstrapping_config.proto b/aks-node-controller/proto/aksnodeconfig/v1/bootstrapping_config.proto new file mode 100644 index 00000000000..4a519377cbd --- /dev/null +++ b/aks-node-controller/proto/aksnodeconfig/v1/bootstrapping_config.proto @@ -0,0 +1,47 @@ +syntax = "proto3"; +package aksnodeconfig.v1; + +enum BootstrappingAuthMethod { + BOOTSTRAPPING_AUTH_METHOD_UNSPECIFIED = 0; + + // This is the default K8s bootstrap authentication method - a time limited bootstrap token. It's stored as a secret + // with a particular type in the API server. + //nolint:gosec // this is a const string to use in switch statements, not hardcoded credentials + BOOTSTRAPPING_AUTH_METHOD_BOOTSTRAP_TOKEN = 1; + // Secure TLS bootstrapping is a process where the node can use signed metadata from the Azure IMDS service to authenticate + // against the api server + BOOTSTRAPPING_AUTH_METHOD_SECURE_TLS_BOOTSTRAPPING = 2; + // Nodes running outside Azure can use the Azure Arc MSI to authenticate to an API server. This only works when the cluster is + // using AAD authentication. + BOOTSTRAPPING_AUTH_METHOD_ARC_MSI = 3; + // Nodes running inside Azure can use the Azure Arc MSI to authenticate to an API server. This only works when the cluster is + // using AAD authentication. + BOOTSTRAPPING_AUTH_METHOD_AZURE_MSI = 4; +} + +enum ClusterJoinMethod { + CLUSTER_JOIN_METHOD_UNSPECIFIED = 0; + + // The default behaviour is for the node to make a certificate signing request (CSR) and then + // use that CSR for ongoing communication. + CLUSTER_JOIN_METHOD_GENERATE_CSR = 1; + // In some cases, the node will use the bootstrapping auth to register itself as a node and for ongoing communications. + CLUSTER_JOIN_METHOD_USE_BOOTSTRAPPING_AUTH = 2; +} + +message BootstrappingConfig { + // Method to authenticate the node to the API server + BootstrappingAuthMethod bootstrapping_auth_method = 1; + + // how the node should join and communicate with the API server after authentication + ClusterJoinMethod cluster_join_method = 2; + + // Only required until Secure TLS bootstrapping in place. Would use kubelet identity after that. + optional string tls_bootstrapping_token = 3; + + // Only used when secure TLS bootstrapping is enabled or one of the Azure/Arc methods. This is the appserver appid that the node will use to bootstrap. + optional string custom_aad_resource = 4; + + // Only used when one of the Azure/Arc methods is enabled. This is the client ID of the MSI that the node will use to bootstrap. + optional string custom_aad_client_id = 5; +} diff --git a/aks-node-controller/proto/aksnodeconfig/v1/config.proto b/aks-node-controller/proto/aksnodeconfig/v1/config.proto index 7a9fa0f12b3..f23ce298a41 100644 --- a/aks-node-controller/proto/aksnodeconfig/v1/config.proto +++ b/aks-node-controller/proto/aksnodeconfig/v1/config.proto @@ -4,6 +4,7 @@ package aksnodeconfig.v1; import "aksnodeconfig/v1/api_server_config.proto"; import "aksnodeconfig/v1/auth_config.proto"; +import "aksnodeconfig/v1/bootstrapping_config.proto"; import "aksnodeconfig/v1/cluster_config.proto"; import "aksnodeconfig/v1/containerd_config.proto"; import "aksnodeconfig/v1/custom_cloud_config.proto"; @@ -17,7 +18,6 @@ import "aksnodeconfig/v1/kubelet_config.proto"; import "aksnodeconfig/v1/network_config.proto"; import "aksnodeconfig/v1/runc_config.proto"; import "aksnodeconfig/v1/teleport_config.proto"; -import "aksnodeconfig/v1/tls_bootstrapping_config.proto"; enum WorkloadRuntime { WORKLOAD_RUNTIME_UNSPECIFIED = 0; @@ -42,7 +42,7 @@ message Configuration { ClusterConfig cluster_config = 5; // TLS bootstrap config - TlsBootstrappingConfig tls_bootstrapping_config = 6; + BootstrappingConfig bootstrapping_config = 6; // Authentication configuration AuthConfig auth_config = 7; diff --git a/aks-node-controller/proto/aksnodeconfig/v1/tls_bootstrapping_config.proto b/aks-node-controller/proto/aksnodeconfig/v1/tls_bootstrapping_config.proto deleted file mode 100644 index 4442655eae4..00000000000 --- a/aks-node-controller/proto/aksnodeconfig/v1/tls_bootstrapping_config.proto +++ /dev/null @@ -1,13 +0,0 @@ -syntax = "proto3"; -package aksnodeconfig.v1; - -message TlsBootstrappingConfig { - // Enable secure TLS bootstrapping for the node. - optional bool enable_secure_tls_bootstrapping = 1; - - // Only required until Secure TLS bootstrapping in place. Would use kubelet identity after that. - string tls_bootstrapping_token = 2; - - // Only used when secure TLS bootstrapping is enabled. This is the appserver appid that the node will use to bootstrap. - string custom_secure_tls_bootstrapping_appserver_appid = 3; -} diff --git a/e2e/template.go b/e2e/template.go index 1f2486cb91b..654bea29dae 100644 --- a/e2e/template.go +++ b/e2e/template.go @@ -82,8 +82,8 @@ func nbcToAKSNodeConfigV1(nbc *datamodel.NodeBootstrappingConfiguration) *aksnod KubeletFlags: helpers.GetKubeletConfigFlag(nbc.KubeletConfig, cs, agentPool, false), KubeletNodeLabels: helpers.GetKubeletNodeLabels(agentPool), }, - TlsBootstrappingConfig: &aksnodeconfigv1.TlsBootstrappingConfig{ - TlsBootstrappingToken: *nbc.KubeletClientTLSBootstrapToken, + BootstrappingConfig: &aksnodeconfigv1.BootstrappingConfig{ + TlsBootstrappingToken: nbc.KubeletClientTLSBootstrapToken, }, KubernetesCaCert: base64.StdEncoding.EncodeToString([]byte(cs.Properties.CertificateProfile.CaCertificate)), KubeBinaryConfig: &aksnodeconfigv1.KubeBinaryConfig{ diff --git a/e2e/validation.go b/e2e/validation.go index 8bccff2a90d..f39ec4f3493 100644 --- a/e2e/validation.go +++ b/e2e/validation.go @@ -170,10 +170,15 @@ func leakedSecretsValidators(scenario *Scenario) []*LiveVMValidator { "bootstrap token": *scenario.Runtime.NBC.KubeletClientTLSBootstrapToken, } } else { + token := scenario.Runtime.AKSNodeConfig.BootstrappingConfig.TlsBootstrappingToken + strToken := "" + if token != nil { + strToken = *token + } secrets = map[string]string{ "client private key": b64Encoded(scenario.Runtime.AKSNodeConfig.KubeletConfig.KubeletClientKey), "service principal secret": b64Encoded(scenario.Runtime.AKSNodeConfig.AuthConfig.ServicePrincipalSecret), - "bootstrap token": scenario.Runtime.AKSNodeConfig.TlsBootstrappingConfig.TlsBootstrappingToken, + "bootstrap token": strToken, } } diff --git a/pkg/agent/datamodel/helper_test.go b/pkg/agent/datamodel/helper_test.go index 92289395402..8ed1a993fdf 100644 --- a/pkg/agent/datamodel/helper_test.go +++ b/pkg/agent/datamodel/helper_test.go @@ -341,7 +341,7 @@ func TestIndentString(t *testing.T) { got := IndentString(test.input, test.count) diff := cmp.Diff(test.want, got) if diff != "" { - t.Fatalf(diff) + t.Fatal(diff) } }) } diff --git a/pkg/agent/datamodel/versions_test.go b/pkg/agent/datamodel/versions_test.go index f4945ed301b..a6bdada3704 100644 --- a/pkg/agent/datamodel/versions_test.go +++ b/pkg/agent/datamodel/versions_test.go @@ -67,11 +67,11 @@ func TestGetVersionsGt(t *testing.T) { v := GetVersionsGt(versions, "1.1.0-alpha.1", false, true) errStr := "GetVersionsGt returned an unexpected list of strings" if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } @@ -84,11 +84,11 @@ func TestGetVersionsGt(t *testing.T) { } v = GetVersionsGt(versions, "1.1.0", true, false) if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } } @@ -181,11 +181,11 @@ func TestGetVersionsLt(t *testing.T) { v := GetVersionsLt(versions, "1.2.1", false, false) errStr := "GetVersionsLt returned an unexpected list of strings" if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } @@ -198,11 +198,11 @@ func TestGetVersionsLt(t *testing.T) { } v = GetVersionsLt(versions, "1.2.1", true, false) if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } } @@ -217,11 +217,11 @@ func TestGetVersionsBetween(t *testing.T) { v := GetVersionsBetween(versions, "1.1.0", "1.2.1", false, false) errStr := "GetVersionsBetween returned an unexpected list of strings" if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } @@ -234,11 +234,11 @@ func TestGetVersionsBetween(t *testing.T) { } v = GetVersionsBetween(versions, "1.1.0", "1.2.1", true, false) if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } @@ -251,16 +251,16 @@ func TestGetVersionsBetween(t *testing.T) { } v = GetVersionsBetween(versions, "1.9.6", "1.11.0", false, true) if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } v = GetVersionsBetween(versions, "1.9.6", "1.11.0", false, false) if len(v) != 0 { - t.Errorf(errStr) + t.Error(errStr) } versions = []string{"1.9.6", "1.10.0-beta.2", "1.10.0-beta.4", "1.10.0-rc.1"} @@ -271,18 +271,18 @@ func TestGetVersionsBetween(t *testing.T) { } v = GetVersionsBetween(versions, "1.10.0-beta.2", "1.12.0", false, false) if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } versions = []string{"1.10.0", "1.10.0-beta.2", "1.10.0-beta.4", "1.10.0-rc.1"} v = GetVersionsBetween(versions, "1.10.0", "1.12.0", false, false) if len(v) != 0 { - t.Errorf(errStr) + t.Error(errStr) } versions = []string{"1.9.6", "1.10.0-beta.2", "1.10.0-beta.4", "1.10.0-rc.1"} @@ -294,11 +294,11 @@ func TestGetVersionsBetween(t *testing.T) { } v = GetVersionsBetween(versions, "1.9.5", "1.12.0", false, true) if len(v) != len(versions) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } @@ -311,11 +311,11 @@ func TestGetVersionsBetween(t *testing.T) { } v = GetVersionsBetween(versions, "1.10.0-rc.1", "1.12.0", false, true) if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } @@ -326,11 +326,11 @@ func TestGetVersionsBetween(t *testing.T) { } v = GetVersionsBetween(versions, "1.11.0-alpha.1", "1.11.0-beta.1", false, true) if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } @@ -339,11 +339,11 @@ func TestGetVersionsBetween(t *testing.T) { expectedMap = map[string]bool{} v = GetVersionsBetween(versions, "1.11.0-beta.1", "1.12.0", false, true) if len(v) != len(expected) { - t.Errorf(errStr) + t.Error(errStr) } for _, ver := range v { if !expectedMap[ver] { - t.Errorf(errStr) + t.Error(errStr) } } } From ee19195dc2b95b867d5860416b73cf9392bd67fb Mon Sep 17 00:00:00 2001 From: Tim Wright Date: Wed, 20 Nov 2024 12:00:47 +1300 Subject: [PATCH 2/2] chore: fix readme (#5296) --- aks-node-controller/proto/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aks-node-controller/proto/README.md b/aks-node-controller/proto/README.md index 641062246e0..c6be885d46b 100644 --- a/aks-node-controller/proto/README.md +++ b/aks-node-controller/proto/README.md @@ -16,7 +16,7 @@ This table is describing the all the AKSNodeConfig Fields converted to .go files | `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` | -| `BootstrappingConfig` | `TLSBootstrappingConfig` | Bootstrap configuration | `ENABLE_TLS_BOOTSTRAPPING`, `ENABLE_SECURE_TLS_BOOTSTRAPPING`, `CUSTOM_SECURE_TLS_BOOTSTRAP_AAD_SERVER_APP_ID` | +| `BootstrappingConfig` | `BootstrappingConfig` | 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` |