From 857dd1b1c3c3fc4226cf86b4332f1509a2b48e01 Mon Sep 17 00:00:00 2001 From: Chung-Hsuan Tsai Date: Sun, 23 Aug 2026 12:55:54 +0800 Subject: [PATCH] refactor: remove GetAgentManifest RPC and related types from LinkService --- link/v1/link.connect.go | 47 +------ link/v1/link.pb.go | 254 ++---------------------------------- openapi/openapi.yaml | 137 ------------------- proto/link/v1/link.proto | 33 ----- ts/src/link/v1/link_pb.d.ts | 73 ----------- ts/src/link/v1/link_pb.js | 16 +-- 6 files changed, 16 insertions(+), 544 deletions(-) diff --git a/link/v1/link.connect.go b/link/v1/link.connect.go index 5d49f93..89e6556 100644 --- a/link/v1/link.connect.go +++ b/link/v1/link.connect.go @@ -36,9 +36,6 @@ const ( LinkServiceListLinksProcedure = "/otterscale.link.v1.LinkService/ListLinks" // LinkServiceRegisterProcedure is the fully-qualified name of the LinkService's Register RPC. LinkServiceRegisterProcedure = "/otterscale.link.v1.LinkService/Register" - // LinkServiceGetAgentManifestProcedure is the fully-qualified name of the LinkService's - // GetAgentManifest RPC. - LinkServiceGetAgentManifestProcedure = "/otterscale.link.v1.LinkService/GetAgentManifest" ) // LinkServiceClient is a client for the otterscale.link.v1.LinkService service. @@ -51,11 +48,6 @@ type LinkServiceClient interface { // The agent sends its cluster identity and tunnel port; the server responds // with its fingerprint so the agent can verify the tunnel connection. Register(context.Context, *RegisterRequest) (*RegisterResponse, error) - // GetAgentManifest returns a multi-document YAML manifest for installing - // the otterscale agent on a target Kubernetes cluster. The manifest - // includes a Namespace, ServiceAccount, ClusterRoleBinding (binding the - // caller to cluster-admin), and a Deployment running the agent. - GetAgentManifest(context.Context, *GetAgentManifestRequest) (*GetAgentManifestResponse, error) } // NewLinkServiceClient constructs a client for the otterscale.link.v1.LinkService service. By @@ -81,21 +73,13 @@ func NewLinkServiceClient(httpClient connect.HTTPClient, baseURL string, opts .. connect.WithSchema(linkServiceMethods.ByName("Register")), connect.WithClientOptions(opts...), ), - getAgentManifest: connect.NewClient[GetAgentManifestRequest, GetAgentManifestResponse]( - httpClient, - baseURL+LinkServiceGetAgentManifestProcedure, - connect.WithSchema(linkServiceMethods.ByName("GetAgentManifest")), - connect.WithIdempotency(connect.IdempotencyNoSideEffects), - connect.WithClientOptions(opts...), - ), } } // linkServiceClient implements LinkServiceClient. type linkServiceClient struct { - listLinks *connect.Client[ListLinksRequest, ListLinksResponse] - register *connect.Client[RegisterRequest, RegisterResponse] - getAgentManifest *connect.Client[GetAgentManifestRequest, GetAgentManifestResponse] + listLinks *connect.Client[ListLinksRequest, ListLinksResponse] + register *connect.Client[RegisterRequest, RegisterResponse] } // ListLinks calls otterscale.link.v1.LinkService.ListLinks. @@ -116,15 +100,6 @@ func (c *linkServiceClient) Register(ctx context.Context, req *RegisterRequest) return nil, err } -// GetAgentManifest calls otterscale.link.v1.LinkService.GetAgentManifest. -func (c *linkServiceClient) GetAgentManifest(ctx context.Context, req *GetAgentManifestRequest) (*GetAgentManifestResponse, error) { - response, err := c.getAgentManifest.CallUnary(ctx, connect.NewRequest(req)) - if response != nil { - return response.Msg, err - } - return nil, err -} - // LinkServiceHandler is an implementation of the otterscale.link.v1.LinkService service. type LinkServiceHandler interface { // ListLinks returns all cluster identifiers that the current agent @@ -135,11 +110,6 @@ type LinkServiceHandler interface { // The agent sends its cluster identity and tunnel port; the server responds // with its fingerprint so the agent can verify the tunnel connection. Register(context.Context, *RegisterRequest) (*RegisterResponse, error) - // GetAgentManifest returns a multi-document YAML manifest for installing - // the otterscale agent on a target Kubernetes cluster. The manifest - // includes a Namespace, ServiceAccount, ClusterRoleBinding (binding the - // caller to cluster-admin), and a Deployment running the agent. - GetAgentManifest(context.Context, *GetAgentManifestRequest) (*GetAgentManifestResponse, error) } // NewLinkServiceHandler builds an HTTP handler from the service implementation. It returns the path @@ -161,21 +131,12 @@ func NewLinkServiceHandler(svc LinkServiceHandler, opts ...connect.HandlerOption connect.WithSchema(linkServiceMethods.ByName("Register")), connect.WithHandlerOptions(opts...), ) - linkServiceGetAgentManifestHandler := connect.NewUnaryHandlerSimple( - LinkServiceGetAgentManifestProcedure, - svc.GetAgentManifest, - connect.WithSchema(linkServiceMethods.ByName("GetAgentManifest")), - connect.WithIdempotency(connect.IdempotencyNoSideEffects), - connect.WithHandlerOptions(opts...), - ) return "/otterscale.link.v1.LinkService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case LinkServiceListLinksProcedure: linkServiceListLinksHandler.ServeHTTP(w, r) case LinkServiceRegisterProcedure: linkServiceRegisterHandler.ServeHTTP(w, r) - case LinkServiceGetAgentManifestProcedure: - linkServiceGetAgentManifestHandler.ServeHTTP(w, r) default: http.NotFound(w, r) } @@ -192,7 +153,3 @@ func (UnimplementedLinkServiceHandler) ListLinks(context.Context, *ListLinksRequ func (UnimplementedLinkServiceHandler) Register(context.Context, *RegisterRequest) (*RegisterResponse, error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("otterscale.link.v1.LinkService.Register is not implemented")) } - -func (UnimplementedLinkServiceHandler) GetAgentManifest(context.Context, *GetAgentManifestRequest) (*GetAgentManifestResponse, error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("otterscale.link.v1.LinkService.GetAgentManifest is not implemented")) -} diff --git a/link/v1/link.pb.go b/link/v1/link.pb.go index 9239087..19cdd5f 100644 --- a/link/v1/link.pb.go +++ b/link/v1/link.pb.go @@ -608,221 +608,6 @@ func (b0 RegisterResponse_builder) Build() *RegisterResponse { return m0 } -// GetAgentManifestRequest identifies the target cluster for which -// the agent installation manifest should be generated. -type GetAgentManifestRequest struct { - state protoimpl.MessageState `protogen:"opaque.v1"` - xxx_hidden_Cluster *string `protobuf:"bytes,1,opt,name=cluster"` - xxx_hidden_ExtraUsers []string `protobuf:"bytes,2,rep,name=extra_users,json=extraUsers"` - XXX_raceDetectHookData protoimpl.RaceDetectHookData - XXX_presence [1]uint32 - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *GetAgentManifestRequest) Reset() { - *x = GetAgentManifestRequest{} - mi := &file_link_v1_link_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetAgentManifestRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAgentManifestRequest) ProtoMessage() {} - -func (x *GetAgentManifestRequest) ProtoReflect() protoreflect.Message { - mi := &file_link_v1_link_proto_msgTypes[5] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -func (x *GetAgentManifestRequest) GetCluster() string { - if x != nil { - if x.xxx_hidden_Cluster != nil { - return *x.xxx_hidden_Cluster - } - return "" - } - return "" -} - -func (x *GetAgentManifestRequest) GetExtraUsers() []string { - if x != nil { - return x.xxx_hidden_ExtraUsers - } - return nil -} - -func (x *GetAgentManifestRequest) SetCluster(v string) { - x.xxx_hidden_Cluster = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 2) -} - -func (x *GetAgentManifestRequest) SetExtraUsers(v []string) { - x.xxx_hidden_ExtraUsers = v -} - -func (x *GetAgentManifestRequest) HasCluster() bool { - if x == nil { - return false - } - return protoimpl.X.Present(&(x.XXX_presence[0]), 0) -} - -func (x *GetAgentManifestRequest) ClearCluster() { - protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0) - x.xxx_hidden_Cluster = nil -} - -type GetAgentManifestRequest_builder struct { - _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. - - // The cluster name the agent will register under. - Cluster *string - // Additional user identities to be granted cluster-admin via the - // otterscale-cluster-admin ClusterRoleBinding, in addition to the - // authenticated caller. - ExtraUsers []string -} - -func (b0 GetAgentManifestRequest_builder) Build() *GetAgentManifestRequest { - m0 := &GetAgentManifestRequest{} - b, x := &b0, m0 - _, _ = b, x - if b.Cluster != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 2) - x.xxx_hidden_Cluster = b.Cluster - } - x.xxx_hidden_ExtraUsers = b.ExtraUsers - return m0 -} - -// GetAgentManifestResponse contains the multi-document YAML manifest -// that can be applied via kubectl to install the agent. -type GetAgentManifestResponse struct { - state protoimpl.MessageState `protogen:"opaque.v1"` - xxx_hidden_Manifest *string `protobuf:"bytes,1,opt,name=manifest"` - xxx_hidden_Url *string `protobuf:"bytes,2,opt,name=url"` - XXX_raceDetectHookData protoimpl.RaceDetectHookData - XXX_presence [1]uint32 - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *GetAgentManifestResponse) Reset() { - *x = GetAgentManifestResponse{} - mi := &file_link_v1_link_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetAgentManifestResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAgentManifestResponse) ProtoMessage() {} - -func (x *GetAgentManifestResponse) ProtoReflect() protoreflect.Message { - mi := &file_link_v1_link_proto_msgTypes[6] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -func (x *GetAgentManifestResponse) GetManifest() string { - if x != nil { - if x.xxx_hidden_Manifest != nil { - return *x.xxx_hidden_Manifest - } - return "" - } - return "" -} - -func (x *GetAgentManifestResponse) GetUrl() string { - if x != nil { - if x.xxx_hidden_Url != nil { - return *x.xxx_hidden_Url - } - return "" - } - return "" -} - -func (x *GetAgentManifestResponse) SetManifest(v string) { - x.xxx_hidden_Manifest = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 2) -} - -func (x *GetAgentManifestResponse) SetUrl(v string) { - x.xxx_hidden_Url = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 2) -} - -func (x *GetAgentManifestResponse) HasManifest() bool { - if x == nil { - return false - } - return protoimpl.X.Present(&(x.XXX_presence[0]), 0) -} - -func (x *GetAgentManifestResponse) HasUrl() bool { - if x == nil { - return false - } - return protoimpl.X.Present(&(x.XXX_presence[0]), 1) -} - -func (x *GetAgentManifestResponse) ClearManifest() { - protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0) - x.xxx_hidden_Manifest = nil -} - -func (x *GetAgentManifestResponse) ClearUrl() { - protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 1) - x.xxx_hidden_Url = nil -} - -type GetAgentManifestResponse_builder struct { - _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. - - // Multi-document YAML containing Namespace, ServiceAccount, - // ClusterRoleBinding, and Deployment resources. - Manifest *string - // URL with an embedded HMAC token that serves the manifest as raw - // YAML. Users can run `kubectl apply -f ` directly. - Url *string -} - -func (b0 GetAgentManifestResponse_builder) Build() *GetAgentManifestResponse { - m0 := &GetAgentManifestResponse{} - b, x := &b0, m0 - _, _ = b, x - if b.Manifest != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 2) - x.xxx_hidden_Manifest = b.Manifest - } - if b.Url != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 2) - x.xxx_hidden_Url = b.Url - } - return m0 -} - var File_link_v1_link_proto protoreflect.FileDescriptor const file_link_v1_link_proto_rawDesc = "" + @@ -843,42 +628,29 @@ const file_link_v1_link_proto_rawDesc = "" + "\bendpoint\x18\x01 \x01(\tR\bendpoint\x12 \n" + "\vcertificate\x18\x02 \x01(\fR\vcertificate\x12%\n" + "\x0eca_certificate\x18\x03 \x01(\fR\rcaCertificate\x12%\n" + - "\x0eserver_version\x18\x04 \x01(\tR\rserverVersion\"T\n" + - "\x17GetAgentManifestRequest\x12\x18\n" + - "\acluster\x18\x01 \x01(\tR\acluster\x12\x1f\n" + - "\vextra_users\x18\x02 \x03(\tR\n" + - "extraUsers\"H\n" + - "\x18GetAgentManifestResponse\x12\x1a\n" + - "\bmanifest\x18\x01 \x01(\tR\bmanifest\x12\x10\n" + - "\x03url\x18\x02 \x01(\tR\x03url2\xf0\x02\n" + + "\x0eserver_version\x18\x04 \x01(\tR\rserverVersion2\xe8\x01\n" + "\vLinkService\x12m\n" + "\tListLinks\x12$.otterscale.link.v1.ListLinksRequest\x1a%.otterscale.link.v1.ListLinksResponse\"\x13\x8a\xdf\xd5\x1d\x0e\n" + "\flink-enabled\x12j\n" + "\bRegister\x12#.otterscale.link.v1.RegisterRequest\x1a$.otterscale.link.v1.RegisterResponse\"\x13\x8a\xdf\xd5\x1d\x0e\n" + - "\flink-enabled\x12\x85\x01\n" + - "\x10GetAgentManifest\x12+.otterscale.link.v1.GetAgentManifestRequest\x1a,.otterscale.link.v1.GetAgentManifestResponse\"\x16\x8a\xdf\xd5\x1d\x0e\n" + - "\flink-enabled\x90\x02\x01B*Z(github.com/otterscale/api/link/v1;linkv1b\beditionsp\xe8\a" + "\flink-enabledB*Z(github.com/otterscale/api/link/v1;linkv1b\beditionsp\xe8\a" -var file_link_v1_link_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_link_v1_link_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_link_v1_link_proto_goTypes = []any{ - (*Link)(nil), // 0: otterscale.link.v1.Link - (*ListLinksRequest)(nil), // 1: otterscale.link.v1.ListLinksRequest - (*ListLinksResponse)(nil), // 2: otterscale.link.v1.ListLinksResponse - (*RegisterRequest)(nil), // 3: otterscale.link.v1.RegisterRequest - (*RegisterResponse)(nil), // 4: otterscale.link.v1.RegisterResponse - (*GetAgentManifestRequest)(nil), // 5: otterscale.link.v1.GetAgentManifestRequest - (*GetAgentManifestResponse)(nil), // 6: otterscale.link.v1.GetAgentManifestResponse + (*Link)(nil), // 0: otterscale.link.v1.Link + (*ListLinksRequest)(nil), // 1: otterscale.link.v1.ListLinksRequest + (*ListLinksResponse)(nil), // 2: otterscale.link.v1.ListLinksResponse + (*RegisterRequest)(nil), // 3: otterscale.link.v1.RegisterRequest + (*RegisterResponse)(nil), // 4: otterscale.link.v1.RegisterResponse } var file_link_v1_link_proto_depIdxs = []int32{ 0, // 0: otterscale.link.v1.ListLinksResponse.links:type_name -> otterscale.link.v1.Link 1, // 1: otterscale.link.v1.LinkService.ListLinks:input_type -> otterscale.link.v1.ListLinksRequest 3, // 2: otterscale.link.v1.LinkService.Register:input_type -> otterscale.link.v1.RegisterRequest - 5, // 3: otterscale.link.v1.LinkService.GetAgentManifest:input_type -> otterscale.link.v1.GetAgentManifestRequest - 2, // 4: otterscale.link.v1.LinkService.ListLinks:output_type -> otterscale.link.v1.ListLinksResponse - 4, // 5: otterscale.link.v1.LinkService.Register:output_type -> otterscale.link.v1.RegisterResponse - 6, // 6: otterscale.link.v1.LinkService.GetAgentManifest:output_type -> otterscale.link.v1.GetAgentManifestResponse - 4, // [4:7] is the sub-list for method output_type - 1, // [1:4] is the sub-list for method input_type + 2, // 3: otterscale.link.v1.LinkService.ListLinks:output_type -> otterscale.link.v1.ListLinksResponse + 4, // 4: otterscale.link.v1.LinkService.Register:output_type -> otterscale.link.v1.RegisterResponse + 3, // [3:5] is the sub-list for method output_type + 1, // [1:3] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name @@ -895,7 +667,7 @@ func file_link_v1_link_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_link_v1_link_proto_rawDesc), len(file_link_v1_link_proto_rawDesc)), NumEnums: 0, - NumMessages: 7, + NumMessages: 5, NumExtensions: 0, NumServices: 1, }, diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index cf58877..c7c2156 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -11,102 +11,6 @@ info: url: https://opensource.org/license/apache-2-0 version: v1 paths: - /otterscale.link.v1.LinkService/GetAgentManifest: - get: - tags: - - LinkService - summary: GetAgentManifest - description: |- - GetAgentManifest returns a multi-document YAML manifest for installing - the otterscale agent on a target Kubernetes cluster. The manifest - includes a Namespace, ServiceAccount, ClusterRoleBinding (binding the - caller to cluster-admin), and a Deployment running the agent. - operationId: LinkService_GetAgentManifest.get - parameters: - - name: Connect-Protocol-Version - in: header - required: true - schema: - $ref: '#/components/schemas/connect-protocol-version' - - name: Connect-Timeout-Ms - in: header - schema: - $ref: '#/components/schemas/connect-timeout-header' - - name: message - in: query - content: - application/json: - schema: - $ref: '#/components/schemas/otterscale.link.v1.GetAgentManifestRequest' - - name: encoding - in: query - required: true - schema: - $ref: '#/components/schemas/encoding' - - name: base64 - in: query - schema: - $ref: '#/components/schemas/base64' - - name: compression - in: query - schema: - $ref: '#/components/schemas/compression' - - name: connect - in: query - schema: - $ref: '#/components/schemas/connect' - responses: - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' - "200": - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/otterscale.link.v1.GetAgentManifestResponse' - post: - tags: - - LinkService - summary: GetAgentManifest - description: |- - GetAgentManifest returns a multi-document YAML manifest for installing - the otterscale agent on a target Kubernetes cluster. The manifest - includes a Namespace, ServiceAccount, ClusterRoleBinding (binding the - caller to cluster-admin), and a Deployment running the agent. - operationId: LinkService_GetAgentManifest - parameters: - - name: Connect-Protocol-Version - in: header - required: true - schema: - $ref: '#/components/schemas/connect-protocol-version' - - name: Connect-Timeout-Ms - in: header - schema: - $ref: '#/components/schemas/connect-timeout-header' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/otterscale.link.v1.GetAgentManifestRequest' - required: true - responses: - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' - "200": - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/otterscale.link.v1.GetAgentManifestResponse' /otterscale.link.v1.LinkService/ListLinks: post: tags: @@ -1652,47 +1556,6 @@ components: title: name title: Feature additionalProperties: false - otterscale.link.v1.GetAgentManifestRequest: - type: object - properties: - cluster: - type: string - title: cluster - description: The cluster name the agent will register under. - extraUsers: - type: array - items: - type: string - title: extra_users - description: |- - Additional user identities to be granted cluster-admin via the - otterscale-cluster-admin ClusterRoleBinding, in addition to the - authenticated caller. - title: GetAgentManifestRequest - additionalProperties: false - description: |- - GetAgentManifestRequest identifies the target cluster for which - the agent installation manifest should be generated. - otterscale.link.v1.GetAgentManifestResponse: - type: object - properties: - manifest: - type: string - title: manifest - description: |- - Multi-document YAML containing Namespace, ServiceAccount, - ClusterRoleBinding, and Deployment resources. - url: - type: string - title: url - description: |- - URL with an embedded HMAC token that serves the manifest as raw - YAML. Users can run `kubectl apply -f ` directly. - title: GetAgentManifestResponse - additionalProperties: false - description: |- - GetAgentManifestResponse contains the multi-document YAML manifest - that can be applied via kubectl to install the agent. otterscale.link.v1.Link: type: object properties: diff --git a/proto/link/v1/link.proto b/proto/link/v1/link.proto index aa760d1..00d2739 100644 --- a/proto/link/v1/link.proto +++ b/proto/link/v1/link.proto @@ -22,15 +22,6 @@ service LinkService { rpc Register(RegisterRequest) returns (RegisterResponse) { option (otterscale.api.feature) = {name: "link-enabled"}; } - - // GetAgentManifest returns a multi-document YAML manifest for installing - // the otterscale agent on a target Kubernetes cluster. The manifest - // includes a Namespace, ServiceAccount, ClusterRoleBinding (binding the - // caller to cluster-admin), and a Deployment running the agent. - rpc GetAgentManifest(GetAgentManifestRequest) returns (GetAgentManifestResponse) { - option idempotency_level = NO_SIDE_EFFECTS; - option (otterscale.api.feature) = {name: "link-enabled"}; - } } message Link { @@ -84,27 +75,3 @@ message RegisterResponse { // self-update is needed. string server_version = 4; } - -// GetAgentManifestRequest identifies the target cluster for which -// the agent installation manifest should be generated. -message GetAgentManifestRequest { - // The cluster name the agent will register under. - string cluster = 1; - - // Additional user identities to be granted cluster-admin via the - // otterscale-cluster-admin ClusterRoleBinding, in addition to the - // authenticated caller. - repeated string extra_users = 2; -} - -// GetAgentManifestResponse contains the multi-document YAML manifest -// that can be applied via kubectl to install the agent. -message GetAgentManifestResponse { - // Multi-document YAML containing Namespace, ServiceAccount, - // ClusterRoleBinding, and Deployment resources. - string manifest = 1; - - // URL with an embedded HMAC token that serves the manifest as raw - // YAML. Users can run `kubectl apply -f ` directly. - string url = 2; -} diff --git a/ts/src/link/v1/link_pb.d.ts b/ts/src/link/v1/link_pb.d.ts index 1300890..595b93e 100644 --- a/ts/src/link/v1/link_pb.d.ts +++ b/ts/src/link/v1/link_pb.d.ts @@ -156,66 +156,6 @@ export declare type RegisterResponse = Message<"otterscale.link.v1.RegisterRespo */ export declare const RegisterResponseSchema: GenMessage; -/** - * GetAgentManifestRequest identifies the target cluster for which - * the agent installation manifest should be generated. - * - * @generated from message otterscale.link.v1.GetAgentManifestRequest - */ -export declare type GetAgentManifestRequest = Message<"otterscale.link.v1.GetAgentManifestRequest"> & { - /** - * The cluster name the agent will register under. - * - * @generated from field: string cluster = 1; - */ - cluster: string; - - /** - * Additional user identities to be granted cluster-admin via the - * otterscale-cluster-admin ClusterRoleBinding, in addition to the - * authenticated caller. - * - * @generated from field: repeated string extra_users = 2; - */ - extraUsers: string[]; -}; - -/** - * Describes the message otterscale.link.v1.GetAgentManifestRequest. - * Use `create(GetAgentManifestRequestSchema)` to create a new message. - */ -export declare const GetAgentManifestRequestSchema: GenMessage; - -/** - * GetAgentManifestResponse contains the multi-document YAML manifest - * that can be applied via kubectl to install the agent. - * - * @generated from message otterscale.link.v1.GetAgentManifestResponse - */ -export declare type GetAgentManifestResponse = Message<"otterscale.link.v1.GetAgentManifestResponse"> & { - /** - * Multi-document YAML containing Namespace, ServiceAccount, - * ClusterRoleBinding, and Deployment resources. - * - * @generated from field: string manifest = 1; - */ - manifest: string; - - /** - * URL with an embedded HMAC token that serves the manifest as raw - * YAML. Users can run `kubectl apply -f ` directly. - * - * @generated from field: string url = 2; - */ - url: string; -}; - -/** - * Describes the message otterscale.link.v1.GetAgentManifestResponse. - * Use `create(GetAgentManifestResponseSchema)` to create a new message. - */ -export declare const GetAgentManifestResponseSchema: GenMessage; - /** * LinkService manages the lifecycle of agent-to-server tunnel connections, * including registration and health checking. @@ -247,18 +187,5 @@ export declare const LinkService: GenService<{ input: typeof RegisterRequestSchema; output: typeof RegisterResponseSchema; }, - /** - * GetAgentManifest returns a multi-document YAML manifest for installing - * the otterscale agent on a target Kubernetes cluster. The manifest - * includes a Namespace, ServiceAccount, ClusterRoleBinding (binding the - * caller to cluster-admin), and a Deployment running the agent. - * - * @generated from rpc otterscale.link.v1.LinkService.GetAgentManifest - */ - getAgentManifest: { - methodKind: "unary"; - input: typeof GetAgentManifestRequestSchema; - output: typeof GetAgentManifestResponseSchema; - }, }>; diff --git a/ts/src/link/v1/link_pb.js b/ts/src/link/v1/link_pb.js index 292658e..08a904a 100644 --- a/ts/src/link/v1/link_pb.js +++ b/ts/src/link/v1/link_pb.js @@ -9,7 +9,7 @@ import { file_feature } from "../../feature_pb.js"; * Describes the file link/v1/link.proto. */ export const file_link_v1_link = /*@__PURE__*/ - fileDesc("ChJsaW5rL3YxL2xpbmsucHJvdG8SEm90dGVyc2NhbGUubGluay52MSIuCgRMaW5rEg8KB2NsdXN0ZXIYASABKAkSFQoNYWdlbnRfdmVyc2lvbhgCIAEoCSISChBMaXN0TGlua3NSZXF1ZXN0IjwKEUxpc3RMaW5rc1Jlc3BvbnNlEicKBWxpbmtzGAEgAygLMhgub3R0ZXJzY2FsZS5saW5rLnYxLkxpbmsiWAoPUmVnaXN0ZXJSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSCwoDY3NyGAIgASgMEhAKCGFnZW50X2lkGAMgASgJEhUKDWFnZW50X3ZlcnNpb24YBCABKAkiaQoQUmVnaXN0ZXJSZXNwb25zZRIQCghlbmRwb2ludBgBIAEoCRITCgtjZXJ0aWZpY2F0ZRgCIAEoDBIWCg5jYV9jZXJ0aWZpY2F0ZRgDIAEoDBIWCg5zZXJ2ZXJfdmVyc2lvbhgEIAEoCSI/ChdHZXRBZ2VudE1hbmlmZXN0UmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJEhMKC2V4dHJhX3VzZXJzGAIgAygJIjkKGEdldEFnZW50TWFuaWZlc3RSZXNwb25zZRIQCghtYW5pZmVzdBgBIAEoCRILCgN1cmwYAiABKAky8AIKC0xpbmtTZXJ2aWNlEm0KCUxpc3RMaW5rcxIkLm90dGVyc2NhbGUubGluay52MS5MaXN0TGlua3NSZXF1ZXN0GiUub3R0ZXJzY2FsZS5saW5rLnYxLkxpc3RMaW5rc1Jlc3BvbnNlIhOK39UdDgoMbGluay1lbmFibGVkEmoKCFJlZ2lzdGVyEiMub3R0ZXJzY2FsZS5saW5rLnYxLlJlZ2lzdGVyUmVxdWVzdBokLm90dGVyc2NhbGUubGluay52MS5SZWdpc3RlclJlc3BvbnNlIhOK39UdDgoMbGluay1lbmFibGVkEoUBChBHZXRBZ2VudE1hbmlmZXN0Eisub3R0ZXJzY2FsZS5saW5rLnYxLkdldEFnZW50TWFuaWZlc3RSZXF1ZXN0Giwub3R0ZXJzY2FsZS5saW5rLnYxLkdldEFnZW50TWFuaWZlc3RSZXNwb25zZSIWkAIBit/VHQ4KDGxpbmstZW5hYmxlZEIqWihnaXRodWIuY29tL290dGVyc2NhbGUvYXBpL2xpbmsvdjE7bGlua3YxYghlZGl0aW9uc3DoBw", [file_feature]); + fileDesc("ChJsaW5rL3YxL2xpbmsucHJvdG8SEm90dGVyc2NhbGUubGluay52MSIuCgRMaW5rEg8KB2NsdXN0ZXIYASABKAkSFQoNYWdlbnRfdmVyc2lvbhgCIAEoCSISChBMaXN0TGlua3NSZXF1ZXN0IjwKEUxpc3RMaW5rc1Jlc3BvbnNlEicKBWxpbmtzGAEgAygLMhgub3R0ZXJzY2FsZS5saW5rLnYxLkxpbmsiWAoPUmVnaXN0ZXJSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSCwoDY3NyGAIgASgMEhAKCGFnZW50X2lkGAMgASgJEhUKDWFnZW50X3ZlcnNpb24YBCABKAkiaQoQUmVnaXN0ZXJSZXNwb25zZRIQCghlbmRwb2ludBgBIAEoCRITCgtjZXJ0aWZpY2F0ZRgCIAEoDBIWCg5jYV9jZXJ0aWZpY2F0ZRgDIAEoDBIWCg5zZXJ2ZXJfdmVyc2lvbhgEIAEoCTLoAQoLTGlua1NlcnZpY2USbQoJTGlzdExpbmtzEiQub3R0ZXJzY2FsZS5saW5rLnYxLkxpc3RMaW5rc1JlcXVlc3QaJS5vdHRlcnNjYWxlLmxpbmsudjEuTGlzdExpbmtzUmVzcG9uc2UiE4rf1R0OCgxsaW5rLWVuYWJsZWQSagoIUmVnaXN0ZXISIy5vdHRlcnNjYWxlLmxpbmsudjEuUmVnaXN0ZXJSZXF1ZXN0GiQub3R0ZXJzY2FsZS5saW5rLnYxLlJlZ2lzdGVyUmVzcG9uc2UiE4rf1R0OCgxsaW5rLWVuYWJsZWRCKlooZ2l0aHViLmNvbS9vdHRlcnNjYWxlL2FwaS9saW5rL3YxO2xpbmt2MWIIZWRpdGlvbnNw6Ac", [file_feature]); /** * Describes the message otterscale.link.v1.Link. @@ -46,20 +46,6 @@ export const RegisterRequestSchema = /*@__PURE__*/ export const RegisterResponseSchema = /*@__PURE__*/ messageDesc(file_link_v1_link, 4); -/** - * Describes the message otterscale.link.v1.GetAgentManifestRequest. - * Use `create(GetAgentManifestRequestSchema)` to create a new message. - */ -export const GetAgentManifestRequestSchema = /*@__PURE__*/ - messageDesc(file_link_v1_link, 5); - -/** - * Describes the message otterscale.link.v1.GetAgentManifestResponse. - * Use `create(GetAgentManifestResponseSchema)` to create a new message. - */ -export const GetAgentManifestResponseSchema = /*@__PURE__*/ - messageDesc(file_link_v1_link, 6); - /** * LinkService manages the lifecycle of agent-to-server tunnel connections, * including registration and health checking.