feat: Add APId
This PR introduces APId. This service replaces the frontend functionality previously provided by OSD. The main driver for this is two fold: 1. Create a single purpose application to expose the talos api 2. Make use of code generation to DRY api changes Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
This commit is contained in:
parent
a9fe8beb0f
commit
573cce8d18
95
.drone.yml
95
.drone.yml
@ -48,6 +48,24 @@ steps:
|
||||
depends_on:
|
||||
- fetch-tags
|
||||
|
||||
- name: apid
|
||||
pull: always
|
||||
image: autonomy/build-container:latest
|
||||
commands:
|
||||
- make apid
|
||||
environment:
|
||||
BINDIR: /usr/local/bin
|
||||
BUILDKIT_HOST: ${BUILDKIT_HOST=tcp://buildkitd.ci.svc:1234}
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run
|
||||
- name: dev
|
||||
path: /dev
|
||||
- name: tmp
|
||||
path: /tmp
|
||||
depends_on:
|
||||
- fetch-tags
|
||||
|
||||
- name: trustd
|
||||
pull: always
|
||||
image: autonomy/build-container:latest
|
||||
@ -159,6 +177,7 @@ steps:
|
||||
- trustd
|
||||
- ntpd
|
||||
- networkd
|
||||
- apid
|
||||
|
||||
- name: initramfs
|
||||
pull: always
|
||||
@ -465,6 +484,24 @@ steps:
|
||||
depends_on:
|
||||
- fetch-tags
|
||||
|
||||
- name: apid
|
||||
pull: always
|
||||
image: autonomy/build-container:latest
|
||||
commands:
|
||||
- make apid
|
||||
environment:
|
||||
BINDIR: /usr/local/bin
|
||||
BUILDKIT_HOST: ${BUILDKIT_HOST=tcp://buildkitd.ci.svc:1234}
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run
|
||||
- name: dev
|
||||
path: /dev
|
||||
- name: tmp
|
||||
path: /tmp
|
||||
depends_on:
|
||||
- fetch-tags
|
||||
|
||||
- name: trustd
|
||||
pull: always
|
||||
image: autonomy/build-container:latest
|
||||
@ -576,6 +613,7 @@ steps:
|
||||
- trustd
|
||||
- ntpd
|
||||
- networkd
|
||||
- apid
|
||||
|
||||
- name: initramfs
|
||||
pull: always
|
||||
@ -1095,6 +1133,24 @@ steps:
|
||||
depends_on:
|
||||
- fetch-tags
|
||||
|
||||
- name: apid
|
||||
pull: always
|
||||
image: autonomy/build-container:latest
|
||||
commands:
|
||||
- make apid
|
||||
environment:
|
||||
BINDIR: /usr/local/bin
|
||||
BUILDKIT_HOST: ${BUILDKIT_HOST=tcp://buildkitd.ci.svc:1234}
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run
|
||||
- name: dev
|
||||
path: /dev
|
||||
- name: tmp
|
||||
path: /tmp
|
||||
depends_on:
|
||||
- fetch-tags
|
||||
|
||||
- name: trustd
|
||||
pull: always
|
||||
image: autonomy/build-container:latest
|
||||
@ -1206,6 +1262,7 @@ steps:
|
||||
- trustd
|
||||
- ntpd
|
||||
- networkd
|
||||
- apid
|
||||
|
||||
- name: initramfs
|
||||
pull: always
|
||||
@ -1728,6 +1785,24 @@ steps:
|
||||
depends_on:
|
||||
- fetch-tags
|
||||
|
||||
- name: apid
|
||||
pull: always
|
||||
image: autonomy/build-container:latest
|
||||
commands:
|
||||
- make apid
|
||||
environment:
|
||||
BINDIR: /usr/local/bin
|
||||
BUILDKIT_HOST: ${BUILDKIT_HOST=tcp://buildkitd.ci.svc:1234}
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run
|
||||
- name: dev
|
||||
path: /dev
|
||||
- name: tmp
|
||||
path: /tmp
|
||||
depends_on:
|
||||
- fetch-tags
|
||||
|
||||
- name: trustd
|
||||
pull: always
|
||||
image: autonomy/build-container:latest
|
||||
@ -1839,6 +1914,7 @@ steps:
|
||||
- trustd
|
||||
- ntpd
|
||||
- networkd
|
||||
- apid
|
||||
|
||||
- name: initramfs
|
||||
pull: always
|
||||
@ -2361,6 +2437,24 @@ steps:
|
||||
depends_on:
|
||||
- fetch-tags
|
||||
|
||||
- name: apid
|
||||
pull: always
|
||||
image: autonomy/build-container:latest
|
||||
commands:
|
||||
- make apid
|
||||
environment:
|
||||
BINDIR: /usr/local/bin
|
||||
BUILDKIT_HOST: ${BUILDKIT_HOST=tcp://buildkitd.ci.svc:1234}
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run
|
||||
- name: dev
|
||||
path: /dev
|
||||
- name: tmp
|
||||
path: /tmp
|
||||
depends_on:
|
||||
- fetch-tags
|
||||
|
||||
- name: trustd
|
||||
pull: always
|
||||
image: autonomy/build-container:latest
|
||||
@ -2472,6 +2566,7 @@ steps:
|
||||
- trustd
|
||||
- ntpd
|
||||
- networkd
|
||||
- apid
|
||||
|
||||
- name: initramfs
|
||||
pull: always
|
||||
|
27
Dockerfile
27
Dockerfile
@ -18,13 +18,13 @@ RUN cd $(mktemp -d) \
|
||||
&& go get mvdan.cc/gofumpt/gofumports \
|
||||
&& mv /go/bin/gofumports /toolchain/go/bin/gofumports
|
||||
RUN curl -sfL https://github.com/uber/prototool/releases/download/v1.8.0/prototool-Linux-x86_64.tar.gz | tar -xz --strip-components=2 -C /toolchain/bin prototool/bin/prototool
|
||||
COPY --from=autonomy/protoc-gen-proxy:ec650af /protoc-gen-proxy /toolchain/bin/protoc-gen-proxy
|
||||
|
||||
# The build target creates a container that will be used to build Talos source
|
||||
# code.
|
||||
|
||||
FROM scratch AS build
|
||||
COPY --from=tools / /
|
||||
COPY --from=autonomy/protoc-gen-proxy:a87401e /protoc-gen-proxy /toolchain/bin/protoc-gen-proxy
|
||||
SHELL ["/toolchain/bin/bash", "-c"]
|
||||
ENV PATH /toolchain/bin:/toolchain/go/bin
|
||||
ENV GO111MODULE on
|
||||
@ -35,13 +35,11 @@ WORKDIR /src
|
||||
# The generate target generates code from protobuf service definitions.
|
||||
|
||||
FROM build AS generate-build
|
||||
# Common needs to be at or near the top to satisfy the subsequent imports
|
||||
COPY ./api/common/common.proto /api/common/common.proto
|
||||
RUN protoc -I/api --go_out=plugins=grpc:/api/common /api/common/common.proto
|
||||
#RUN protoc -I/api --plugin=proxy --proxy_out=plugins=grpc+proxy:proto api/api.proto
|
||||
COPY ./api/os/os.proto /api/os/os.proto
|
||||
# TODO: switch up os proxy generation with apid
|
||||
#RUN protoc -I/api --go_out=plugins=grpc:/api/os /api/os/os.proto
|
||||
RUN protoc -I/api --plugin=proxy --proxy_out=plugins=grpc+proxy:/api/os /api/os/os.proto
|
||||
RUN protoc -I/api --go_out=plugins=grpc:/api/os /api/os/os.proto
|
||||
COPY ./api/security/security.proto /api/security/security.proto
|
||||
RUN protoc -I/api --go_out=plugins=grpc:/api/security /api/security/security.proto
|
||||
COPY ./api/machine/machine.proto /api/machine/machine.proto
|
||||
@ -50,9 +48,13 @@ COPY ./api/time/time.proto /api/time/time.proto
|
||||
RUN protoc -I/api --go_out=plugins=grpc:/api/time /api/time/time.proto
|
||||
COPY ./api/network/network.proto /api/network/network.proto
|
||||
RUN protoc -I/api --go_out=plugins=grpc:/api/network /api/network/network.proto
|
||||
# Genenrate api bits last so we have other proto files in place to satisfy the import
|
||||
COPY ./api/api.proto /api/api.proto
|
||||
RUN protoc -I/api --plugin=proxy --proxy_out=plugins=grpc+proxy:/api /api/api.proto
|
||||
|
||||
FROM scratch AS generate
|
||||
COPY --from=generate-build /api/common/github.com/talos-systems/talos/api/common/common.pb.go /api/common/
|
||||
COPY --from=generate-build /api/github.com/talos-systems/talos/api/api.pb.go /api/
|
||||
COPY --from=generate-build /api/os/github.com/talos-systems/talos/api/os/os.pb.go /api/os/
|
||||
COPY --from=generate-build /api/security/github.com/talos-systems/talos/api/security/security.pb.go /api/security/
|
||||
COPY --from=generate-build /api/machine/github.com/talos-systems/talos/api/machine/machine.pb.go /api/machine/
|
||||
@ -114,6 +116,20 @@ FROM scratch AS ntpd
|
||||
COPY --from=ntpd-build /ntpd /ntpd
|
||||
ENTRYPOINT ["/ntpd"]
|
||||
|
||||
# The apid target builds the api image.
|
||||
|
||||
FROM base AS apid-build
|
||||
ARG SHA
|
||||
ARG TAG
|
||||
ARG VERSION_PKG="github.com/talos-systems/talos/pkg/version"
|
||||
WORKDIR /src/internal/app/apid
|
||||
RUN --mount=type=cache,target=/.cache/go-build go build -ldflags "-s -w -X ${VERSION_PKG}.Name=Server -X ${VERSION_PKG}.SHA=${SHA} -X ${VERSION_PKG}.Tag=${TAG}" -o /apid
|
||||
RUN chmod +x /apid
|
||||
|
||||
FROM scratch AS apid
|
||||
COPY --from=apid-build /apid /apid
|
||||
ENTRYPOINT ["/apid"]
|
||||
|
||||
# The osd target builds the osd image.
|
||||
|
||||
FROM base AS osd-build
|
||||
@ -208,6 +224,7 @@ COPY --from=docker.io/autonomy/util-linux:dad1273 /lib/libuuid.* /rootfs/lib
|
||||
COPY --from=docker.io/autonomy/kmod:dad1273 /lib/libkmod.* /rootfs/lib
|
||||
COPY --from=docker.io/autonomy/kernel:dad1273 /lib/modules /rootfs/lib/modules
|
||||
COPY --from=machined /machined /rootfs/sbin/init
|
||||
COPY images/apid.tar /rootfs/usr/images/
|
||||
COPY images/ntpd.tar /rootfs/usr/images/
|
||||
COPY images/osd.tar /rootfs/usr/images/
|
||||
COPY images/trustd.tar /rootfs/usr/images/
|
||||
|
10
Makefile
10
Makefile
@ -136,7 +136,7 @@ initramfs: buildkitd
|
||||
$(COMMON_ARGS)
|
||||
|
||||
.PHONY: rootfs
|
||||
rootfs: buildkitd osd trustd ntpd networkd
|
||||
rootfs: buildkitd osd trustd ntpd networkd apid
|
||||
@$(BINDIR)/buildctl --addr $(BUILDKIT_HOST) \
|
||||
build \
|
||||
--opt target=$@ \
|
||||
@ -318,6 +318,14 @@ osd: buildkitd images
|
||||
--opt target=$@ \
|
||||
$(COMMON_ARGS)
|
||||
|
||||
.PHONY: apid
|
||||
apid: buildkitd images
|
||||
@$(BINDIR)/buildctl --addr $(BUILDKIT_HOST) \
|
||||
build \
|
||||
--output type=docker,dest=images/$@.tar,name=docker.io/autonomy/$@:$(TAG) \
|
||||
--opt target=$@ \
|
||||
$(COMMON_ARGS)
|
||||
|
||||
.PHONY: trustd
|
||||
trustd: buildkitd images
|
||||
@$(BINDIR)/buildctl --addr $(BUILDKIT_HOST) \
|
||||
|
1026
api/api.pb.go
Normal file
1026
api/api.pb.go
Normal file
File diff suppressed because it is too large
Load Diff
10
api/api.proto
Normal file
10
api/api.proto
Normal file
@ -0,0 +1,10 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/talos-systems/talos/api";
|
||||
|
||||
import public "os/os.proto";
|
||||
import public "machine/machine.proto";
|
||||
import public "common/common.proto";
|
||||
import public "google/protobuf/empty.proto";
|
@ -1962,137 +1962,136 @@ func (m *VersionInfo) GetArch() string {
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterType((*RebootResponse)(nil), "machineapi.RebootResponse")
|
||||
proto.RegisterType((*RebootReply)(nil), "machineapi.RebootReply")
|
||||
proto.RegisterType((*ResetResponse)(nil), "machineapi.ResetResponse")
|
||||
proto.RegisterType((*ResetReply)(nil), "machineapi.ResetReply")
|
||||
proto.RegisterType((*ShutdownResponse)(nil), "machineapi.ShutdownResponse")
|
||||
proto.RegisterType((*ShutdownReply)(nil), "machineapi.ShutdownReply")
|
||||
proto.RegisterType((*UpgradeRequest)(nil), "machineapi.UpgradeRequest")
|
||||
proto.RegisterType((*UpgradeResponse)(nil), "machineapi.UpgradeResponse")
|
||||
proto.RegisterType((*UpgradeReply)(nil), "machineapi.UpgradeReply")
|
||||
proto.RegisterType((*ServiceListResponse)(nil), "machineapi.ServiceListResponse")
|
||||
proto.RegisterType((*ServiceListReply)(nil), "machineapi.ServiceListReply")
|
||||
proto.RegisterType((*ServiceInfo)(nil), "machineapi.ServiceInfo")
|
||||
proto.RegisterType((*ServiceEvents)(nil), "machineapi.ServiceEvents")
|
||||
proto.RegisterType((*ServiceEvent)(nil), "machineapi.ServiceEvent")
|
||||
proto.RegisterType((*ServiceHealth)(nil), "machineapi.ServiceHealth")
|
||||
proto.RegisterType((*ServiceStartRequest)(nil), "machineapi.ServiceStartRequest")
|
||||
proto.RegisterType((*ServiceStartResponse)(nil), "machineapi.ServiceStartResponse")
|
||||
proto.RegisterType((*ServiceStartReply)(nil), "machineapi.ServiceStartReply")
|
||||
proto.RegisterType((*ServiceStopRequest)(nil), "machineapi.ServiceStopRequest")
|
||||
proto.RegisterType((*ServiceStopResponse)(nil), "machineapi.ServiceStopResponse")
|
||||
proto.RegisterType((*ServiceStopReply)(nil), "machineapi.ServiceStopReply")
|
||||
proto.RegisterType((*ServiceRestartRequest)(nil), "machineapi.ServiceRestartRequest")
|
||||
proto.RegisterType((*ServiceRestartResponse)(nil), "machineapi.ServiceRestartResponse")
|
||||
proto.RegisterType((*ServiceRestartReply)(nil), "machineapi.ServiceRestartReply")
|
||||
proto.RegisterType((*StartRequest)(nil), "machineapi.StartRequest")
|
||||
proto.RegisterType((*StartReply)(nil), "machineapi.StartReply")
|
||||
proto.RegisterType((*StopRequest)(nil), "machineapi.StopRequest")
|
||||
proto.RegisterType((*StopReply)(nil), "machineapi.StopReply")
|
||||
proto.RegisterType((*StreamingData)(nil), "machineapi.StreamingData")
|
||||
proto.RegisterType((*CopyOutRequest)(nil), "machineapi.CopyOutRequest")
|
||||
proto.RegisterType((*LSRequest)(nil), "machineapi.LSRequest")
|
||||
proto.RegisterType((*FileInfo)(nil), "machineapi.FileInfo")
|
||||
proto.RegisterType((*MountsResponse)(nil), "machineapi.MountsResponse")
|
||||
proto.RegisterType((*MountsReply)(nil), "machineapi.MountsReply")
|
||||
proto.RegisterType((*MountStat)(nil), "machineapi.MountStat")
|
||||
proto.RegisterType((*VersionResponse)(nil), "machineapi.VersionResponse")
|
||||
proto.RegisterType((*VersionReply)(nil), "machineapi.VersionReply")
|
||||
proto.RegisterType((*VersionInfo)(nil), "machineapi.VersionInfo")
|
||||
proto.RegisterType((*RebootResponse)(nil), "machine.RebootResponse")
|
||||
proto.RegisterType((*RebootReply)(nil), "machine.RebootReply")
|
||||
proto.RegisterType((*ResetResponse)(nil), "machine.ResetResponse")
|
||||
proto.RegisterType((*ResetReply)(nil), "machine.ResetReply")
|
||||
proto.RegisterType((*ShutdownResponse)(nil), "machine.ShutdownResponse")
|
||||
proto.RegisterType((*ShutdownReply)(nil), "machine.ShutdownReply")
|
||||
proto.RegisterType((*UpgradeRequest)(nil), "machine.UpgradeRequest")
|
||||
proto.RegisterType((*UpgradeResponse)(nil), "machine.UpgradeResponse")
|
||||
proto.RegisterType((*UpgradeReply)(nil), "machine.UpgradeReply")
|
||||
proto.RegisterType((*ServiceListResponse)(nil), "machine.ServiceListResponse")
|
||||
proto.RegisterType((*ServiceListReply)(nil), "machine.ServiceListReply")
|
||||
proto.RegisterType((*ServiceInfo)(nil), "machine.ServiceInfo")
|
||||
proto.RegisterType((*ServiceEvents)(nil), "machine.ServiceEvents")
|
||||
proto.RegisterType((*ServiceEvent)(nil), "machine.ServiceEvent")
|
||||
proto.RegisterType((*ServiceHealth)(nil), "machine.ServiceHealth")
|
||||
proto.RegisterType((*ServiceStartRequest)(nil), "machine.ServiceStartRequest")
|
||||
proto.RegisterType((*ServiceStartResponse)(nil), "machine.ServiceStartResponse")
|
||||
proto.RegisterType((*ServiceStartReply)(nil), "machine.ServiceStartReply")
|
||||
proto.RegisterType((*ServiceStopRequest)(nil), "machine.ServiceStopRequest")
|
||||
proto.RegisterType((*ServiceStopResponse)(nil), "machine.ServiceStopResponse")
|
||||
proto.RegisterType((*ServiceStopReply)(nil), "machine.ServiceStopReply")
|
||||
proto.RegisterType((*ServiceRestartRequest)(nil), "machine.ServiceRestartRequest")
|
||||
proto.RegisterType((*ServiceRestartResponse)(nil), "machine.ServiceRestartResponse")
|
||||
proto.RegisterType((*ServiceRestartReply)(nil), "machine.ServiceRestartReply")
|
||||
proto.RegisterType((*StartRequest)(nil), "machine.StartRequest")
|
||||
proto.RegisterType((*StartReply)(nil), "machine.StartReply")
|
||||
proto.RegisterType((*StopRequest)(nil), "machine.StopRequest")
|
||||
proto.RegisterType((*StopReply)(nil), "machine.StopReply")
|
||||
proto.RegisterType((*StreamingData)(nil), "machine.StreamingData")
|
||||
proto.RegisterType((*CopyOutRequest)(nil), "machine.CopyOutRequest")
|
||||
proto.RegisterType((*LSRequest)(nil), "machine.LSRequest")
|
||||
proto.RegisterType((*FileInfo)(nil), "machine.FileInfo")
|
||||
proto.RegisterType((*MountsResponse)(nil), "machine.MountsResponse")
|
||||
proto.RegisterType((*MountsReply)(nil), "machine.MountsReply")
|
||||
proto.RegisterType((*MountStat)(nil), "machine.MountStat")
|
||||
proto.RegisterType((*VersionResponse)(nil), "machine.VersionResponse")
|
||||
proto.RegisterType((*VersionReply)(nil), "machine.VersionReply")
|
||||
proto.RegisterType((*VersionInfo)(nil), "machine.VersionInfo")
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("machine/machine.proto", fileDescriptor_84b4f59d98cc997c) }
|
||||
|
||||
var fileDescriptor_84b4f59d98cc997c = []byte{
|
||||
// 1379 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x6d, 0x6f, 0x13, 0xc7,
|
||||
0x13, 0x97, 0xed, 0x38, 0xb6, 0xc7, 0x89, 0xc3, 0x7f, 0x49, 0xc2, 0x61, 0x02, 0x81, 0x83, 0x7f,
|
||||
0x41, 0x54, 0x38, 0x3c, 0xa8, 0xa5, 0x2d, 0xa5, 0x15, 0x49, 0x68, 0x8b, 0x20, 0x40, 0xcf, 0xd0,
|
||||
0x17, 0x6d, 0x55, 0x6b, 0x6d, 0x6f, 0x7c, 0x2b, 0xee, 0x6e, 0xaf, 0xb7, 0xeb, 0x20, 0x57, 0xfd,
|
||||
0x00, 0x55, 0xbf, 0x41, 0x5f, 0xf3, 0x65, 0xfa, 0xb1, 0xaa, 0x7d, 0xb8, 0xf3, 0x9e, 0xed, 0x8b,
|
||||
0xa2, 0x84, 0x57, 0xde, 0x87, 0xb9, 0x99, 0xdf, 0x6f, 0x66, 0x76, 0x76, 0xd6, 0xb0, 0x11, 0xe2,
|
||||
0x81, 0x4f, 0x23, 0xb2, 0x63, 0x7e, 0x3b, 0x71, 0xc2, 0x04, 0x43, 0x60, 0xa6, 0x38, 0xa6, 0xed,
|
||||
0x4b, 0x23, 0xc6, 0x46, 0x01, 0xd9, 0x51, 0x3b, 0xfd, 0xf1, 0xe1, 0x0e, 0x09, 0x63, 0x31, 0xd1,
|
||||
0x82, 0xed, 0xed, 0xd9, 0x4d, 0x41, 0x43, 0xc2, 0x05, 0x0e, 0x63, 0x23, 0x70, 0x7e, 0xc0, 0xc2,
|
||||
0x90, 0x45, 0x3b, 0xfa, 0x47, 0x2f, 0xba, 0xbb, 0xd0, 0xf2, 0x48, 0x9f, 0x31, 0xe1, 0x11, 0x1e,
|
||||
0xb3, 0x88, 0x13, 0x74, 0x17, 0xea, 0x21, 0x11, 0x78, 0x88, 0x05, 0x76, 0x4a, 0x57, 0x4b, 0xb7,
|
||||
0x9a, 0xf7, 0xd7, 0x3b, 0xe6, 0x93, 0x97, 0x6c, 0x48, 0x0e, 0xcc, 0x9e, 0x97, 0x49, 0xb9, 0x4f,
|
||||
0xa1, 0x99, 0xea, 0x88, 0x83, 0x09, 0xfa, 0x1c, 0xea, 0x89, 0x51, 0xe6, 0x94, 0xae, 0x56, 0x6e,
|
||||
0x35, 0xef, 0xb7, 0x3b, 0x53, 0x12, 0x9d, 0xbc, 0x39, 0x2f, 0x93, 0x75, 0x9f, 0xc0, 0xaa, 0x47,
|
||||
0x38, 0x39, 0x0b, 0x92, 0x3d, 0x00, 0xa3, 0x42, 0x02, 0xf9, 0x6c, 0x0e, 0xc8, 0xc5, 0x3c, 0x10,
|
||||
0xcb, 0x98, 0x85, 0x63, 0x1f, 0xce, 0x75, 0xfd, 0xb1, 0x18, 0xb2, 0xf7, 0xd1, 0x19, 0xa0, 0x3c,
|
||||
0x83, 0xd5, 0xa9, 0x16, 0x89, 0xe6, 0x8b, 0x39, 0x34, 0x5b, 0x36, 0x9a, 0x59, 0x93, 0x16, 0xa0,
|
||||
0x4f, 0xa0, 0xf5, 0x36, 0x1e, 0x25, 0x78, 0x48, 0x3c, 0xf2, 0xfb, 0x98, 0x70, 0x81, 0xd6, 0xa1,
|
||||
0x4a, 0x43, 0x3c, 0x22, 0x0a, 0x4b, 0xc3, 0xd3, 0x13, 0xf7, 0x2d, 0xac, 0x65, 0x72, 0xa7, 0xc5,
|
||||
0x8d, 0xce, 0x41, 0x05, 0x0f, 0xde, 0x39, 0x65, 0xa5, 0x58, 0x0e, 0xdd, 0xef, 0x61, 0x25, 0x53,
|
||||
0x2b, 0x89, 0x3c, 0x9c, 0x23, 0x72, 0xc9, 0x26, 0x32, 0x03, 0xc1, 0xe2, 0xf1, 0x27, 0x9c, 0xef,
|
||||
0x92, 0xe4, 0x88, 0x0e, 0xc8, 0x0b, 0xca, 0xcf, 0x10, 0x66, 0xf4, 0x00, 0xea, 0x5c, 0x2b, 0xe2,
|
||||
0x4e, 0x59, 0x21, 0xb8, 0x90, 0x73, 0xa5, 0xde, 0x7b, 0x16, 0x1d, 0x32, 0x2f, 0x13, 0x74, 0x5f,
|
||||
0xc1, 0xb9, 0x9c, 0x75, 0x49, 0xe5, 0xd1, 0x1c, 0x95, 0xed, 0x05, 0x8a, 0x6c, 0xb4, 0x16, 0x9d,
|
||||
0x7f, 0x4a, 0xd0, 0xb4, 0x4c, 0xa1, 0x16, 0x94, 0xe9, 0xd0, 0x44, 0xa4, 0x4c, 0x87, 0x32, 0x48,
|
||||
0x5c, 0x60, 0x41, 0x8c, 0x2f, 0xf5, 0x04, 0xdd, 0x83, 0x65, 0x72, 0x44, 0x22, 0xc1, 0x9d, 0x8a,
|
||||
0xe2, 0x7a, 0x71, 0x81, 0xc1, 0xa7, 0x4a, 0xc0, 0x33, 0x82, 0xf2, 0x13, 0x9f, 0xe0, 0x40, 0xf8,
|
||||
0xce, 0x52, 0xe1, 0x27, 0x3f, 0x28, 0x01, 0xcf, 0x08, 0xca, 0xb3, 0x94, 0xd3, 0x85, 0xee, 0x66,
|
||||
0x66, 0x35, 0x4f, 0xa7, 0xc8, 0x6c, 0x6a, 0xd5, 0xed, 0xc3, 0x8a, 0xbd, 0x2e, 0x13, 0x23, 0xe4,
|
||||
0x23, 0xc3, 0x4f, 0x0e, 0x0b, 0x08, 0xde, 0x86, 0x72, 0x46, 0xae, 0xdd, 0xd1, 0x45, 0xa9, 0x93,
|
||||
0x16, 0xa5, 0xce, 0x9b, 0xb4, 0x28, 0x79, 0x65, 0xc1, 0xdd, 0x0f, 0xa5, 0x0c, 0xa7, 0x26, 0x80,
|
||||
0x1c, 0xa8, 0x8d, 0xa3, 0x77, 0x11, 0x7b, 0x1f, 0x29, 0x4b, 0x75, 0x2f, 0x9d, 0xca, 0x1d, 0x4d,
|
||||
0x6e, 0xa2, 0xec, 0xd5, 0xbd, 0x74, 0x8a, 0xae, 0xc1, 0x4a, 0x80, 0xb9, 0xe8, 0x85, 0x84, 0x73,
|
||||
0x79, 0x28, 0x2a, 0x0a, 0x4e, 0x53, 0xae, 0x1d, 0xe8, 0x25, 0xf4, 0x08, 0xd4, 0xb4, 0x37, 0xf0,
|
||||
0x71, 0x34, 0x22, 0xc6, 0x8f, 0xc7, 0xa1, 0x03, 0x29, 0xbe, 0xa7, 0xa4, 0xdd, 0xff, 0x67, 0x79,
|
||||
0xdb, 0x15, 0x38, 0x11, 0xe9, 0x21, 0x9c, 0x89, 0xb7, 0xfb, 0x2b, 0xac, 0xe7, 0xc5, 0x4e, 0x9d,
|
||||
0xdf, 0x08, 0x96, 0x64, 0x96, 0x19, 0xbf, 0xaa, 0xb1, 0xfb, 0x23, 0xfc, 0x2f, 0xaf, 0x5d, 0xe6,
|
||||
0xef, 0xd7, 0x73, 0xf9, 0x7b, 0x75, 0x41, 0x5c, 0x73, 0x70, 0xac, 0x04, 0xbe, 0x01, 0x28, 0x93,
|
||||
0x60, 0x71, 0x11, 0xad, 0x5f, 0x2c, 0xf6, 0x52, 0xea, 0xa3, 0xb2, 0x9a, 0x1e, 0x4a, 0xad, 0xfc,
|
||||
0xe4, 0x87, 0xd2, 0x06, 0x63, 0x71, 0xba, 0x09, 0x1b, 0x46, 0xc0, 0x93, 0x91, 0x2c, 0x8e, 0xd6,
|
||||
0x6f, 0xb0, 0x39, 0x2b, 0xf8, 0x51, 0x99, 0xbd, 0xcd, 0xdc, 0x96, 0xe9, 0x97, 0xe4, 0xbe, 0x99,
|
||||
0x23, 0xe7, 0x2e, 0x20, 0x37, 0x03, 0xc9, 0xe2, 0xe7, 0xc2, 0xca, 0x71, 0x49, 0xf8, 0x55, 0xd9,
|
||||
0x29, 0xb9, 0x37, 0x00, 0xac, 0x1c, 0x49, 0xc1, 0x95, 0xa6, 0xe0, 0x94, 0xd4, 0x35, 0x68, 0x1e,
|
||||
0x13, 0x76, 0x25, 0x72, 0x1d, 0x1a, 0xd3, 0xb0, 0x14, 0xe9, 0x79, 0x0c, 0xab, 0x5d, 0x91, 0x10,
|
||||
0x1c, 0xd2, 0x68, 0xb4, 0x2f, 0xbd, 0xb1, 0x0e, 0xd5, 0xfe, 0x44, 0x10, 0xae, 0x24, 0x57, 0x3c,
|
||||
0x3d, 0x41, 0x9b, 0xb0, 0x4c, 0x92, 0x84, 0x25, 0xdc, 0x78, 0xc9, 0xcc, 0xdc, 0x3b, 0xd0, 0xda,
|
||||
0x63, 0xf1, 0xe4, 0xd5, 0x38, 0xa3, 0x74, 0x09, 0x1a, 0x09, 0x63, 0xa2, 0x17, 0x63, 0xe1, 0x1b,
|
||||
0x6b, 0x75, 0xb9, 0xf0, 0x1a, 0x0b, 0xdf, 0xed, 0x43, 0xe3, 0x45, 0x37, 0x95, 0x94, 0x90, 0x18,
|
||||
0x13, 0x19, 0x24, 0xc6, 0x84, 0x2c, 0x13, 0x09, 0x19, 0x8c, 0x13, 0x4e, 0xd2, 0x32, 0x61, 0xa6,
|
||||
0xe8, 0x26, 0xac, 0xe9, 0x21, 0x65, 0x51, 0x6f, 0x48, 0x62, 0xe1, 0xab, 0x4a, 0x51, 0xf5, 0x5a,
|
||||
0xd9, 0xf2, 0xbe, 0x5c, 0x75, 0xff, 0x2d, 0x41, 0xfd, 0x3b, 0x1a, 0xe8, 0xaa, 0x8e, 0x60, 0x29,
|
||||
0xc2, 0x61, 0x7a, 0xd3, 0xaa, 0xb1, 0x5c, 0xe3, 0xf4, 0x0f, 0x6d, 0xa0, 0xe2, 0xa9, 0xb1, 0x5c,
|
||||
0x0b, 0xd9, 0x50, 0x17, 0x9f, 0x55, 0x4f, 0x8d, 0x51, 0x1b, 0xea, 0x21, 0x1b, 0xd2, 0x43, 0x4a,
|
||||
0x86, 0xaa, 0xe4, 0x54, 0xbc, 0x6c, 0x8e, 0x36, 0x60, 0x99, 0xf2, 0xde, 0x90, 0x26, 0x4e, 0x55,
|
||||
0xc1, 0xac, 0x52, 0xbe, 0x4f, 0x13, 0xe9, 0x3c, 0xe5, 0x18, 0x67, 0x59, 0xd7, 0x54, 0x35, 0x91,
|
||||
0xca, 0x03, 0x1a, 0xbd, 0x73, 0x6a, 0x1a, 0x84, 0x1c, 0xa3, 0xeb, 0xb0, 0x9a, 0x90, 0x00, 0x0b,
|
||||
0x7a, 0x44, 0x7a, 0x0a, 0x61, 0x5d, 0x6d, 0xae, 0xa4, 0x8b, 0x2f, 0x71, 0x48, 0x5c, 0x06, 0xad,
|
||||
0x03, 0x36, 0x96, 0x97, 0xc9, 0xe9, 0xb3, 0xfb, 0x53, 0x5d, 0xe6, 0xd3, 0xab, 0x76, 0xc3, 0xce,
|
||||
0x57, 0xa5, 0xbc, 0x2b, 0xb0, 0xd0, 0xd5, 0x9f, 0xcb, 0x5e, 0x30, 0x35, 0x78, 0x82, 0x5e, 0x30,
|
||||
0x8f, 0x2d, 0xd7, 0x2a, 0x34, 0x32, 0xd5, 0xe8, 0x0a, 0xc0, 0x21, 0x0d, 0x08, 0x9f, 0x70, 0x41,
|
||||
0x42, 0x13, 0x08, 0x6b, 0x25, 0x17, 0x8e, 0x25, 0x13, 0x8e, 0x2d, 0x68, 0xe0, 0x23, 0x4c, 0x03,
|
||||
0xdc, 0x0f, 0x74, 0x4c, 0x96, 0xbc, 0xe9, 0x02, 0xba, 0x0c, 0x10, 0x4a, 0xf5, 0x64, 0xd8, 0x63,
|
||||
0x91, 0x0a, 0x4d, 0xc3, 0x6b, 0x98, 0x95, 0x57, 0x91, 0x7b, 0x04, 0x6b, 0x3f, 0x11, 0x95, 0x10,
|
||||
0x67, 0x70, 0xdb, 0x3d, 0xa8, 0x1d, 0x69, 0x25, 0x8b, 0x7a, 0x14, 0xa3, 0x5f, 0xf5, 0x28, 0xa9,
|
||||
0x9c, 0xec, 0xb4, 0x32, 0xbb, 0x27, 0xe8, 0xb4, 0x66, 0x30, 0x5a, 0xee, 0xfb, 0xbb, 0x04, 0x4d,
|
||||
0xcb, 0x82, 0xbc, 0xbb, 0x05, 0xce, 0xee, 0x6e, 0x81, 0x47, 0x72, 0x85, 0xfb, 0x38, 0x6d, 0xf3,
|
||||
0xb8, 0xaf, 0x8f, 0xed, 0x98, 0x06, 0xc2, 0x5c, 0x9f, 0x7a, 0x22, 0x3d, 0x35, 0x62, 0xbd, 0x94,
|
||||
0x88, 0xf1, 0xd4, 0x88, 0x19, 0xe5, 0xb2, 0x6a, 0x30, 0xae, 0x32, 0xb8, 0xe1, 0x95, 0x19, 0x97,
|
||||
0xa1, 0xc0, 0xc9, 0xc0, 0x37, 0xd9, 0xab, 0xc6, 0xf7, 0x3f, 0xd4, 0xa0, 0x76, 0xa0, 0x51, 0xa3,
|
||||
0x5d, 0xa8, 0x99, 0xd3, 0x8e, 0x72, 0x89, 0x90, 0x2f, 0x01, 0xed, 0x7c, 0x87, 0x63, 0x57, 0x97,
|
||||
0xbb, 0x25, 0xf4, 0x25, 0x2c, 0xeb, 0xbc, 0x41, 0x9b, 0x73, 0x17, 0xf8, 0x53, 0xf9, 0x20, 0x6a,
|
||||
0x5f, 0x58, 0x94, 0x63, 0xd2, 0xa1, 0x0f, 0xa0, 0xfc, 0xa2, 0x8b, 0x72, 0x19, 0x9c, 0x55, 0x93,
|
||||
0xf6, 0xba, 0xbd, 0x9c, 0x9e, 0x7f, 0x6d, 0x4f, 0xbf, 0x59, 0x4e, 0x66, 0xcf, 0x7e, 0x0a, 0x3d,
|
||||
0x84, 0xaa, 0x7a, 0x65, 0x14, 0x7e, 0xb9, 0xb9, 0xe0, 0x41, 0x22, 0x3f, 0x7c, 0x0c, 0xf5, 0xf4,
|
||||
0x41, 0x50, 0xf8, 0xed, 0xc5, 0xc5, 0xcf, 0x07, 0xf9, 0xf9, 0xb7, 0x50, 0x33, 0x6d, 0x78, 0xde,
|
||||
0xcd, 0xf9, 0x67, 0x44, 0xdb, 0x59, 0xb8, 0x27, 0x15, 0xec, 0x65, 0xad, 0xad, 0x6c, 0x7e, 0x0b,
|
||||
0x21, 0x6c, 0x15, 0x76, 0xcb, 0x52, 0xc9, 0xcb, 0xac, 0x83, 0x54, 0xd7, 0x11, 0xda, 0x2e, 0xee,
|
||||
0x4d, 0x34, 0x9e, 0xcb, 0xc5, 0x02, 0x52, 0xdf, 0xf3, 0x0c, 0x94, 0xbc, 0x95, 0xd0, 0x95, 0xc2,
|
||||
0xae, 0x40, 0x6b, 0xdb, 0x2a, 0xdc, 0x97, 0xca, 0xde, 0x40, 0x2b, 0x7f, 0xd9, 0xa2, 0x6b, 0xc7,
|
||||
0x5d, 0xc4, 0x5a, 0xe5, 0xf6, 0x71, 0x22, 0xfa, 0x7a, 0xaf, 0x6a, 0xae, 0xf9, 0xfe, 0xda, 0xd6,
|
||||
0xb1, 0xb9, 0x60, 0x27, 0x0e, 0x26, 0x6e, 0xe5, 0xaf, 0x72, 0x09, 0x3d, 0x82, 0x25, 0xc5, 0x2d,
|
||||
0xff, 0x9e, 0xb1, 0x48, 0x6d, 0xcc, 0x6f, 0x58, 0x1f, 0xd7, 0xd2, 0x73, 0x59, 0x14, 0x30, 0x67,
|
||||
0x61, 0xfd, 0x88, 0x83, 0xc9, 0xee, 0x73, 0x58, 0x1b, 0xb0, 0x30, 0xdd, 0xee, 0xe0, 0x98, 0xee,
|
||||
0x82, 0x39, 0xb5, 0x4f, 0x62, 0xfa, 0xba, 0xf4, 0xf3, 0xed, 0x11, 0x15, 0xfe, 0xb8, 0x2f, 0xab,
|
||||
0xde, 0x8e, 0xc0, 0x01, 0xe3, 0x77, 0x74, 0xf9, 0xe5, 0x7a, 0xb6, 0x83, 0x63, 0x9a, 0xfe, 0x75,
|
||||
0xd1, 0x5f, 0x56, 0x66, 0x1f, 0xfc, 0x17, 0x00, 0x00, 0xff, 0xff, 0x31, 0xe8, 0x4c, 0xb0, 0xd4,
|
||||
0x10, 0x00, 0x00,
|
||||
// 1371 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xfd, 0x6e, 0x13, 0x47,
|
||||
0x10, 0x97, 0xed, 0xf8, 0x6b, 0x9c, 0x38, 0xb0, 0xf9, 0xa8, 0x31, 0xe1, 0xeb, 0xa0, 0x05, 0x21,
|
||||
0xc5, 0x41, 0x01, 0x2a, 0x0a, 0x6d, 0x05, 0x21, 0x20, 0xaa, 0x26, 0x01, 0x9d, 0x4b, 0xff, 0x68,
|
||||
0xab, 0x5a, 0x6b, 0x7b, 0x63, 0xaf, 0xb8, 0xbb, 0xbd, 0xde, 0xae, 0x83, 0x5c, 0xf5, 0x01, 0xaa,
|
||||
0xfe, 0xdb, 0x47, 0xe8, 0xcb, 0xf4, 0x35, 0xfa, 0x26, 0xd5, 0x7e, 0xdc, 0x7a, 0x7d, 0xce, 0x01,
|
||||
0x22, 0xfc, 0xe5, 0xdd, 0xd9, 0xd9, 0x99, 0xdf, 0x6f, 0x67, 0x76, 0x76, 0xce, 0xb0, 0x11, 0xe2,
|
||||
0xc1, 0x98, 0x46, 0x64, 0xc7, 0xfc, 0x76, 0xe2, 0x84, 0x09, 0x86, 0xaa, 0x66, 0xda, 0xbe, 0x38,
|
||||
0x62, 0x6c, 0x14, 0x90, 0x1d, 0x25, 0xee, 0x4f, 0x8e, 0x77, 0x48, 0x18, 0x8b, 0xa9, 0xd6, 0x6a,
|
||||
0x5f, 0xc9, 0x2e, 0x0a, 0x1a, 0x12, 0x2e, 0x70, 0x18, 0x1b, 0x85, 0xb5, 0x01, 0x0b, 0x43, 0x16,
|
||||
0xed, 0xe8, 0x1f, 0x2d, 0xf4, 0xf6, 0xa0, 0xe9, 0x93, 0x3e, 0x63, 0xc2, 0x27, 0x3c, 0x66, 0x11,
|
||||
0x27, 0xe8, 0x0e, 0xd4, 0x42, 0x22, 0xf0, 0x10, 0x0b, 0xdc, 0x2a, 0x5c, 0x2d, 0xdc, 0x6a, 0xec,
|
||||
0xae, 0x77, 0xcc, 0x96, 0x23, 0x36, 0x24, 0x87, 0x66, 0xcd, 0xb7, 0x5a, 0xde, 0x1e, 0x34, 0x52,
|
||||
0x1b, 0x71, 0x30, 0x45, 0x77, 0xa1, 0x96, 0x18, 0x63, 0xad, 0xc2, 0xd5, 0xd2, 0xad, 0xc6, 0xee,
|
||||
0x67, 0x9d, 0x94, 0xd0, 0xbc, 0x2f, 0xdf, 0x2a, 0x7a, 0x4f, 0x60, 0xc5, 0x27, 0x9c, 0x9c, 0x05,
|
||||
0xc6, 0x63, 0x00, 0x63, 0x42, 0xa2, 0xd8, 0x5d, 0x40, 0xb1, 0xe9, 0xa0, 0x70, 0x3c, 0x39, 0x20,
|
||||
0xf6, 0xe1, 0x5c, 0x77, 0x3c, 0x11, 0x43, 0xf6, 0x36, 0x3a, 0x03, 0x8e, 0xe7, 0xb0, 0x32, 0xb3,
|
||||
0x22, 0xa1, 0xdc, 0x5f, 0x80, 0x72, 0xc1, 0x42, 0xc9, 0xfa, 0x73, 0xd0, 0x7c, 0x01, 0xcd, 0xd7,
|
||||
0xf1, 0x28, 0xc1, 0x43, 0xe2, 0x93, 0xdf, 0x26, 0x84, 0x0b, 0xb4, 0x0e, 0x65, 0x1a, 0xe2, 0x11,
|
||||
0x51, 0x40, 0xea, 0xbe, 0x9e, 0x78, 0xaf, 0x61, 0xd5, 0xea, 0x7d, 0x2c, 0x68, 0x74, 0x0e, 0x4a,
|
||||
0x78, 0xf0, 0xa6, 0x55, 0x54, 0x86, 0xe5, 0xd0, 0xdb, 0x87, 0x65, 0x6b, 0x56, 0xb2, 0xb8, 0xb7,
|
||||
0xc0, 0xa2, 0x65, 0x59, 0x64, 0xfc, 0x3b, 0x24, 0xa6, 0xb0, 0xd6, 0x25, 0xc9, 0x09, 0x1d, 0x90,
|
||||
0x03, 0xca, 0xcf, 0x10, 0x5d, 0xb9, 0x83, 0x6b, 0x43, 0xbc, 0x55, 0x54, 0xee, 0xd7, 0x67, 0x87,
|
||||
0xa8, 0x17, 0xbe, 0x8b, 0x8e, 0x99, 0x6f, 0xb5, 0xbc, 0x03, 0x38, 0x37, 0xe7, 0x5a, 0x92, 0x78,
|
||||
0xb0, 0x40, 0x62, 0x2b, 0x6b, 0xc5, 0xc5, 0xe9, 0x10, 0xf9, 0xbb, 0x00, 0x0d, 0xc7, 0x0f, 0x6a,
|
||||
0x42, 0x91, 0x0e, 0x4d, 0x20, 0x8a, 0x74, 0x28, 0x63, 0xc3, 0x05, 0x16, 0xc4, 0x1c, 0xa1, 0x9e,
|
||||
0xa0, 0x0e, 0x54, 0xc8, 0x09, 0x89, 0x04, 0x6f, 0x95, 0x14, 0xcb, 0xcd, 0xac, 0xb7, 0x67, 0x6a,
|
||||
0xd5, 0x37, 0x5a, 0x52, 0x7f, 0x4c, 0x70, 0x20, 0xc6, 0xad, 0xa5, 0xd3, 0xf5, 0x5f, 0xa8, 0x55,
|
||||
0xdf, 0x68, 0x79, 0xdf, 0xc2, 0xca, 0x9c, 0x21, 0xb4, 0x6d, 0x1d, 0x6a, 0x7a, 0x1b, 0xa7, 0x3a,
|
||||
0x4c, 0xfd, 0x79, 0x7d, 0x58, 0x76, 0xe5, 0x32, 0x0d, 0x42, 0x3e, 0x32, 0xb4, 0xe4, 0x30, 0x87,
|
||||
0xd7, 0x6d, 0x28, 0x5a, 0x4e, 0xed, 0x8e, 0xae, 0x3c, 0x9d, 0xb4, 0xf2, 0x74, 0x7e, 0x48, 0x2b,
|
||||
0x8f, 0x5f, 0x14, 0xdc, 0xfb, 0xa7, 0x60, 0x41, 0x6a, 0xf4, 0xa8, 0x05, 0xd5, 0x49, 0xf4, 0x26,
|
||||
0x62, 0x6f, 0x23, 0xe5, 0xa9, 0xe6, 0xa7, 0x53, 0xb9, 0xa2, 0x99, 0x4d, 0x95, 0xbf, 0x9a, 0x9f,
|
||||
0x4e, 0xd1, 0x35, 0x58, 0x0e, 0x30, 0x17, 0xbd, 0x90, 0x70, 0x2e, 0xaf, 0x40, 0x49, 0xc1, 0x69,
|
||||
0x48, 0xd9, 0xa1, 0x16, 0xa1, 0x47, 0xa0, 0xa6, 0xbd, 0xc1, 0x18, 0x47, 0x23, 0x62, 0x4e, 0xf0,
|
||||
0x5d, 0xe8, 0x40, 0xaa, 0x3f, 0x55, 0xda, 0xde, 0xe7, 0x36, 0x51, 0xbb, 0x02, 0x27, 0x22, 0xbd,
|
||||
0x72, 0x99, 0x30, 0x7b, 0xbf, 0xc0, 0xfa, 0xbc, 0xda, 0x47, 0x27, 0x34, 0x82, 0x25, 0x99, 0x5c,
|
||||
0xe6, 0x5c, 0xd5, 0xd8, 0x3b, 0x82, 0xf3, 0xf3, 0xd6, 0x65, 0xce, 0x7e, 0xb5, 0x90, 0xb3, 0x97,
|
||||
0xb2, 0x41, 0x9d, 0xc3, 0xe2, 0x24, 0xed, 0x0d, 0x40, 0x56, 0x83, 0xc5, 0x79, 0x9c, 0x7e, 0x76,
|
||||
0xa8, 0x4b, 0xad, 0x4f, 0x4a, 0x69, 0x76, 0x0b, 0xb5, 0xf1, 0x0f, 0xbc, 0x85, 0x2e, 0x12, 0x87,
|
||||
0xd0, 0x4d, 0xd8, 0x30, 0x0a, 0xbe, 0x8c, 0x61, 0x7e, 0x9c, 0x7e, 0x85, 0xcd, 0xac, 0xe2, 0x27,
|
||||
0xa5, 0xe5, 0xdb, 0x33, 0xb3, 0xf6, 0x25, 0xb3, 0x47, 0x0b, 0xcc, 0xae, 0x64, 0x99, 0x65, 0xf0,
|
||||
0x38, 0xe4, 0x3c, 0x58, 0x7e, 0x57, 0xee, 0x3d, 0x2c, 0xb6, 0x0a, 0xde, 0x0d, 0x00, 0x27, 0x35,
|
||||
0x52, 0x64, 0x85, 0x19, 0x32, 0xa5, 0x75, 0x0d, 0x1a, 0xef, 0x08, 0xb8, 0x52, 0xb9, 0x0e, 0xf5,
|
||||
0x59, 0x40, 0xf2, 0xec, 0x7c, 0x03, 0x2b, 0x5d, 0x91, 0x10, 0x1c, 0xd2, 0x68, 0xb4, 0x2f, 0x8f,
|
||||
0x62, 0x1d, 0xca, 0xfd, 0xa9, 0x20, 0x5c, 0x69, 0x2e, 0xfb, 0x7a, 0x82, 0x36, 0xa1, 0x42, 0x92,
|
||||
0x84, 0x25, 0xdc, 0x1c, 0x91, 0x99, 0x79, 0xdb, 0xd0, 0x7c, 0xca, 0xe2, 0xe9, 0xcb, 0x89, 0xa5,
|
||||
0x74, 0x11, 0xea, 0x09, 0x63, 0xa2, 0x17, 0x63, 0x31, 0x36, 0xde, 0x6a, 0x52, 0xf0, 0x0a, 0x8b,
|
||||
0xb1, 0xd7, 0x87, 0xfa, 0x41, 0x37, 0xd5, 0x94, 0x90, 0x18, 0x13, 0x16, 0x12, 0x63, 0x42, 0x56,
|
||||
0x87, 0x84, 0x0c, 0x26, 0x09, 0x27, 0x69, 0x75, 0x30, 0x53, 0x74, 0x13, 0x56, 0xf5, 0x90, 0xb2,
|
||||
0xa8, 0x37, 0x24, 0xb1, 0x18, 0xab, 0x02, 0x51, 0xf6, 0x9b, 0x56, 0xbc, 0x2f, 0xa5, 0xde, 0xbf,
|
||||
0x05, 0xa8, 0x3d, 0xa7, 0x81, 0xae, 0xe1, 0x08, 0x96, 0x22, 0x1c, 0xa6, 0xcf, 0xa9, 0x1a, 0x4b,
|
||||
0x19, 0xa7, 0xbf, 0x6b, 0x07, 0x25, 0x5f, 0x8d, 0xa5, 0x2c, 0x64, 0x43, 0x5d, 0x73, 0x56, 0x7c,
|
||||
0x35, 0x46, 0x6d, 0xa8, 0x85, 0x6c, 0x48, 0x8f, 0x29, 0x19, 0xaa, 0x4a, 0x53, 0xf2, 0xed, 0x1c,
|
||||
0x6d, 0x40, 0x85, 0xf2, 0xde, 0x90, 0x26, 0xad, 0xb2, 0x82, 0x59, 0xa6, 0x7c, 0x9f, 0x26, 0xf2,
|
||||
0xf0, 0xd4, 0xc1, 0xb4, 0x2a, 0xba, 0x94, 0xaa, 0x89, 0x34, 0x1e, 0xd0, 0xe8, 0x4d, 0xab, 0xaa,
|
||||
0x41, 0xc8, 0x31, 0xba, 0x0e, 0x2b, 0x09, 0x09, 0xb0, 0xa0, 0x27, 0xa4, 0xa7, 0x10, 0xd6, 0xd4,
|
||||
0xe2, 0x72, 0x2a, 0x3c, 0xc2, 0x21, 0xf1, 0x02, 0x68, 0x1e, 0xb2, 0x89, 0x7c, 0x3d, 0x3e, 0x3e,
|
||||
0xb5, 0x6f, 0xe9, 0xea, 0x9e, 0x3e, 0xa9, 0xc8, 0x26, 0xab, 0xb2, 0xdc, 0x15, 0x58, 0xe8, 0x8a,
|
||||
0xcf, 0x65, 0x93, 0x97, 0x7a, 0x7b, 0x5f, 0x93, 0x37, 0x8f, 0xca, 0x49, 0xf0, 0x3f, 0xa0, 0x6e,
|
||||
0xed, 0xa2, 0xcb, 0x00, 0xc7, 0x34, 0x20, 0x7c, 0xca, 0x05, 0x09, 0x4d, 0x08, 0x1c, 0xc9, 0x5c,
|
||||
0x20, 0x96, 0x4c, 0x20, 0xb6, 0xa0, 0x8e, 0x4f, 0x30, 0x0d, 0x70, 0x3f, 0xd0, 0xd1, 0x58, 0xf2,
|
||||
0x67, 0x02, 0x74, 0x09, 0x20, 0x94, 0xe6, 0xc9, 0xb0, 0xc7, 0x22, 0x15, 0x94, 0xba, 0x5f, 0x37,
|
||||
0x92, 0x97, 0x91, 0xc7, 0x61, 0xf5, 0x47, 0xa2, 0x52, 0xe1, 0x0c, 0x07, 0xd6, 0x81, 0xea, 0x89,
|
||||
0x36, 0xb2, 0xd0, 0x85, 0x18, 0xe3, 0xaa, 0x0b, 0x49, 0x95, 0x64, 0x17, 0x65, 0x9d, 0xbe, 0xaf,
|
||||
0x8b, 0xca, 0xa0, 0x73, 0x0e, 0xee, 0xaf, 0x02, 0x34, 0x1c, 0xf3, 0xf2, 0x99, 0x16, 0xd8, 0x3e,
|
||||
0xd3, 0x02, 0x8f, 0xa4, 0x84, 0x8f, 0x71, 0xda, 0xbf, 0xf1, 0xb1, 0xbe, 0xaa, 0x13, 0x1a, 0x08,
|
||||
0xf3, 0x52, 0xea, 0x89, 0x3c, 0xa3, 0x11, 0xeb, 0xa5, 0x14, 0xcc, 0x19, 0x8d, 0x98, 0x31, 0x2e,
|
||||
0x2b, 0x05, 0xe3, 0x2a, 0x6b, 0xeb, 0x7e, 0x91, 0x71, 0x19, 0x04, 0x9c, 0x0c, 0xc6, 0x26, 0x63,
|
||||
0xd5, 0x78, 0xf7, 0xbf, 0x0a, 0x54, 0x0f, 0x35, 0x64, 0xf4, 0x35, 0x54, 0xcd, 0x0d, 0x47, 0xb3,
|
||||
0xf8, 0xcf, 0xdf, 0xf9, 0xb6, 0xd3, 0xc3, 0xb8, 0xb5, 0xe4, 0x4e, 0x01, 0x7d, 0x09, 0x15, 0x9d,
|
||||
0x2b, 0x68, 0x73, 0xe1, 0x95, 0x7e, 0x26, 0x3f, 0x6d, 0xda, 0xeb, 0x0b, 0x49, 0x25, 0x0f, 0x71,
|
||||
0x1b, 0x8a, 0x07, 0x5d, 0x34, 0x4b, 0x56, 0x5b, 0x35, 0xda, 0xe7, 0xad, 0x2c, 0xbd, 0xe4, 0xda,
|
||||
0x8d, 0xfe, 0xee, 0xf8, 0x00, 0x37, 0xee, 0x87, 0xcc, 0x3d, 0x28, 0xab, 0x2f, 0x85, 0xdc, 0x6d,
|
||||
0x6b, 0xd9, 0x2f, 0x0a, 0xb9, 0xeb, 0x21, 0xd4, 0xd2, 0xa6, 0x3e, 0x77, 0xe3, 0xe6, 0x29, 0xfd,
|
||||
0xbf, 0x7e, 0xea, 0xab, 0xa6, 0x95, 0x76, 0x8e, 0x73, 0xfe, 0x23, 0xa0, 0xbd, 0xb1, 0xb8, 0x20,
|
||||
0xb7, 0x3e, 0xb6, 0xed, 0xa9, 0x6c, 0x60, 0x73, 0x3d, 0x5f, 0x38, 0xbd, 0xdd, 0x95, 0x16, 0x5e,
|
||||
0xd8, 0x5e, 0x50, 0xbd, 0x30, 0x68, 0x2b, 0xa7, 0xcb, 0xd0, 0x30, 0xda, 0x39, 0xab, 0xd2, 0xd2,
|
||||
0x33, 0x8b, 0x45, 0x3e, 0x31, 0xe8, 0xe2, 0xe9, 0x8f, 0xbb, 0xb6, 0x73, 0xe1, 0xf4, 0x45, 0x69,
|
||||
0xe6, 0x08, 0x9a, 0xf3, 0x6f, 0x26, 0xba, 0x9c, 0xfb, 0x98, 0x6a, 0x63, 0x5b, 0xb9, 0xeb, 0xba,
|
||||
0xed, 0x28, 0x6b, 0x66, 0x4e, 0x53, 0xec, 0xee, 0x5e, 0xcb, 0x8a, 0xe3, 0x60, 0xea, 0x95, 0xfe,
|
||||
0x2c, 0x16, 0xd0, 0x7d, 0x58, 0x52, 0x4c, 0x9c, 0x4f, 0x0e, 0x87, 0x02, 0xca, 0x48, 0xed, 0xb6,
|
||||
0x07, 0x50, 0x4d, 0x2f, 0x56, 0x5e, 0x3c, 0x36, 0x16, 0x6f, 0x7f, 0x1c, 0x4c, 0xf7, 0xbe, 0x87,
|
||||
0xd5, 0x01, 0x0b, 0xed, 0x1a, 0x8e, 0xe9, 0x1e, 0x98, 0x3b, 0xf7, 0x24, 0xa6, 0xaf, 0x0a, 0x3f,
|
||||
0xdd, 0x1e, 0x51, 0x31, 0x9e, 0xf4, 0x65, 0xb5, 0xda, 0x11, 0x38, 0x60, 0x7c, 0x5b, 0x97, 0x4d,
|
||||
0xae, 0x67, 0x3b, 0x38, 0xa6, 0xe9, 0xbf, 0x08, 0xfd, 0x8a, 0xf2, 0x79, 0xf7, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0xff, 0x16, 0x91, 0x56, 0x62, 0x5f, 0x10, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
@ -2132,7 +2131,7 @@ func NewMachineClient(cc *grpc.ClientConn) MachineClient {
|
||||
}
|
||||
|
||||
func (c *machineClient) CopyOut(ctx context.Context, in *CopyOutRequest, opts ...grpc.CallOption) (Machine_CopyOutClient, error) {
|
||||
stream, err := c.cc.NewStream(ctx, &_Machine_serviceDesc.Streams[0], "/machineapi.Machine/CopyOut", opts...)
|
||||
stream, err := c.cc.NewStream(ctx, &_Machine_serviceDesc.Streams[0], "/machine.Machine/CopyOut", opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2165,7 +2164,7 @@ func (x *machineCopyOutClient) Recv() (*StreamingData, error) {
|
||||
|
||||
func (c *machineClient) Mounts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*MountsReply, error) {
|
||||
out := new(MountsReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/Mounts", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/Mounts", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2173,7 +2172,7 @@ func (c *machineClient) Mounts(ctx context.Context, in *empty.Empty, opts ...grp
|
||||
}
|
||||
|
||||
func (c *machineClient) LS(ctx context.Context, in *LSRequest, opts ...grpc.CallOption) (Machine_LSClient, error) {
|
||||
stream, err := c.cc.NewStream(ctx, &_Machine_serviceDesc.Streams[1], "/machineapi.Machine/LS", opts...)
|
||||
stream, err := c.cc.NewStream(ctx, &_Machine_serviceDesc.Streams[1], "/machine.Machine/LS", opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2206,7 +2205,7 @@ func (x *machineLSClient) Recv() (*FileInfo, error) {
|
||||
|
||||
func (c *machineClient) Reboot(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*RebootReply, error) {
|
||||
out := new(RebootReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/Reboot", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/Reboot", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2215,7 +2214,7 @@ func (c *machineClient) Reboot(ctx context.Context, in *empty.Empty, opts ...grp
|
||||
|
||||
func (c *machineClient) Reset(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ResetReply, error) {
|
||||
out := new(ResetReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/Reset", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/Reset", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2224,7 +2223,7 @@ func (c *machineClient) Reset(ctx context.Context, in *empty.Empty, opts ...grpc
|
||||
|
||||
func (c *machineClient) Shutdown(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ShutdownReply, error) {
|
||||
out := new(ShutdownReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/Shutdown", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/Shutdown", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2233,7 +2232,7 @@ func (c *machineClient) Shutdown(ctx context.Context, in *empty.Empty, opts ...g
|
||||
|
||||
func (c *machineClient) Upgrade(ctx context.Context, in *UpgradeRequest, opts ...grpc.CallOption) (*UpgradeReply, error) {
|
||||
out := new(UpgradeReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/Upgrade", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/Upgrade", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2242,7 +2241,7 @@ func (c *machineClient) Upgrade(ctx context.Context, in *UpgradeRequest, opts ..
|
||||
|
||||
func (c *machineClient) ServiceList(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ServiceListReply, error) {
|
||||
out := new(ServiceListReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/ServiceList", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/ServiceList", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2251,7 +2250,7 @@ func (c *machineClient) ServiceList(ctx context.Context, in *empty.Empty, opts .
|
||||
|
||||
func (c *machineClient) ServiceStart(ctx context.Context, in *ServiceStartRequest, opts ...grpc.CallOption) (*ServiceStartReply, error) {
|
||||
out := new(ServiceStartReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/ServiceStart", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/ServiceStart", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2260,7 +2259,7 @@ func (c *machineClient) ServiceStart(ctx context.Context, in *ServiceStartReques
|
||||
|
||||
func (c *machineClient) ServiceStop(ctx context.Context, in *ServiceStopRequest, opts ...grpc.CallOption) (*ServiceStopReply, error) {
|
||||
out := new(ServiceStopReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/ServiceStop", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/ServiceStop", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2269,7 +2268,7 @@ func (c *machineClient) ServiceStop(ctx context.Context, in *ServiceStopRequest,
|
||||
|
||||
func (c *machineClient) ServiceRestart(ctx context.Context, in *ServiceRestartRequest, opts ...grpc.CallOption) (*ServiceRestartReply, error) {
|
||||
out := new(ServiceRestartReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/ServiceRestart", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/ServiceRestart", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2279,7 +2278,7 @@ func (c *machineClient) ServiceRestart(ctx context.Context, in *ServiceRestartRe
|
||||
// Deprecated: Do not use.
|
||||
func (c *machineClient) Start(ctx context.Context, in *StartRequest, opts ...grpc.CallOption) (*StartReply, error) {
|
||||
out := new(StartReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/Start", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/Start", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2289,7 +2288,7 @@ func (c *machineClient) Start(ctx context.Context, in *StartRequest, opts ...grp
|
||||
// Deprecated: Do not use.
|
||||
func (c *machineClient) Stop(ctx context.Context, in *StopRequest, opts ...grpc.CallOption) (*StopReply, error) {
|
||||
out := new(StopReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/Stop", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/Stop", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2298,7 +2297,7 @@ func (c *machineClient) Stop(ctx context.Context, in *StopRequest, opts ...grpc.
|
||||
|
||||
func (c *machineClient) Version(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*VersionReply, error) {
|
||||
out := new(VersionReply)
|
||||
err := c.cc.Invoke(ctx, "/machineapi.Machine/Version", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/machine.Machine/Version", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -2358,7 +2357,7 @@ func _Machine_Mounts_Handler(srv interface{}, ctx context.Context, dec func(inte
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/Mounts",
|
||||
FullMethod: "/machine.Machine/Mounts",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).Mounts(ctx, req.(*empty.Empty))
|
||||
@ -2397,7 +2396,7 @@ func _Machine_Reboot_Handler(srv interface{}, ctx context.Context, dec func(inte
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/Reboot",
|
||||
FullMethod: "/machine.Machine/Reboot",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).Reboot(ctx, req.(*empty.Empty))
|
||||
@ -2415,7 +2414,7 @@ func _Machine_Reset_Handler(srv interface{}, ctx context.Context, dec func(inter
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/Reset",
|
||||
FullMethod: "/machine.Machine/Reset",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).Reset(ctx, req.(*empty.Empty))
|
||||
@ -2433,7 +2432,7 @@ func _Machine_Shutdown_Handler(srv interface{}, ctx context.Context, dec func(in
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/Shutdown",
|
||||
FullMethod: "/machine.Machine/Shutdown",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).Shutdown(ctx, req.(*empty.Empty))
|
||||
@ -2451,7 +2450,7 @@ func _Machine_Upgrade_Handler(srv interface{}, ctx context.Context, dec func(int
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/Upgrade",
|
||||
FullMethod: "/machine.Machine/Upgrade",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).Upgrade(ctx, req.(*UpgradeRequest))
|
||||
@ -2469,7 +2468,7 @@ func _Machine_ServiceList_Handler(srv interface{}, ctx context.Context, dec func
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/ServiceList",
|
||||
FullMethod: "/machine.Machine/ServiceList",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).ServiceList(ctx, req.(*empty.Empty))
|
||||
@ -2487,7 +2486,7 @@ func _Machine_ServiceStart_Handler(srv interface{}, ctx context.Context, dec fun
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/ServiceStart",
|
||||
FullMethod: "/machine.Machine/ServiceStart",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).ServiceStart(ctx, req.(*ServiceStartRequest))
|
||||
@ -2505,7 +2504,7 @@ func _Machine_ServiceStop_Handler(srv interface{}, ctx context.Context, dec func
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/ServiceStop",
|
||||
FullMethod: "/machine.Machine/ServiceStop",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).ServiceStop(ctx, req.(*ServiceStopRequest))
|
||||
@ -2523,7 +2522,7 @@ func _Machine_ServiceRestart_Handler(srv interface{}, ctx context.Context, dec f
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/ServiceRestart",
|
||||
FullMethod: "/machine.Machine/ServiceRestart",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).ServiceRestart(ctx, req.(*ServiceRestartRequest))
|
||||
@ -2541,7 +2540,7 @@ func _Machine_Start_Handler(srv interface{}, ctx context.Context, dec func(inter
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/Start",
|
||||
FullMethod: "/machine.Machine/Start",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).Start(ctx, req.(*StartRequest))
|
||||
@ -2559,7 +2558,7 @@ func _Machine_Stop_Handler(srv interface{}, ctx context.Context, dec func(interf
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/Stop",
|
||||
FullMethod: "/machine.Machine/Stop",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).Stop(ctx, req.(*StopRequest))
|
||||
@ -2577,7 +2576,7 @@ func _Machine_Version_Handler(srv interface{}, ctx context.Context, dec func(int
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/machineapi.Machine/Version",
|
||||
FullMethod: "/machine.Machine/Version",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MachineServer).Version(ctx, req.(*empty.Empty))
|
||||
@ -2586,7 +2585,7 @@ func _Machine_Version_Handler(srv interface{}, ctx context.Context, dec func(int
|
||||
}
|
||||
|
||||
var _Machine_serviceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "machineapi.Machine",
|
||||
ServiceName: "machine.Machine",
|
||||
HandlerType: (*MachineServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
|
@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package machineapi;
|
||||
package machine;
|
||||
|
||||
option go_package = "github.com/talos-systems/talos/api/machine";
|
||||
option java_multiple_files = true;
|
||||
|
453
api/os/os.pb.go
453
api/os/os.pb.go
@ -7,20 +7,12 @@ import (
|
||||
context "context"
|
||||
fmt "fmt"
|
||||
math "math"
|
||||
strings "strings"
|
||||
sync "sync"
|
||||
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
empty "github.com/golang/protobuf/ptypes/empty"
|
||||
go_multierror "github.com/hashicorp/go-multierror"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
credentials "google.golang.org/grpc/credentials"
|
||||
metadata "google.golang.org/grpc/metadata"
|
||||
status "google.golang.org/grpc/status"
|
||||
|
||||
common "github.com/talos-systems/talos/api/common"
|
||||
tls "github.com/talos-systems/talos/pkg/grpc/tls"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
@ -34,9 +26,6 @@ var _ = math.Inf
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
// NodeMetadata from public import common/common.proto
|
||||
type NodeMetadata = common.NodeMetadata
|
||||
|
||||
// The request message containing the containerd namespace.
|
||||
type ContainerDriver int32
|
||||
|
||||
@ -66,7 +55,7 @@ func (ContainerDriver) EnumDescriptor() ([]byte, []int) {
|
||||
type ContainersRequest struct {
|
||||
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
|
||||
// driver might be default "containerd" or "cri"
|
||||
Driver ContainerDriver `protobuf:"varint,2,opt,name=driver,proto3,enum=osapi.ContainerDriver" json:"driver,omitempty"`
|
||||
Driver ContainerDriver `protobuf:"varint,2,opt,name=driver,proto3,enum=os.ContainerDriver" json:"driver,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -445,7 +434,7 @@ type LogsRequest struct {
|
||||
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
|
||||
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
|
||||
// driver might be default "containerd" or "cri"
|
||||
Driver ContainerDriver `protobuf:"varint,3,opt,name=driver,proto3,enum=osapi.ContainerDriver" json:"driver,omitempty"`
|
||||
Driver ContainerDriver `protobuf:"varint,3,opt,name=driver,proto3,enum=os.ContainerDriver" json:"driver,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -752,7 +741,7 @@ type RestartRequest struct {
|
||||
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
|
||||
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
|
||||
// driver might be default "containerd" or "cri"
|
||||
Driver ContainerDriver `protobuf:"varint,3,opt,name=driver,proto3,enum=osapi.ContainerDriver" json:"driver,omitempty"`
|
||||
Driver ContainerDriver `protobuf:"varint,3,opt,name=driver,proto3,enum=os.ContainerDriver" json:"driver,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -899,7 +888,7 @@ func (m *RestartReply) GetResponse() []*RestartResponse {
|
||||
type StatsRequest struct {
|
||||
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
|
||||
// driver might be default "containerd" or "cri"
|
||||
Driver ContainerDriver `protobuf:"varint,2,opt,name=driver,proto3,enum=osapi.ContainerDriver" json:"driver,omitempty"`
|
||||
Driver ContainerDriver `protobuf:"varint,2,opt,name=driver,proto3,enum=os.ContainerDriver" json:"driver,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -1128,89 +1117,89 @@ func (m *Stat) GetName() string {
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterEnum("osapi.ContainerDriver", ContainerDriver_name, ContainerDriver_value)
|
||||
proto.RegisterType((*ContainersRequest)(nil), "osapi.ContainersRequest")
|
||||
proto.RegisterType((*Container)(nil), "osapi.Container")
|
||||
proto.RegisterType((*ContainerResponse)(nil), "osapi.ContainerResponse")
|
||||
proto.RegisterType((*ContainersReply)(nil), "osapi.ContainersReply")
|
||||
proto.RegisterType((*Data)(nil), "osapi.Data")
|
||||
proto.RegisterType((*DataResponse)(nil), "osapi.DataResponse")
|
||||
proto.RegisterType((*DataReply)(nil), "osapi.DataReply")
|
||||
proto.RegisterType((*LogsRequest)(nil), "osapi.LogsRequest")
|
||||
proto.RegisterType((*ProcessesRequest)(nil), "osapi.ProcessesRequest")
|
||||
proto.RegisterType((*ProcessesReply)(nil), "osapi.ProcessesReply")
|
||||
proto.RegisterType((*ProcessResponse)(nil), "osapi.ProcessResponse")
|
||||
proto.RegisterType((*Process)(nil), "osapi.Process")
|
||||
proto.RegisterType((*RestartRequest)(nil), "osapi.RestartRequest")
|
||||
proto.RegisterType((*RestartResponse)(nil), "osapi.RestartResponse")
|
||||
proto.RegisterType((*RestartReply)(nil), "osapi.RestartReply")
|
||||
proto.RegisterType((*StatsRequest)(nil), "osapi.StatsRequest")
|
||||
proto.RegisterType((*StatsResponse)(nil), "osapi.StatsResponse")
|
||||
proto.RegisterType((*StatsReply)(nil), "osapi.StatsReply")
|
||||
proto.RegisterType((*Stat)(nil), "osapi.Stat")
|
||||
proto.RegisterEnum("os.ContainerDriver", ContainerDriver_name, ContainerDriver_value)
|
||||
proto.RegisterType((*ContainersRequest)(nil), "os.ContainersRequest")
|
||||
proto.RegisterType((*Container)(nil), "os.Container")
|
||||
proto.RegisterType((*ContainerResponse)(nil), "os.ContainerResponse")
|
||||
proto.RegisterType((*ContainersReply)(nil), "os.ContainersReply")
|
||||
proto.RegisterType((*Data)(nil), "os.Data")
|
||||
proto.RegisterType((*DataResponse)(nil), "os.DataResponse")
|
||||
proto.RegisterType((*DataReply)(nil), "os.DataReply")
|
||||
proto.RegisterType((*LogsRequest)(nil), "os.LogsRequest")
|
||||
proto.RegisterType((*ProcessesRequest)(nil), "os.ProcessesRequest")
|
||||
proto.RegisterType((*ProcessesReply)(nil), "os.ProcessesReply")
|
||||
proto.RegisterType((*ProcessResponse)(nil), "os.ProcessResponse")
|
||||
proto.RegisterType((*Process)(nil), "os.Process")
|
||||
proto.RegisterType((*RestartRequest)(nil), "os.RestartRequest")
|
||||
proto.RegisterType((*RestartResponse)(nil), "os.RestartResponse")
|
||||
proto.RegisterType((*RestartReply)(nil), "os.RestartReply")
|
||||
proto.RegisterType((*StatsRequest)(nil), "os.StatsRequest")
|
||||
proto.RegisterType((*StatsResponse)(nil), "os.StatsResponse")
|
||||
proto.RegisterType((*StatsReply)(nil), "os.StatsReply")
|
||||
proto.RegisterType((*Stat)(nil), "os.Stat")
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("os/os.proto", fileDescriptor_b20a722d09fd3254) }
|
||||
|
||||
var fileDescriptor_b20a722d09fd3254 = []byte{
|
||||
// 909 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xdd, 0x6f, 0xdb, 0x36,
|
||||
0x10, 0x9f, 0x1c, 0xcb, 0x8e, 0xce, 0x8e, 0xe3, 0x32, 0x1f, 0xd0, 0xdc, 0x62, 0x48, 0x05, 0x14,
|
||||
0xcb, 0x8a, 0x4d, 0xce, 0xbc, 0x8f, 0x87, 0xa1, 0x28, 0xd0, 0xc4, 0xc5, 0x10, 0x6c, 0x4d, 0x02,
|
||||
0xb6, 0x7b, 0x19, 0x06, 0x04, 0xb4, 0xc4, 0xba, 0xc4, 0x2c, 0x91, 0x15, 0xa9, 0x6e, 0xfe, 0x4f,
|
||||
0xf6, 0xb6, 0x97, 0xfd, 0x9d, 0xc3, 0xc0, 0x0f, 0x29, 0x8a, 0x9d, 0x6d, 0x69, 0x8b, 0xed, 0x49,
|
||||
0xe4, 0xef, 0x8e, 0x77, 0xbc, 0xe3, 0xef, 0xee, 0x04, 0x3d, 0x2e, 0xc7, 0x5c, 0xc6, 0xa2, 0xe0,
|
||||
0x8a, 0x23, 0x9f, 0x4b, 0x22, 0xd8, 0xe8, 0xee, 0x9c, 0xf3, 0xf9, 0x82, 0x8e, 0x0d, 0x38, 0x2b,
|
||||
0x5f, 0x8e, 0x69, 0x26, 0xd4, 0xd2, 0xea, 0x8c, 0x76, 0x12, 0x9e, 0x65, 0x3c, 0x1f, 0xdb, 0x8f,
|
||||
0x05, 0x23, 0x02, 0x77, 0x4e, 0x78, 0xae, 0x08, 0xcb, 0x69, 0x21, 0x31, 0x7d, 0x5d, 0x52, 0xa9,
|
||||
0xd0, 0x3d, 0x08, 0x72, 0x92, 0x51, 0x29, 0x48, 0x42, 0x43, 0xef, 0xc0, 0x3b, 0x0c, 0xf0, 0x15,
|
||||
0x80, 0x62, 0xe8, 0xa4, 0x05, 0x7b, 0x43, 0x8b, 0xb0, 0x75, 0xe0, 0x1d, 0x0e, 0x26, 0xfb, 0xb1,
|
||||
0x71, 0x1e, 0xd7, 0x76, 0xa6, 0x46, 0x8a, 0x9d, 0x56, 0xf4, 0x87, 0x07, 0x41, 0x2d, 0xfb, 0x17,
|
||||
0xdb, 0x03, 0x68, 0xb1, 0xd4, 0xd8, 0x0d, 0x70, 0x8b, 0xa5, 0x68, 0x17, 0x7c, 0x96, 0x91, 0x39,
|
||||
0x0d, 0x37, 0x0c, 0x64, 0x37, 0x68, 0x08, 0x1b, 0x82, 0xa5, 0x61, 0xfb, 0xc0, 0x3b, 0xdc, 0xc2,
|
||||
0x7a, 0x89, 0xf6, 0xa1, 0x23, 0x15, 0x51, 0xa5, 0x0c, 0x7d, 0xa3, 0xe8, 0x76, 0x68, 0x0f, 0x3a,
|
||||
0x82, 0xa7, 0x97, 0x2c, 0x0d, 0x3b, 0xd6, 0x80, 0xe0, 0xe9, 0x69, 0x8a, 0x10, 0xb4, 0xb5, 0xcf,
|
||||
0xb0, 0x6b, 0x40, 0xb3, 0x8e, 0x7e, 0x69, 0x64, 0x02, 0x53, 0x29, 0x78, 0x2e, 0x29, 0x3a, 0x82,
|
||||
0xcd, 0x8c, 0x2a, 0x92, 0x12, 0x45, 0xcc, 0x65, 0x7b, 0x93, 0xdd, 0xd8, 0xe5, 0xef, 0x8c, 0xa7,
|
||||
0xf4, 0x99, 0x93, 0xe1, 0x5a, 0x0b, 0x1d, 0x01, 0x24, 0x75, 0x42, 0xc3, 0xd6, 0xc1, 0xc6, 0x61,
|
||||
0x6f, 0x32, 0x5c, 0xcd, 0x10, 0x6e, 0xe8, 0x44, 0xdf, 0xc2, 0x76, 0xf3, 0x09, 0xc4, 0x62, 0x89,
|
||||
0xbe, 0x84, 0xcd, 0xc2, 0x5d, 0x21, 0xf4, 0x8c, 0x89, 0x70, 0xcd, 0x84, 0x93, 0xe3, 0x5a, 0x33,
|
||||
0xba, 0x07, 0xed, 0xa9, 0xbe, 0xc2, 0x2e, 0xf8, 0xb3, 0xa5, 0xa2, 0xd2, 0xdc, 0xb8, 0x8f, 0xed,
|
||||
0x26, 0x4a, 0xa0, 0xaf, 0xa5, 0xef, 0x11, 0xda, 0xfd, 0xca, 0x6e, 0xcb, 0xa8, 0xf7, 0xdc, 0x95,
|
||||
0x8c, 0x55, 0xe7, 0xe4, 0x11, 0x04, 0xd6, 0x89, 0x8e, 0x62, 0xbc, 0x16, 0xc5, 0x4e, 0xf3, 0xc8,
|
||||
0x7a, 0x00, 0x3f, 0x43, 0xef, 0x7b, 0x3e, 0xbf, 0x25, 0x0d, 0x57, 0xa9, 0x72, 0x45, 0xcb, 0x8d,
|
||||
0x5b, 0xd1, 0x12, 0xc1, 0xf0, 0xa2, 0xe0, 0x09, 0x95, 0x92, 0x56, 0x1e, 0xa3, 0x29, 0x0c, 0x1a,
|
||||
0x98, 0x8e, 0x61, 0xb2, 0x16, 0x43, 0x65, 0xd7, 0x29, 0xde, 0x10, 0xc6, 0x6b, 0xd8, 0x5e, 0x11,
|
||||
0xbe, 0x43, 0xb2, 0x3f, 0x85, 0x40, 0x54, 0x57, 0x71, 0x34, 0x1a, 0xac, 0x78, 0xbe, 0x52, 0x88,
|
||||
0x7e, 0x6b, 0x41, 0xd7, 0xc1, 0x55, 0x75, 0x68, 0x37, 0xbe, 0xad, 0x0e, 0x04, 0x6d, 0x21, 0x5c,
|
||||
0xb2, 0x7c, 0x6c, 0xd6, 0x9a, 0x24, 0xba, 0x46, 0xea, 0xca, 0x32, 0x1b, 0x14, 0x42, 0x57, 0xbd,
|
||||
0x2a, 0x28, 0x49, 0xa5, 0xa9, 0x2e, 0x1f, 0x57, 0x5b, 0xf4, 0x21, 0x6c, 0x26, 0xa2, 0xbc, 0x54,
|
||||
0x2c, 0xa3, 0xa6, 0xc6, 0x3c, 0xdc, 0x4d, 0x44, 0xf9, 0x82, 0x65, 0x14, 0x3d, 0x80, 0xc1, 0x1b,
|
||||
0x56, 0xa8, 0x92, 0x2c, 0x2e, 0x33, 0x9a, 0xf1, 0x62, 0x69, 0x8a, 0xad, 0x8d, 0xb7, 0x1c, 0xfa,
|
||||
0xcc, 0x80, 0xe8, 0x63, 0xd8, 0x2e, 0xa8, 0x64, 0x29, 0xcd, 0x55, 0xa5, 0xd7, 0x35, 0x7a, 0x83,
|
||||
0x0a, 0x76, 0x8a, 0x21, 0x74, 0x75, 0x6e, 0x48, 0x9e, 0x86, 0x9b, 0xe6, 0x72, 0xd5, 0x16, 0x7d,
|
||||
0x04, 0x40, 0x7f, 0xa5, 0x49, 0xa9, 0xc8, 0x6c, 0x41, 0xc3, 0xc0, 0x08, 0x1b, 0x88, 0x0e, 0x94,
|
||||
0x14, 0x73, 0x19, 0x82, 0xad, 0x6b, 0xbd, 0x8e, 0x72, 0x18, 0x60, 0x2a, 0x15, 0x29, 0xd4, 0xff,
|
||||
0xc3, 0xab, 0x13, 0xd8, 0xae, 0xfd, 0xbd, 0xeb, 0xeb, 0x47, 0xc7, 0xd0, 0xaf, 0x8d, 0xfc, 0x33,
|
||||
0x0d, 0x57, 0x7c, 0x35, 0x68, 0xf8, 0x13, 0xf4, 0x9f, 0x2b, 0xa2, 0xfe, 0xa3, 0xae, 0x9e, 0xc2,
|
||||
0x96, 0xb3, 0xfe, 0x3e, 0xfd, 0x44, 0xb3, 0xae, 0xa2, 0x77, 0xd5, 0x4f, 0xb4, 0x59, 0xcb, 0x47,
|
||||
0x19, 0x3d, 0x06, 0x70, 0x5e, 0x74, 0x16, 0x8e, 0xd6, 0xb2, 0xb0, 0xdb, 0x38, 0x73, 0x53, 0x29,
|
||||
0xfe, 0xee, 0x41, 0x5b, 0xcb, 0xde, 0xf2, 0xcd, 0xef, 0x43, 0xdf, 0x32, 0xf4, 0xb2, 0x94, 0x7a,
|
||||
0xfa, 0xb4, 0x0d, 0x4f, 0x7b, 0x16, 0xfb, 0x41, 0x43, 0xe8, 0x2e, 0x04, 0xba, 0x1e, 0xac, 0xdc,
|
||||
0x37, 0x72, 0x5d, 0x20, 0x56, 0x78, 0xfb, 0xb1, 0xf3, 0xf0, 0x61, 0xa3, 0xfb, 0xdb, 0x14, 0xa3,
|
||||
0x01, 0xc0, 0xc9, 0xf9, 0xd9, 0x8b, 0x27, 0xa7, 0x67, 0x4f, 0xf1, 0x74, 0xf8, 0x01, 0xea, 0xc2,
|
||||
0xc6, 0x09, 0x3e, 0x1d, 0x7a, 0x93, 0x3f, 0x5b, 0xd0, 0x3a, 0x7f, 0x8e, 0x1e, 0x03, 0x5c, 0x0d,
|
||||
0x0c, 0xb4, 0x36, 0x19, 0xaa, 0x07, 0x1f, 0xed, 0xdf, 0x20, 0xd1, 0x69, 0xfc, 0x1c, 0xfc, 0x69,
|
||||
0x46, 0xe5, 0x1c, 0xed, 0xc7, 0xf6, 0x7f, 0x21, 0xae, 0xfe, 0x17, 0xe2, 0xa7, 0xfa, 0x7f, 0x61,
|
||||
0x34, 0xbc, 0xd6, 0xa6, 0xf5, 0x91, 0xaf, 0x01, 0xbe, 0x2b, 0x67, 0x34, 0xe1, 0xf9, 0x4b, 0xf6,
|
||||
0x36, 0xe7, 0x3e, 0x81, 0xb6, 0xee, 0xe8, 0x08, 0x39, 0x49, 0xa3, 0xbd, 0x8f, 0x9a, 0xf3, 0xe3,
|
||||
0xc8, 0x43, 0xdf, 0x40, 0x50, 0xf7, 0xde, 0xbf, 0xf5, 0xb0, 0x77, 0xbd, 0x05, 0x56, 0x5d, 0xfa,
|
||||
0x2b, 0xe8, 0xba, 0x3a, 0x40, 0x7b, 0xab, 0x75, 0x61, 0x9d, 0xed, 0xac, 0xc2, 0x76, 0x40, 0xf9,
|
||||
0x86, 0x38, 0x68, 0xe7, 0x3a, 0x8d, 0xec, 0x91, 0x3b, 0xd7, 0x41, 0xb1, 0x58, 0x1e, 0x3f, 0xd2,
|
||||
0xc3, 0x3d, 0x8b, 0xb9, 0x8c, 0x89, 0x60, 0xc7, 0xfe, 0xb9, 0x7c, 0x22, 0xd8, 0x85, 0xf7, 0xe3,
|
||||
0x83, 0x39, 0x53, 0xaf, 0xca, 0x99, 0xa6, 0xfb, 0x58, 0x91, 0x05, 0x97, 0x9f, 0xc9, 0xa5, 0x54,
|
||||
0x34, 0x93, 0x76, 0x37, 0x26, 0x82, 0x8d, 0xb9, 0xbc, 0xf0, 0x66, 0x1d, 0x13, 0xce, 0x17, 0x7f,
|
||||
0x05, 0x00, 0x00, 0xff, 0xff, 0x20, 0x41, 0x0c, 0xc5, 0xbc, 0x09, 0x00, 0x00,
|
||||
// 900 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x5f, 0x73, 0xdb, 0x44,
|
||||
0x10, 0x47, 0xb2, 0x65, 0x5b, 0xeb, 0xbf, 0xbd, 0xa4, 0x1d, 0xe1, 0x76, 0x3a, 0x41, 0x4c, 0x87,
|
||||
0xb4, 0x10, 0xbb, 0xa4, 0x0f, 0xc0, 0xc0, 0x0c, 0x93, 0xc6, 0x7d, 0xc8, 0x40, 0x93, 0xce, 0xb5,
|
||||
0x3c, 0xc0, 0x03, 0xe1, 0x6c, 0x5d, 0x9d, 0x1b, 0x2c, 0xdd, 0xa1, 0x3b, 0x75, 0xf0, 0x37, 0xe1,
|
||||
0x8d, 0x17, 0xbe, 0x16, 0xdf, 0x85, 0xb9, 0x3f, 0x92, 0xe5, 0xa4, 0xd0, 0xd0, 0x0e, 0x3c, 0xf9,
|
||||
0xee, 0xb7, 0xbf, 0xdb, 0xdd, 0x5b, 0xff, 0x76, 0x4f, 0xd0, 0xe5, 0x72, 0xca, 0xe5, 0x44, 0xe4,
|
||||
0x5c, 0x71, 0xe4, 0x73, 0x39, 0xbe, 0xbd, 0xe4, 0x7c, 0xb9, 0xa2, 0x53, 0x83, 0xcc, 0x8b, 0x97,
|
||||
0x53, 0x9a, 0x0a, 0xb5, 0xb6, 0x84, 0xf1, 0xce, 0x82, 0xa7, 0x29, 0xcf, 0xa6, 0xf6, 0xc7, 0x82,
|
||||
0xf1, 0x8f, 0x70, 0xe3, 0x98, 0x67, 0x8a, 0xb0, 0x8c, 0xe6, 0x12, 0xd3, 0x5f, 0x0a, 0x2a, 0x15,
|
||||
0xba, 0x03, 0x61, 0x46, 0x52, 0x2a, 0x05, 0x59, 0xd0, 0xc8, 0xdb, 0xf3, 0xf6, 0x43, 0xbc, 0x01,
|
||||
0xd0, 0xc7, 0xd0, 0x4a, 0x72, 0xf6, 0x8a, 0xe6, 0x91, 0xbf, 0xe7, 0xed, 0x0f, 0x0e, 0x77, 0x26,
|
||||
0x5c, 0x4e, 0x2a, 0x27, 0x33, 0x63, 0xc2, 0x8e, 0x12, 0xff, 0xe1, 0x41, 0x58, 0xd9, 0xde, 0xe0,
|
||||
0x78, 0x00, 0x3e, 0x4b, 0x8c, 0xd3, 0x10, 0xfb, 0x2c, 0x41, 0xbb, 0x10, 0xb0, 0x94, 0x2c, 0x69,
|
||||
0xd4, 0x30, 0x90, 0xdd, 0xa0, 0x11, 0x34, 0x04, 0x4b, 0xa2, 0xe6, 0x9e, 0xb7, 0xdf, 0xc7, 0x7a,
|
||||
0x89, 0x6e, 0x41, 0x4b, 0x2a, 0xa2, 0x0a, 0x19, 0x05, 0x86, 0xe8, 0x76, 0xe8, 0x26, 0xb4, 0x04,
|
||||
0x4f, 0xce, 0x59, 0x12, 0xb5, 0xac, 0x03, 0xc1, 0x93, 0x93, 0x04, 0x21, 0x68, 0xea, 0x98, 0x51,
|
||||
0xdb, 0x80, 0x66, 0x1d, 0xab, 0x5a, 0x19, 0x30, 0x95, 0x82, 0x67, 0x92, 0xa2, 0x87, 0xd0, 0x49,
|
||||
0xa9, 0x22, 0x09, 0x51, 0xc4, 0x24, 0xdb, 0x3d, 0xdc, 0x9d, 0xb8, 0xe2, 0x9d, 0xf2, 0x84, 0x3e,
|
||||
0x75, 0x36, 0x5c, 0xb1, 0xd0, 0x01, 0xc0, 0xa2, 0xaa, 0x66, 0xe4, 0xef, 0x35, 0xf6, 0xbb, 0x87,
|
||||
0xfd, 0xad, 0xf2, 0xe0, 0x1a, 0x21, 0x9e, 0xc1, 0xb0, 0x5e, 0x7c, 0xb1, 0x5a, 0xa3, 0x4f, 0xa1,
|
||||
0x93, 0xbb, 0xf8, 0x91, 0x67, 0xce, 0xdf, 0xdc, 0x3e, 0xef, 0x8c, 0xb8, 0xa2, 0xc5, 0x77, 0xa0,
|
||||
0x39, 0xd3, 0xc1, 0x77, 0x21, 0x98, 0xaf, 0x15, 0x95, 0x26, 0xd7, 0x1e, 0xb6, 0x9b, 0xf8, 0x27,
|
||||
0xe8, 0x69, 0xeb, 0x3b, 0x5c, 0xea, 0x6e, 0xe9, 0xd7, 0x37, 0xf4, 0x8e, 0xce, 0xc7, 0xb8, 0x74,
|
||||
0x11, 0xbe, 0x80, 0xd0, 0x46, 0xd0, 0xf9, 0x7f, 0x72, 0x25, 0xff, 0x51, 0xc5, 0xbf, 0x9a, 0xfa,
|
||||
0x05, 0x74, 0xbf, 0xe5, 0xcb, 0x6b, 0xea, 0xee, 0xb2, 0x3c, 0x36, 0x3a, 0x6c, 0xbc, 0x59, 0x87,
|
||||
0x08, 0x46, 0xcf, 0x72, 0xbe, 0xa0, 0x52, 0xd2, 0x32, 0x5c, 0x7c, 0x04, 0x83, 0x1a, 0xa6, 0xb3,
|
||||
0x9f, 0x5e, 0xc9, 0xde, 0x38, 0x75, 0xac, 0xd7, 0x5c, 0x20, 0x83, 0xe1, 0x25, 0xe3, 0x5b, 0x14,
|
||||
0xf8, 0x3e, 0x84, 0xa2, 0xcc, 0xc3, 0x89, 0xa6, 0x5b, 0x0f, 0xbb, 0xb1, 0xc6, 0xbf, 0xf9, 0xd0,
|
||||
0x76, 0x70, 0xd9, 0x08, 0x3a, 0x46, 0x60, 0x1b, 0x01, 0x41, 0x53, 0x08, 0x57, 0xa3, 0x00, 0x9b,
|
||||
0xb5, 0x56, 0x85, 0x6e, 0x87, 0xaa, 0x89, 0xcc, 0x06, 0x45, 0xd0, 0x56, 0x17, 0x39, 0x25, 0x89,
|
||||
0x34, 0x8d, 0x14, 0xe0, 0x72, 0x8b, 0xde, 0x87, 0xce, 0x42, 0x14, 0xe7, 0x8a, 0xa5, 0xd4, 0xb4,
|
||||
0x93, 0x87, 0xdb, 0x0b, 0x51, 0xbc, 0x60, 0x29, 0x45, 0xf7, 0x60, 0xf0, 0x8a, 0xe5, 0xaa, 0x20,
|
||||
0xab, 0xf3, 0x94, 0xa6, 0x3c, 0x5f, 0x9b, 0xbe, 0x6a, 0xe2, 0xbe, 0x43, 0x9f, 0x1a, 0x10, 0x7d,
|
||||
0x04, 0xc3, 0x9c, 0x4a, 0x96, 0xd0, 0x4c, 0x95, 0xbc, 0xb6, 0xe1, 0x0d, 0x4a, 0xd8, 0x11, 0x23,
|
||||
0x68, 0xeb, 0xc2, 0x90, 0x2c, 0x89, 0x3a, 0x26, 0xb9, 0x72, 0x8b, 0xee, 0x02, 0xd0, 0x5f, 0xe9,
|
||||
0xa2, 0x50, 0x64, 0xbe, 0xa2, 0x51, 0x68, 0x8c, 0x35, 0x44, 0x5f, 0x94, 0xe4, 0x4b, 0x19, 0x81,
|
||||
0x6d, 0x61, 0xbd, 0x8e, 0x7f, 0x86, 0x01, 0xa6, 0x52, 0x91, 0x5c, 0xfd, 0x0f, 0x72, 0x3a, 0x86,
|
||||
0x61, 0x15, 0xec, 0x6d, 0xff, 0xf7, 0xf8, 0x6b, 0xe8, 0x55, 0x4e, 0xfe, 0x41, 0x7d, 0x97, 0x02,
|
||||
0xd5, 0xd4, 0xf7, 0x3d, 0xf4, 0x9e, 0x2b, 0xa2, 0xfe, 0x8b, 0xb9, 0x4d, 0xa0, 0xef, 0x5c, 0xbf,
|
||||
0xcb, 0xdc, 0xd0, 0x62, 0x2b, 0x25, 0x6d, 0xe6, 0x86, 0xf6, 0x69, 0x35, 0x28, 0xe3, 0x2f, 0x01,
|
||||
0x5c, 0x08, 0x7d, 0xf9, 0x83, 0x2b, 0x97, 0xbf, 0x51, 0x1e, 0x78, 0x5d, 0xe3, 0xfd, 0xee, 0x41,
|
||||
0x53, 0xdb, 0xfe, 0xe5, 0x9f, 0xfc, 0x01, 0xf4, 0xac, 0x24, 0xcf, 0x0b, 0xa9, 0x5f, 0x96, 0xa6,
|
||||
0x11, 0x66, 0xd7, 0x62, 0xdf, 0x69, 0x08, 0xdd, 0x86, 0x50, 0x37, 0x80, 0xb5, 0x07, 0xc6, 0xae,
|
||||
0x3b, 0xc2, 0x1a, 0xaf, 0xff, 0xa4, 0x3c, 0x78, 0x50, 0x1b, 0xee, 0xb6, 0xb8, 0x68, 0x00, 0x70,
|
||||
0x7c, 0x76, 0xfa, 0xe2, 0xe8, 0xe4, 0xf4, 0x09, 0x9e, 0x8d, 0xde, 0x43, 0x6d, 0x68, 0x1c, 0xe3,
|
||||
0x93, 0x91, 0x77, 0xf8, 0xa7, 0x0f, 0xfe, 0xd9, 0x73, 0xf4, 0x39, 0xc0, 0xe6, 0x3d, 0x40, 0xdb,
|
||||
0x83, 0xbf, 0xfc, 0x93, 0xc7, 0x3b, 0x97, 0x61, 0x5d, 0xbd, 0x09, 0x04, 0xb3, 0x94, 0xca, 0x25,
|
||||
0xba, 0x35, 0xb1, 0x9f, 0x00, 0x93, 0xf2, 0x13, 0x60, 0xf2, 0x44, 0x7f, 0x02, 0x8c, 0xfb, 0x9b,
|
||||
0x29, 0xac, 0xf9, 0x8f, 0x00, 0xbe, 0x29, 0xe6, 0x74, 0xc1, 0xb3, 0x97, 0xec, 0xda, 0x87, 0x3e,
|
||||
0x84, 0xa6, 0x9e, 0xd6, 0x68, 0xa8, 0xe1, 0xda, 0xdc, 0x1e, 0x57, 0x4f, 0xc2, 0x43, 0x0f, 0x7d,
|
||||
0x06, 0x61, 0x35, 0x54, 0xff, 0xd6, 0x31, 0xaa, 0x8d, 0xb7, 0xcd, 0xec, 0x6d, 0x3b, 0xa5, 0x23,
|
||||
0xb4, 0x25, 0x7b, 0x1b, 0x63, 0xb4, 0x85, 0xe9, 0x03, 0xf7, 0x21, 0x30, 0xea, 0x40, 0xa3, 0x9a,
|
||||
0x50, 0x2c, 0x79, 0x50, 0x43, 0xc4, 0x6a, 0xfd, 0xf8, 0x2b, 0xfd, 0x2e, 0xa7, 0x1a, 0x24, 0x82,
|
||||
0x3d, 0x0e, 0xce, 0xe4, 0x91, 0x60, 0xcf, 0xbc, 0x1f, 0xee, 0x2d, 0x99, 0xba, 0x28, 0xe6, 0x5a,
|
||||
0xc7, 0x53, 0x45, 0x56, 0x5c, 0x1e, 0xc8, 0xb5, 0x54, 0x34, 0x95, 0x76, 0x37, 0x25, 0x82, 0x4d,
|
||||
0xb9, 0x9c, 0xb7, 0x4c, 0xf6, 0x8f, 0xfe, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x6c, 0xe5, 0x4b, 0x71,
|
||||
0x6f, 0x09, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
@ -1244,7 +1233,7 @@ func NewOSClient(cc *grpc.ClientConn) OSClient {
|
||||
|
||||
func (c *oSClient) Containers(ctx context.Context, in *ContainersRequest, opts ...grpc.CallOption) (*ContainersReply, error) {
|
||||
out := new(ContainersReply)
|
||||
err := c.cc.Invoke(ctx, "/osapi.OS/Containers", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/os.OS/Containers", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1253,7 +1242,7 @@ func (c *oSClient) Containers(ctx context.Context, in *ContainersRequest, opts .
|
||||
|
||||
func (c *oSClient) Dmesg(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DataReply, error) {
|
||||
out := new(DataReply)
|
||||
err := c.cc.Invoke(ctx, "/osapi.OS/Dmesg", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/os.OS/Dmesg", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1262,7 +1251,7 @@ func (c *oSClient) Dmesg(ctx context.Context, in *empty.Empty, opts ...grpc.Call
|
||||
|
||||
func (c *oSClient) Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DataReply, error) {
|
||||
out := new(DataReply)
|
||||
err := c.cc.Invoke(ctx, "/osapi.OS/Kubeconfig", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/os.OS/Kubeconfig", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1270,7 +1259,7 @@ func (c *oSClient) Kubeconfig(ctx context.Context, in *empty.Empty, opts ...grpc
|
||||
}
|
||||
|
||||
func (c *oSClient) Logs(ctx context.Context, in *LogsRequest, opts ...grpc.CallOption) (OS_LogsClient, error) {
|
||||
stream, err := c.cc.NewStream(ctx, &_OS_serviceDesc.Streams[0], "/osapi.OS/Logs", opts...)
|
||||
stream, err := c.cc.NewStream(ctx, &_OS_serviceDesc.Streams[0], "/os.OS/Logs", opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1303,7 +1292,7 @@ func (x *oSLogsClient) Recv() (*Data, error) {
|
||||
|
||||
func (c *oSClient) Processes(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ProcessesReply, error) {
|
||||
out := new(ProcessesReply)
|
||||
err := c.cc.Invoke(ctx, "/osapi.OS/Processes", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/os.OS/Processes", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1312,7 +1301,7 @@ func (c *oSClient) Processes(ctx context.Context, in *empty.Empty, opts ...grpc.
|
||||
|
||||
func (c *oSClient) Restart(ctx context.Context, in *RestartRequest, opts ...grpc.CallOption) (*RestartReply, error) {
|
||||
out := new(RestartReply)
|
||||
err := c.cc.Invoke(ctx, "/osapi.OS/Restart", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/os.OS/Restart", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1321,7 +1310,7 @@ func (c *oSClient) Restart(ctx context.Context, in *RestartRequest, opts ...grpc
|
||||
|
||||
func (c *oSClient) Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (*StatsReply, error) {
|
||||
out := new(StatsReply)
|
||||
err := c.cc.Invoke(ctx, "/osapi.OS/Stats", in, out, opts...)
|
||||
err := c.cc.Invoke(ctx, "/os.OS/Stats", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1339,38 +1328,6 @@ type OSServer interface {
|
||||
Stats(context.Context, *StatsRequest) (*StatsReply, error)
|
||||
}
|
||||
|
||||
// UnimplementedOSServer can be embedded to have forward compatible implementations.
|
||||
type UnimplementedOSServer struct {
|
||||
}
|
||||
|
||||
func (*UnimplementedOSServer) Containers(ctx context.Context, req *ContainersRequest) (*ContainersReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Containers not implemented")
|
||||
}
|
||||
|
||||
func (*UnimplementedOSServer) Dmesg(ctx context.Context, req *empty.Empty) (*DataReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Dmesg not implemented")
|
||||
}
|
||||
|
||||
func (*UnimplementedOSServer) Kubeconfig(ctx context.Context, req *empty.Empty) (*DataReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Kubeconfig not implemented")
|
||||
}
|
||||
|
||||
func (*UnimplementedOSServer) Logs(req *LogsRequest, srv OS_LogsServer) error {
|
||||
return status.Errorf(codes.Unimplemented, "method Logs not implemented")
|
||||
}
|
||||
|
||||
func (*UnimplementedOSServer) Processes(ctx context.Context, req *empty.Empty) (*ProcessesReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Processes not implemented")
|
||||
}
|
||||
|
||||
func (*UnimplementedOSServer) Restart(ctx context.Context, req *RestartRequest) (*RestartReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Restart not implemented")
|
||||
}
|
||||
|
||||
func (*UnimplementedOSServer) Stats(ctx context.Context, req *StatsRequest) (*StatsReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Stats not implemented")
|
||||
}
|
||||
|
||||
func RegisterOSServer(s *grpc.Server, srv OSServer) {
|
||||
s.RegisterService(&_OS_serviceDesc, srv)
|
||||
}
|
||||
@ -1385,7 +1342,7 @@ func _OS_Containers_Handler(srv interface{}, ctx context.Context, dec func(inter
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/osapi.OS/Containers",
|
||||
FullMethod: "/os.OS/Containers",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(OSServer).Containers(ctx, req.(*ContainersRequest))
|
||||
@ -1403,7 +1360,7 @@ func _OS_Dmesg_Handler(srv interface{}, ctx context.Context, dec func(interface{
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/osapi.OS/Dmesg",
|
||||
FullMethod: "/os.OS/Dmesg",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(OSServer).Dmesg(ctx, req.(*empty.Empty))
|
||||
@ -1421,7 +1378,7 @@ func _OS_Kubeconfig_Handler(srv interface{}, ctx context.Context, dec func(inter
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/osapi.OS/Kubeconfig",
|
||||
FullMethod: "/os.OS/Kubeconfig",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(OSServer).Kubeconfig(ctx, req.(*empty.Empty))
|
||||
@ -1460,7 +1417,7 @@ func _OS_Processes_Handler(srv interface{}, ctx context.Context, dec func(interf
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/osapi.OS/Processes",
|
||||
FullMethod: "/os.OS/Processes",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(OSServer).Processes(ctx, req.(*empty.Empty))
|
||||
@ -1478,7 +1435,7 @@ func _OS_Restart_Handler(srv interface{}, ctx context.Context, dec func(interfac
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/osapi.OS/Restart",
|
||||
FullMethod: "/os.OS/Restart",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(OSServer).Restart(ctx, req.(*RestartRequest))
|
||||
@ -1496,7 +1453,7 @@ func _OS_Stats_Handler(srv interface{}, ctx context.Context, dec func(interface{
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/osapi.OS/Stats",
|
||||
FullMethod: "/os.OS/Stats",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(OSServer).Stats(ctx, req.(*StatsRequest))
|
||||
@ -1505,7 +1462,7 @@ func _OS_Stats_Handler(srv interface{}, ctx context.Context, dec func(interface{
|
||||
}
|
||||
|
||||
var _OS_serviceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "osapi.OS",
|
||||
ServiceName: "os.OS",
|
||||
HandlerType: (*OSServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
@ -1542,221 +1499,3 @@ var _OS_serviceDesc = grpc.ServiceDesc{
|
||||
},
|
||||
Metadata: "os/os.proto",
|
||||
}
|
||||
|
||||
type runnerfn func(*proxyOSClient, interface{}, *sync.WaitGroup, chan proto.Message, chan error)
|
||||
|
||||
type proxyOSClient struct {
|
||||
Conn OSClient
|
||||
Context context.Context
|
||||
Target string
|
||||
DialOpts []grpc.DialOption
|
||||
}
|
||||
|
||||
func proxyOSRunner(clients []*proxyOSClient, in interface{}, runner runnerfn) ([]proto.Message, error) {
|
||||
var (
|
||||
errors *go_multierror.Error
|
||||
wg sync.WaitGroup
|
||||
)
|
||||
respCh := make(chan proto.Message, len(clients))
|
||||
errCh := make(chan error, len(clients))
|
||||
wg.Add(len(clients))
|
||||
for _, client := range clients {
|
||||
go runner(client, in, &wg, respCh, errCh)
|
||||
}
|
||||
wg.Wait()
|
||||
close(respCh)
|
||||
close(errCh)
|
||||
|
||||
var response []proto.Message
|
||||
for resp := range respCh {
|
||||
response = append(response, resp)
|
||||
}
|
||||
for err := range errCh {
|
||||
errors = go_multierror.Append(errors, err)
|
||||
}
|
||||
return response, errors.ErrorOrNil()
|
||||
}
|
||||
|
||||
type OSProxy struct {
|
||||
Provider tls.CertificateProvider
|
||||
}
|
||||
|
||||
func NewOSProxy(provider tls.CertificateProvider) *OSProxy {
|
||||
return &OSProxy{Provider: provider}
|
||||
}
|
||||
|
||||
func (p *OSProxy) UnaryInterceptor() grpc.UnaryServerInterceptor {
|
||||
return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
|
||||
pkg := strings.Split(info.FullMethod, "/")[1]
|
||||
if pkg != "osapi.OS" {
|
||||
return handler(ctx, req)
|
||||
}
|
||||
md, _ := metadata.FromIncomingContext(ctx)
|
||||
if _, ok := md["proxyfrom"]; ok {
|
||||
return handler(ctx, req)
|
||||
}
|
||||
ca, err := p.Provider.GetCA()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
certs, err := p.Provider.GetCertificate(nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
tlsConfig, err := tls.New(
|
||||
tls.WithClientAuthType(tls.Mutual),
|
||||
tls.WithCACertPEM(ca),
|
||||
tls.WithKeypair(*certs),
|
||||
)
|
||||
return p.Proxy(ctx, info.FullMethod, credentials.NewTLS(tlsConfig), req)
|
||||
}
|
||||
}
|
||||
|
||||
func (p *OSProxy) Proxy(ctx context.Context, method string, creds credentials.TransportCredentials, in interface{}, opts ...grpc.CallOption) (proto.Message, error) {
|
||||
var (
|
||||
err error
|
||||
errors *go_multierror.Error
|
||||
msgs []proto.Message
|
||||
ok bool
|
||||
response proto.Message
|
||||
targets []string
|
||||
)
|
||||
md, _ := metadata.FromIncomingContext(ctx)
|
||||
// default to target node specified in config or on cli
|
||||
if targets, ok = md["targets"]; !ok {
|
||||
targets = md[":authority"]
|
||||
}
|
||||
proxyMd := metadata.New(make(map[string]string))
|
||||
proxyMd.Set("proxyfrom", md[":authority"]...)
|
||||
|
||||
clients := []*proxyOSClient{}
|
||||
for _, target := range targets {
|
||||
c := &proxyOSClient{
|
||||
Context: metadata.NewOutgoingContext(context.Background(), proxyMd),
|
||||
Target: target,
|
||||
}
|
||||
overrideCreds := creds
|
||||
conn, err := grpc.Dial(fmt.Sprintf("%s:%d", c.Target, 50000), grpc.WithTransportCredentials(overrideCreds))
|
||||
if err != nil {
|
||||
errors = go_multierror.Append(errors, err)
|
||||
continue
|
||||
}
|
||||
c.Conn = NewOSClient(conn)
|
||||
clients = append(clients, c)
|
||||
}
|
||||
switch method {
|
||||
case "/osapi.OS/Containers":
|
||||
resp := &ContainersReply{}
|
||||
msgs, err = proxyOSRunner(clients, in, proxyContainers)
|
||||
for _, msg := range msgs {
|
||||
resp.Response = append(resp.Response, msg.(*ContainersReply).Response[0])
|
||||
}
|
||||
response = resp
|
||||
case "/osapi.OS/Dmesg":
|
||||
resp := &DataReply{}
|
||||
msgs, err = proxyOSRunner(clients, in, proxyDmesg)
|
||||
for _, msg := range msgs {
|
||||
resp.Response = append(resp.Response, msg.(*DataReply).Response[0])
|
||||
}
|
||||
response = resp
|
||||
case "/osapi.OS/Kubeconfig":
|
||||
resp := &DataReply{}
|
||||
msgs, err = proxyOSRunner(clients, in, proxyKubeconfig)
|
||||
for _, msg := range msgs {
|
||||
resp.Response = append(resp.Response, msg.(*DataReply).Response[0])
|
||||
}
|
||||
response = resp
|
||||
case "/osapi.OS/Processes":
|
||||
resp := &ProcessesReply{}
|
||||
msgs, err = proxyOSRunner(clients, in, proxyProcesses)
|
||||
for _, msg := range msgs {
|
||||
resp.Response = append(resp.Response, msg.(*ProcessesReply).Response[0])
|
||||
}
|
||||
response = resp
|
||||
case "/osapi.OS/Restart":
|
||||
resp := &RestartReply{}
|
||||
msgs, err = proxyOSRunner(clients, in, proxyRestart)
|
||||
for _, msg := range msgs {
|
||||
resp.Response = append(resp.Response, msg.(*RestartReply).Response[0])
|
||||
}
|
||||
response = resp
|
||||
case "/osapi.OS/Stats":
|
||||
resp := &StatsReply{}
|
||||
msgs, err = proxyOSRunner(clients, in, proxyStats)
|
||||
for _, msg := range msgs {
|
||||
resp.Response = append(resp.Response, msg.(*StatsReply).Response[0])
|
||||
}
|
||||
response = resp
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
errors = go_multierror.Append(errors, err)
|
||||
}
|
||||
return response, errors.ErrorOrNil()
|
||||
}
|
||||
|
||||
func proxyContainers(client *proxyOSClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
|
||||
defer wg.Done()
|
||||
resp, err := client.Conn.Containers(client.Context, in.(*ContainersRequest))
|
||||
if err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
|
||||
respCh <- resp
|
||||
}
|
||||
|
||||
func proxyDmesg(client *proxyOSClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
|
||||
defer wg.Done()
|
||||
resp, err := client.Conn.Dmesg(client.Context, in.(*empty.Empty))
|
||||
if err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
|
||||
respCh <- resp
|
||||
}
|
||||
|
||||
func proxyKubeconfig(client *proxyOSClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
|
||||
defer wg.Done()
|
||||
resp, err := client.Conn.Kubeconfig(client.Context, in.(*empty.Empty))
|
||||
if err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
|
||||
respCh <- resp
|
||||
}
|
||||
|
||||
func proxyProcesses(client *proxyOSClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
|
||||
defer wg.Done()
|
||||
resp, err := client.Conn.Processes(client.Context, in.(*empty.Empty))
|
||||
if err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
|
||||
respCh <- resp
|
||||
}
|
||||
|
||||
func proxyRestart(client *proxyOSClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
|
||||
defer wg.Done()
|
||||
resp, err := client.Conn.Restart(client.Context, in.(*RestartRequest))
|
||||
if err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
|
||||
respCh <- resp
|
||||
}
|
||||
|
||||
func proxyStats(client *proxyOSClient, in interface{}, wg *sync.WaitGroup, respCh chan proto.Message, errCh chan error) {
|
||||
defer wg.Done()
|
||||
resp, err := client.Conn.Stats(client.Context, in.(*StatsRequest))
|
||||
if err != nil {
|
||||
errCh <- err
|
||||
return
|
||||
}
|
||||
resp.Response[0].Metadata = &NodeMetadata{Hostname: client.Target}
|
||||
respCh <- resp
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package osapi;
|
||||
package os;
|
||||
|
||||
option go_package = "github.com/talos-systems/talos/api/os";
|
||||
option java_multiple_files = true;
|
||||
@ -8,7 +8,7 @@ option java_outer_classname = "OsApi";
|
||||
option java_package = "com.os.api";
|
||||
|
||||
import "google/protobuf/empty.proto";
|
||||
import public "common/common.proto";
|
||||
import "common/common.proto";
|
||||
|
||||
// The OS service definition.
|
||||
//
|
||||
|
@ -59,11 +59,6 @@ func Execute() {
|
||||
|
||||
defer globalCtxCancel()
|
||||
|
||||
// Update context with grpc metadata for proxy/relay requests
|
||||
md := metadata.New(make(map[string]string))
|
||||
md.Set("targets", target...)
|
||||
globalCtx = metadata.NewOutgoingContext(globalCtx, md)
|
||||
|
||||
// listen for ^C and SIGTERM and abort context
|
||||
sigCh := make(chan os.Signal, 1)
|
||||
signal.Notify(sigCh, os.Interrupt, syscall.SIGTERM)
|
||||
@ -111,6 +106,11 @@ func Execute() {
|
||||
|
||||
// setupClient wraps common code to initialize osd client
|
||||
func setupClient(action func(*client.Client)) {
|
||||
// Update context with grpc metadata for proxy/relay requests
|
||||
md := metadata.New(make(map[string]string))
|
||||
md.Set("targets", target...)
|
||||
globalCtx = metadata.NewOutgoingContext(globalCtx, md)
|
||||
|
||||
t, creds, err := client.NewClientTargetAndCredentialsFromConfig(talosconfig)
|
||||
if err != nil {
|
||||
helpers.Fatalf("error getting client credentials: %s", err)
|
||||
|
@ -139,7 +139,8 @@ local ntpd = Step("ntpd", depends_on=[fetchtags]);
|
||||
local networkd = Step("networkd", depends_on=[fetchtags]);
|
||||
local osctl_linux = Step("osctl-linux", depends_on=[fetchtags]);
|
||||
local osctl_darwin = Step("osctl-darwin", depends_on=[fetchtags]);
|
||||
local rootfs = Step("rootfs", depends_on=[machined, osd, trustd, ntpd, networkd]);
|
||||
local apid = Step("apid", depends_on=[fetchtags]);
|
||||
local rootfs = Step("rootfs", depends_on=[machined, osd, trustd, ntpd, networkd, apid]);
|
||||
local initramfs = Step("initramfs", depends_on=[rootfs]);
|
||||
local installer = Step("installer", depends_on=[rootfs]);
|
||||
local container = Step("container", depends_on=[rootfs]);
|
||||
@ -189,6 +190,7 @@ local default_steps = [
|
||||
fetchtags,
|
||||
machined,
|
||||
osd,
|
||||
apid,
|
||||
trustd,
|
||||
ntpd,
|
||||
networkd,
|
||||
|
@ -88,4 +88,5 @@ run "kubectl wait --timeout=${TIMEOUT}s --for=condition=ready=true pod -l k8s-ap
|
||||
run "osctl config target 10.5.0.2 && osctl -t 10.5.0.2 service etcd | grep Running"
|
||||
run "osctl config target 10.5.0.3 && osctl -t 10.5.0.3 service etcd | grep Running"
|
||||
run "osctl config target 10.5.0.4 && osctl -t 10.5.0.4 service etcd | grep Running"
|
||||
run "osctl --target 10.5.0.2,10.5.0.3,10.5.0.4,10.5.0.5 containers | grep osd"
|
||||
run "osctl --target 10.5.0.2,10.5.0.3,10.5.0.4,10.5.0.5 containers"
|
||||
run "osctl --target 10.5.0.2,10.5.0.3,10.5.0.4,10.5.0.5 services"
|
||||
|
122
internal/app/apid/main.go
Normal file
122
internal/app/apid/main.go
Normal file
@ -0,0 +1,122 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"log"
|
||||
stdlibnet "net"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/credentials"
|
||||
|
||||
"github.com/talos-systems/talos/api"
|
||||
"github.com/talos-systems/talos/pkg/config"
|
||||
"github.com/talos-systems/talos/pkg/constants"
|
||||
"github.com/talos-systems/talos/pkg/grpc/factory"
|
||||
"github.com/talos-systems/talos/pkg/grpc/tls"
|
||||
"github.com/talos-systems/talos/pkg/net"
|
||||
"github.com/talos-systems/talos/pkg/startup"
|
||||
)
|
||||
|
||||
var (
|
||||
configPath *string
|
||||
endpoints *string
|
||||
)
|
||||
|
||||
func init() {
|
||||
log.SetFlags(log.Lshortfile | log.Ldate | log.Lmicroseconds | log.Ltime)
|
||||
|
||||
configPath = flag.String("config", "", "the path to the config")
|
||||
endpoints = flag.String("endpoints", "", "the IPs of the control plane nodes")
|
||||
|
||||
flag.Parse()
|
||||
}
|
||||
|
||||
func main() {
|
||||
if err := startup.RandSeed(); err != nil {
|
||||
log.Fatalf("failed to seed RNG: %v", err)
|
||||
}
|
||||
|
||||
provider, err := createProvider()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create remote certificate provider: %+v", err)
|
||||
}
|
||||
|
||||
ca, err := provider.GetCA()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to get root CA: %+v", err)
|
||||
}
|
||||
|
||||
tlsConfig, err := tls.New(
|
||||
tls.WithClientAuthType(tls.Mutual),
|
||||
tls.WithCACertPEM(ca),
|
||||
tls.WithCertificateProvider(provider),
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create OS-level TLS configuration: %v", err)
|
||||
}
|
||||
|
||||
machineClient, err := api.NewLocalMachineClient()
|
||||
if err != nil {
|
||||
log.Fatalf("machine client: %v", err)
|
||||
}
|
||||
|
||||
osClient, err := api.NewLocalOSClient()
|
||||
if err != nil {
|
||||
log.Fatalf("networkd client: %v", err)
|
||||
}
|
||||
|
||||
protoProxy := api.NewApiProxy(provider)
|
||||
|
||||
err = factory.ListenAndServe(
|
||||
&api.Registrator{
|
||||
MachineClient: machineClient,
|
||||
OSClient: osClient,
|
||||
},
|
||||
factory.Port(constants.OsdPort),
|
||||
factory.ServerOptions(
|
||||
grpc.Creds(
|
||||
credentials.NewTLS(tlsConfig),
|
||||
),
|
||||
grpc.UnaryInterceptor(protoProxy.UnaryInterceptor()),
|
||||
),
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatalf("listen: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func createProvider() (tls.CertificateProvider, error) {
|
||||
content, err := config.FromFile(*configPath)
|
||||
if err != nil {
|
||||
log.Fatalf("open config: %v", err)
|
||||
}
|
||||
|
||||
config, err := config.New(content)
|
||||
if err != nil {
|
||||
log.Fatalf("open config: %v", err)
|
||||
}
|
||||
|
||||
ips, err := net.IPAddrs()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to discover IP addresses: %+v", err)
|
||||
}
|
||||
// TODO(andrewrynhard): Allow for DNS names.
|
||||
for _, san := range config.Machine().Security().CertSANs() {
|
||||
if ip := stdlibnet.ParseIP(san); ip != nil {
|
||||
ips = append(ips, ip)
|
||||
}
|
||||
}
|
||||
|
||||
hostname, err := os.Hostname()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to discover hostname: %+v", err)
|
||||
}
|
||||
|
||||
return tls.NewRemoteRenewingFileCertificateProvider(config.Machine().Security().Token(), strings.Split(*endpoints, ","), constants.TrustdPort, hostname, ips)
|
||||
}
|
@ -27,7 +27,7 @@ func (s *Service) Main(ctx context.Context, config runtime.Configurator, logWrit
|
||||
api := reg.NewRegistrator(config)
|
||||
server := factory.NewServer(api)
|
||||
|
||||
listener, err := factory.NewListener(factory.Network("unix"), factory.SocketPath(constants.InitSocketPath))
|
||||
listener, err := factory.NewListener(factory.Network("unix"), factory.SocketPath(constants.MachineSocketPath))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -40,6 +40,7 @@ func (task *StartServices) loadSystemServices(r runtime.Runtime) {
|
||||
svcs.Load(
|
||||
&services.MachinedAPI{},
|
||||
&services.Containerd{},
|
||||
&services.APID{},
|
||||
&services.OSD{},
|
||||
&services.Networkd{},
|
||||
)
|
||||
|
@ -32,7 +32,7 @@ func (task *StopNonCrucialServices) TaskFunc(mode runtime.Mode) phase.TaskFunc {
|
||||
func (task *StopNonCrucialServices) standard(r runtime.Runtime) (err error) {
|
||||
ctx := namespaces.WithNamespace(context.Background(), "k8s.io")
|
||||
|
||||
services := []string{"osd", "udevd", "networkd", "ntpd"}
|
||||
services := []string{"osd", "udevd", "networkd", "ntpd", "apid"}
|
||||
if r.Config().Machine().Type() == machine.Bootstrap || r.Config().Machine().Type() == machine.ControlPlane {
|
||||
services = append(services, "trustd", "proxyd")
|
||||
}
|
||||
|
150
internal/app/machined/pkg/system/services/apid.go
Normal file
150
internal/app/machined/pkg/system/services/apid.go
Normal file
@ -0,0 +1,150 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// nolint: dupl,golint
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
containerdapi "github.com/containerd/containerd"
|
||||
"github.com/containerd/containerd/oci"
|
||||
specs "github.com/opencontainers/runtime-spec/specs-go"
|
||||
|
||||
"github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions"
|
||||
"github.com/talos-systems/talos/internal/app/machined/pkg/system/health"
|
||||
"github.com/talos-systems/talos/internal/app/machined/pkg/system/runner"
|
||||
"github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/containerd"
|
||||
"github.com/talos-systems/talos/internal/app/machined/pkg/system/runner/restart"
|
||||
"github.com/talos-systems/talos/internal/pkg/runtime"
|
||||
"github.com/talos-systems/talos/pkg/config/machine"
|
||||
"github.com/talos-systems/talos/pkg/constants"
|
||||
"github.com/talos-systems/talos/pkg/kubernetes"
|
||||
"github.com/talos-systems/talos/pkg/retry"
|
||||
)
|
||||
|
||||
// APID implements the Service interface. It serves as the concrete type with
|
||||
// the required methods.
|
||||
type APID struct{}
|
||||
|
||||
// ID implements the Service interface.
|
||||
func (o *APID) ID(config runtime.Configurator) string {
|
||||
return "apid"
|
||||
}
|
||||
|
||||
// PreFunc implements the Service interface.
|
||||
func (o *APID) PreFunc(ctx context.Context, config runtime.Configurator) error {
|
||||
importer := containerd.NewImporter(constants.SystemContainerdNamespace, containerd.WithContainerdAddress(constants.SystemContainerdAddress))
|
||||
|
||||
return importer.Import(&containerd.ImportRequest{
|
||||
Path: "/usr/images/apid.tar",
|
||||
Options: []containerdapi.ImportOpt{
|
||||
containerdapi.WithIndexName("talos/apid"),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// PostFunc implements the Service interface.
|
||||
func (o *APID) PostFunc(config runtime.Configurator) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Condition implements the Service interface.
|
||||
func (o *APID) Condition(config runtime.Configurator) conditions.Condition {
|
||||
if config.Machine().Type() == machine.Worker {
|
||||
return conditions.WaitForFileToExist(constants.KubeletKubeconfig)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// DependsOn implements the Service interface.
|
||||
func (o *APID) DependsOn(config runtime.Configurator) []string {
|
||||
return []string{"system-containerd", "containerd"}
|
||||
}
|
||||
|
||||
func (o *APID) Runner(config runtime.Configurator) (runner.Runner, error) {
|
||||
image := "talos/apid"
|
||||
|
||||
endpoints := []string{"127.0.0.1"}
|
||||
|
||||
if config.Machine().Type() == machine.Worker {
|
||||
opts := []retry.Option{retry.WithUnits(3 * time.Second), retry.WithJitter(time.Second)}
|
||||
|
||||
err := retry.Constant(10*time.Minute, opts...).Retry(func() error {
|
||||
h, err := kubernetes.NewHelper()
|
||||
if err != nil {
|
||||
return retry.ExpectedError(fmt.Errorf("failed to create client: %w", err))
|
||||
}
|
||||
|
||||
endpoints, err = h.MasterIPs()
|
||||
if err != nil {
|
||||
return retry.ExpectedError(err)
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
// Set the process arguments.
|
||||
args := runner.Args{
|
||||
ID: o.ID(config),
|
||||
ProcessArgs: []string{
|
||||
"/apid",
|
||||
"--config=" + constants.ConfigPath,
|
||||
"--endpoints=" + strings.Join(endpoints, ","),
|
||||
},
|
||||
}
|
||||
|
||||
// Set the mounts.
|
||||
mounts := []specs.Mount{
|
||||
{Type: "bind", Destination: "/etc/ssl", Source: "/etc/ssl", Options: []string{"bind", "ro"}},
|
||||
{Type: "bind", Destination: constants.ConfigPath, Source: constants.ConfigPath, Options: []string{"rbind", "ro"}},
|
||||
// Other grpc server sockets
|
||||
{Type: "bind", Destination: constants.SystemRunPath, Source: constants.SystemRunPath, Options: []string{"bind", "ro"}},
|
||||
}
|
||||
|
||||
env := []string{}
|
||||
for key, val := range config.Machine().Env() {
|
||||
env = append(env, fmt.Sprintf("%s=%s", key, val))
|
||||
}
|
||||
|
||||
return restart.New(containerd.NewRunner(
|
||||
config.Debug(),
|
||||
&args,
|
||||
runner.WithContainerdAddress(constants.SystemContainerdAddress),
|
||||
runner.WithContainerImage(image),
|
||||
runner.WithEnv(env),
|
||||
runner.WithOCISpecOpts(
|
||||
oci.WithMounts(mounts),
|
||||
),
|
||||
),
|
||||
restart.WithType(restart.Forever),
|
||||
), nil
|
||||
}
|
||||
|
||||
// HealthFunc implements the HealthcheckedService interface
|
||||
func (o *APID) HealthFunc(runtime.Configurator) health.Check {
|
||||
return func(ctx context.Context) error {
|
||||
var d net.Dialer
|
||||
conn, err := d.DialContext(ctx, "tcp", fmt.Sprintf("%s:%d", "127.0.0.1", constants.OsdPort))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return conn.Close()
|
||||
}
|
||||
}
|
||||
|
||||
// HealthSettings implements the HealthcheckedService interface
|
||||
func (o *APID) HealthSettings(runtime.Configurator) *health.Settings {
|
||||
return &health.DefaultSettings
|
||||
}
|
18
internal/app/machined/pkg/system/services/apid_test.go
Normal file
18
internal/app/machined/pkg/system/services/apid_test.go
Normal file
@ -0,0 +1,18 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package services_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/talos-systems/talos/internal/app/machined/pkg/system"
|
||||
"github.com/talos-systems/talos/internal/app/machined/pkg/system/services"
|
||||
)
|
||||
|
||||
func TestAPIDInterfaces(t *testing.T) {
|
||||
assert.Implements(t, (*system.HealthcheckedService)(nil), new(services.APID))
|
||||
}
|
@ -8,13 +8,13 @@ package services
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net"
|
||||
"strings"
|
||||
"time"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
containerdapi "github.com/containerd/containerd"
|
||||
"github.com/containerd/containerd/oci"
|
||||
specs "github.com/opencontainers/runtime-spec/specs-go"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
"github.com/talos-systems/talos/internal/app/machined/pkg/system/conditions"
|
||||
"github.com/talos-systems/talos/internal/app/machined/pkg/system/health"
|
||||
@ -24,8 +24,6 @@ import (
|
||||
"github.com/talos-systems/talos/internal/pkg/runtime"
|
||||
"github.com/talos-systems/talos/pkg/config/machine"
|
||||
"github.com/talos-systems/talos/pkg/constants"
|
||||
"github.com/talos-systems/talos/pkg/kubernetes"
|
||||
"github.com/talos-systems/talos/pkg/retry"
|
||||
)
|
||||
|
||||
// OSD implements the Service interface. It serves as the concrete type with
|
||||
@ -56,17 +54,13 @@ func (o *OSD) PostFunc(config runtime.Configurator) (err error) {
|
||||
|
||||
// Condition implements the Service interface.
|
||||
func (o *OSD) Condition(config runtime.Configurator) conditions.Condition {
|
||||
if config.Machine().Type() == machine.Worker {
|
||||
return conditions.WaitForFileToExist(constants.KubeletKubeconfig)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// DependsOn implements the Service interface.
|
||||
func (o *OSD) DependsOn(config runtime.Configurator) []string {
|
||||
if config.Machine().Type() == machine.Worker {
|
||||
return []string{"system-containerd", "containerd", "kubelet"}
|
||||
return []string{"system-containerd", "containerd"}
|
||||
}
|
||||
|
||||
return []string{"system-containerd", "containerd"}
|
||||
@ -75,48 +69,30 @@ func (o *OSD) DependsOn(config runtime.Configurator) []string {
|
||||
func (o *OSD) Runner(config runtime.Configurator) (runner.Runner, error) {
|
||||
image := "talos/osd"
|
||||
|
||||
endpoints := []string{"127.0.0.1"}
|
||||
|
||||
if config.Machine().Type() == machine.Worker {
|
||||
opts := []retry.Option{retry.WithUnits(3 * time.Second), retry.WithJitter(time.Second)}
|
||||
|
||||
err := retry.Constant(10*time.Minute, opts...).Retry(func() error {
|
||||
h, err := kubernetes.NewHelper()
|
||||
if err != nil {
|
||||
return retry.ExpectedError(fmt.Errorf("failed to create client: %w", err))
|
||||
}
|
||||
|
||||
endpoints, err = h.MasterIPs()
|
||||
if err != nil {
|
||||
return retry.ExpectedError(err)
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
// Set the process arguments.
|
||||
args := runner.Args{
|
||||
ID: o.ID(config),
|
||||
ProcessArgs: []string{
|
||||
"/osd",
|
||||
"--config=" + constants.ConfigPath,
|
||||
"--endpoints=" + strings.Join(endpoints, ","),
|
||||
},
|
||||
}
|
||||
|
||||
// Ensure socket dir exists
|
||||
if err := os.MkdirAll(filepath.Dir(constants.OSSocketPath), os.ModeDir); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Set the mounts.
|
||||
mounts := []specs.Mount{
|
||||
{Type: "bind", Destination: "/tmp", Source: "/tmp", Options: []string{"rbind", "rshared", "rw"}},
|
||||
{Type: "bind", Destination: "/etc/kubernetes", Source: "/etc/kubernetes", Options: []string{"rbind", "ro"}},
|
||||
{Type: "bind", Destination: "/etc/ssl", Source: "/etc/ssl", Options: []string{"bind", "ro"}},
|
||||
{Type: "bind", Destination: "/tmp", Source: "/tmp", Options: []string{"rbind", "rshared", "rw"}},
|
||||
{Type: "bind", Destination: "/var/log/pods", Source: "/var/log/pods", Options: []string{"bind", "ro"}},
|
||||
{Type: "bind", Destination: constants.ConfigPath, Source: constants.ConfigPath, Options: []string{"rbind", "ro"}},
|
||||
{Type: "bind", Destination: constants.ContainerdAddress, Source: constants.ContainerdAddress, Options: []string{"bind", "ro"}},
|
||||
{Type: "bind", Destination: constants.DefaultLogPath, Source: constants.DefaultLogPath, Options: []string{"bind", "ro"}},
|
||||
{Type: "bind", Destination: constants.SystemRunPath, Source: constants.SystemRunPath, Options: []string{"bind", "ro"}},
|
||||
{Type: "bind", Destination: "/var/log/pods", Source: "/var/log/pods", Options: []string{"bind", "ro"}},
|
||||
{Type: "bind", Destination: filepath.Dir(constants.OSSocketPath), Source: filepath.Dir(constants.OSSocketPath), Options: []string{"rbind", "rw"}},
|
||||
}
|
||||
|
||||
env := []string{}
|
||||
@ -141,12 +117,10 @@ func (o *OSD) Runner(config runtime.Configurator) (runner.Runner, error) {
|
||||
// HealthFunc implements the HealthcheckedService interface
|
||||
func (o *OSD) HealthFunc(runtime.Configurator) health.Check {
|
||||
return func(ctx context.Context) error {
|
||||
var d net.Dialer
|
||||
conn, err := d.DialContext(ctx, "tcp", fmt.Sprintf("%s:%d", "127.0.0.1", constants.OsdPort))
|
||||
conn, err := grpc.Dial("unix:"+constants.OSSocketPath, grpc.WithInsecure())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return conn.Close()
|
||||
}
|
||||
}
|
||||
|
@ -1,136 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package reg
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
|
||||
"github.com/golang/protobuf/ptypes/empty"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
machineapi "github.com/talos-systems/talos/api/machine"
|
||||
"github.com/talos-systems/talos/pkg/constants"
|
||||
)
|
||||
|
||||
// MachineClient is a gRPC client for init service API
|
||||
type MachineClient struct {
|
||||
machineapi.MachineClient
|
||||
}
|
||||
|
||||
// NewMachineClient initializes new client and connects to init
|
||||
func NewMachineClient() (*MachineClient, error) {
|
||||
conn, err := grpc.Dial("unix:"+constants.InitSocketPath,
|
||||
grpc.WithInsecure(),
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &MachineClient{
|
||||
MachineClient: machineapi.NewMachineClient(conn),
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Reboot executes init Reboot() API
|
||||
func (c *MachineClient) Reboot(ctx context.Context, in *empty.Empty) (*machineapi.RebootReply, error) {
|
||||
return c.MachineClient.Reboot(ctx, in)
|
||||
}
|
||||
|
||||
// Shutdown executes init Shutdown() API.
|
||||
func (c *MachineClient) Shutdown(ctx context.Context, in *empty.Empty) (*machineapi.ShutdownReply, error) {
|
||||
return c.MachineClient.Shutdown(ctx, in)
|
||||
}
|
||||
|
||||
// Upgrade executes the init Upgrade() API.
|
||||
func (c *MachineClient) Upgrade(ctx context.Context, in *machineapi.UpgradeRequest) (data *machineapi.UpgradeReply, err error) {
|
||||
return c.MachineClient.Upgrade(ctx, in)
|
||||
}
|
||||
|
||||
// Reset executes the init Reset() API.
|
||||
func (c *MachineClient) Reset(ctx context.Context, in *empty.Empty) (data *machineapi.ResetReply, err error) {
|
||||
return c.MachineClient.Reset(ctx, in)
|
||||
}
|
||||
|
||||
// ServiceStart executes the init ServiceStart() API.
|
||||
func (c *MachineClient) ServiceStart(ctx context.Context, in *machineapi.ServiceStartRequest) (data *machineapi.ServiceStartReply, err error) {
|
||||
return c.MachineClient.ServiceStart(ctx, in)
|
||||
}
|
||||
|
||||
// ServiceStop executes the init ServiceStop() API.
|
||||
func (c *MachineClient) ServiceStop(ctx context.Context, in *machineapi.ServiceStopRequest) (data *machineapi.ServiceStopReply, err error) {
|
||||
return c.MachineClient.ServiceStop(ctx, in)
|
||||
}
|
||||
|
||||
// ServiceRestart executes the init ServiceRestart() API.
|
||||
func (c *MachineClient) ServiceRestart(ctx context.Context, in *machineapi.ServiceRestartRequest) (data *machineapi.ServiceRestartReply, err error) {
|
||||
return c.MachineClient.ServiceRestart(ctx, in)
|
||||
}
|
||||
|
||||
// Start executes the init Start() API (deprecated).
|
||||
//nolint: staticcheck
|
||||
func (c *MachineClient) Start(ctx context.Context, in *machineapi.StartRequest) (data *machineapi.StartReply, err error) {
|
||||
return c.MachineClient.Start(ctx, in)
|
||||
}
|
||||
|
||||
// Stop executes the init Stop() API (deprecated).
|
||||
//nolint: staticcheck
|
||||
func (c *MachineClient) Stop(ctx context.Context, in *machineapi.StopRequest) (data *machineapi.StopReply, err error) {
|
||||
return c.MachineClient.Stop(ctx, in)
|
||||
}
|
||||
|
||||
// ServiceList executes the init ServiceList() API.
|
||||
func (c *MachineClient) ServiceList(ctx context.Context, in *empty.Empty) (data *machineapi.ServiceListReply, err error) {
|
||||
return c.MachineClient.ServiceList(ctx, in)
|
||||
}
|
||||
|
||||
func copyClientServer(msg interface{}, client grpc.ClientStream, srv grpc.ServerStream) error {
|
||||
for {
|
||||
err := client.RecvMsg(msg)
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = srv.SendMsg(msg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CopyOut executes the init CopyOut() API.
|
||||
func (c *MachineClient) CopyOut(req *machineapi.CopyOutRequest, srv machineapi.Machine_CopyOutServer) error {
|
||||
client, err := c.MachineClient.CopyOut(srv.Context(), req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var msg machineapi.StreamingData
|
||||
|
||||
return copyClientServer(&msg, client, srv)
|
||||
}
|
||||
|
||||
// LS executes the init LS() API.
|
||||
func (c *MachineClient) LS(req *machineapi.LSRequest, srv machineapi.Machine_LSServer) error {
|
||||
client, err := c.MachineClient.LS(srv.Context(), req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var msg machineapi.FileInfo
|
||||
|
||||
return copyClientServer(&msg, client, srv)
|
||||
}
|
||||
|
||||
// Mounts implements the machineapi.OSDServer interface.
|
||||
func (c *MachineClient) Mounts(ctx context.Context, in *empty.Empty) (reply *machineapi.MountsReply, err error) {
|
||||
return c.MachineClient.Mounts(ctx, in)
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package reg // nolint: dupl
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/golang/protobuf/ptypes/empty"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
networkapi "github.com/talos-systems/talos/api/network"
|
||||
"github.com/talos-systems/talos/pkg/constants"
|
||||
)
|
||||
|
||||
// NetworkClient is a gRPC client for init service API
|
||||
type NetworkClient struct {
|
||||
networkapi.NetworkClient
|
||||
}
|
||||
|
||||
// NewNetworkClient initializes new client and connects to networkd
|
||||
func NewNetworkClient() (*NetworkClient, error) {
|
||||
conn, err := grpc.Dial("unix:"+constants.NetworkdSocketPath,
|
||||
grpc.WithInsecure(),
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &NetworkClient{
|
||||
NetworkClient: networkapi.NewNetworkClient(conn),
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Routes returns the hosts routing table.
|
||||
func (c *NetworkClient) Routes(ctx context.Context, in *empty.Empty) (*networkapi.RoutesReply, error) {
|
||||
return c.NetworkClient.Routes(ctx, in)
|
||||
}
|
||||
|
||||
// Interfaces returns the hosts network interfaces and addresses.
|
||||
func (c *NetworkClient) Interfaces(ctx context.Context, in *empty.Empty) (*networkapi.InterfacesReply, error) {
|
||||
return c.NetworkClient.Interfaces(ctx, in)
|
||||
}
|
@ -22,10 +22,7 @@ import (
|
||||
"golang.org/x/sys/unix"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
machineapi "github.com/talos-systems/talos/api/machine"
|
||||
networkapi "github.com/talos-systems/talos/api/network"
|
||||
osapi "github.com/talos-systems/talos/api/os"
|
||||
timeapi "github.com/talos-systems/talos/api/time"
|
||||
"github.com/talos-systems/talos/internal/pkg/containers"
|
||||
"github.com/talos-systems/talos/internal/pkg/containers/containerd"
|
||||
"github.com/talos-systems/talos/internal/pkg/containers/cri"
|
||||
@ -36,19 +33,11 @@ import (
|
||||
|
||||
// Registrator is the concrete type that implements the factory.Registrator and
|
||||
// osapi.OSDServer interfaces.
|
||||
type Registrator struct {
|
||||
// every Init service API is proxied via OSD
|
||||
*MachineClient
|
||||
*TimeClient
|
||||
*NetworkClient
|
||||
}
|
||||
type Registrator struct{}
|
||||
|
||||
// Register implements the factory.Registrator interface.
|
||||
func (r *Registrator) Register(s *grpc.Server) {
|
||||
osapi.RegisterOSServer(s, r)
|
||||
machineapi.RegisterMachineServer(s, r)
|
||||
timeapi.RegisterTimeServer(s, r)
|
||||
networkapi.RegisterNetworkServer(s, r)
|
||||
}
|
||||
|
||||
// Kubeconfig implements the osapi.OSDServer interface.
|
||||
@ -262,11 +251,6 @@ func (r *Registrator) Logs(req *osapi.LogsRequest, l osapi.OS_LogsServer) (err e
|
||||
return nil
|
||||
}
|
||||
|
||||
// Version implements the osapi.OSDServer interface.
|
||||
func (r *Registrator) Version(ctx context.Context, in *empty.Empty) (reply *machineapi.VersionReply, err error) {
|
||||
return r.MachineClient.Version(ctx, in)
|
||||
}
|
||||
|
||||
// Processes implements the osapi.OSDServer interface
|
||||
func (r *Registrator) Processes(ctx context.Context, in *empty.Empty) (reply *osapi.ProcessesReply, err error) {
|
||||
procs, err := procfs.AllProcs()
|
||||
|
@ -1,44 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package reg // nolint: dupl
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/golang/protobuf/ptypes/empty"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
timeapi "github.com/talos-systems/talos/api/time"
|
||||
"github.com/talos-systems/talos/pkg/constants"
|
||||
)
|
||||
|
||||
// TimeClient is a gRPC client for init service API
|
||||
type TimeClient struct {
|
||||
timeapi.TimeClient
|
||||
}
|
||||
|
||||
// NewTimeClient initializes new client and connects to ntpd
|
||||
func NewTimeClient() (*TimeClient, error) {
|
||||
conn, err := grpc.Dial("unix:"+constants.NtpdSocketPath,
|
||||
grpc.WithInsecure(),
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &TimeClient{
|
||||
TimeClient: timeapi.NewTimeClient(conn),
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Time issues a query to the configured ntp server and displays the results
|
||||
func (c *TimeClient) Time(ctx context.Context, in *empty.Empty) (*timeapi.TimeReply, error) {
|
||||
return c.TimeClient.Time(ctx, in)
|
||||
}
|
||||
|
||||
// TimeCheck issues a query to the specified ntp server and displays the results
|
||||
func (c *TimeClient) TimeCheck(ctx context.Context, in *timeapi.TimeRequest) (*timeapi.TimeReply, error) {
|
||||
return c.TimeClient.TimeCheck(ctx, in)
|
||||
}
|
@ -5,131 +5,27 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"log"
|
||||
stdlibnet "net"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/credentials"
|
||||
|
||||
osapi "github.com/talos-systems/talos/api/os"
|
||||
"github.com/talos-systems/talos/internal/app/osd/internal/reg"
|
||||
"github.com/talos-systems/talos/pkg/config"
|
||||
"github.com/talos-systems/talos/pkg/constants"
|
||||
"github.com/talos-systems/talos/pkg/grpc/factory"
|
||||
"github.com/talos-systems/talos/pkg/grpc/tls"
|
||||
"github.com/talos-systems/talos/pkg/net"
|
||||
"github.com/talos-systems/talos/pkg/startup"
|
||||
)
|
||||
|
||||
var (
|
||||
configPath *string
|
||||
endpoints *string
|
||||
)
|
||||
|
||||
func init() {
|
||||
log.SetFlags(log.Lshortfile | log.Ldate | log.Lmicroseconds | log.Ltime)
|
||||
|
||||
configPath = flag.String("config", "", "the path to the config")
|
||||
endpoints = flag.String("endpoints", "", "the IPs of the control plane nodes")
|
||||
|
||||
flag.Parse()
|
||||
}
|
||||
|
||||
// nolint: gocyclo
|
||||
func main() {
|
||||
if err := startup.RandSeed(); err != nil {
|
||||
log.Fatalf("failed to seed RNG: %v", err)
|
||||
}
|
||||
|
||||
provider, err := createProvider()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create remote certificate provider: %+v", err)
|
||||
}
|
||||
|
||||
ca, err := provider.GetCA()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to get root CA: %+v", err)
|
||||
}
|
||||
|
||||
tlsConfig, err := tls.New(
|
||||
tls.WithClientAuthType(tls.Mutual),
|
||||
tls.WithCACertPEM(ca),
|
||||
tls.WithCertificateProvider(provider),
|
||||
log.Fatalf("%+v", factory.ListenAndServe(
|
||||
®.Registrator{},
|
||||
factory.Network("unix"),
|
||||
factory.SocketPath(constants.OSSocketPath),
|
||||
),
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create OS-level TLS configuration: %v", err)
|
||||
}
|
||||
|
||||
machineClient, err := reg.NewMachineClient()
|
||||
if err != nil {
|
||||
log.Fatalf("init client: %v", err)
|
||||
}
|
||||
|
||||
timeClient, err := reg.NewTimeClient()
|
||||
if err != nil {
|
||||
log.Fatalf("ntp client: %v", err)
|
||||
}
|
||||
|
||||
networkClient, err := reg.NewNetworkClient()
|
||||
if err != nil {
|
||||
log.Fatalf("networkd client: %v", err)
|
||||
}
|
||||
|
||||
interceptorProvider, err := createProvider()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create remote certificate provider for interceptor: %+v", err)
|
||||
}
|
||||
|
||||
protoProxy := osapi.NewOSProxy(interceptorProvider)
|
||||
|
||||
err = factory.ListenAndServe(
|
||||
®.Registrator{
|
||||
MachineClient: machineClient,
|
||||
TimeClient: timeClient,
|
||||
NetworkClient: networkClient,
|
||||
},
|
||||
factory.Port(constants.OsdPort),
|
||||
factory.ServerOptions(
|
||||
grpc.Creds(
|
||||
credentials.NewTLS(tlsConfig),
|
||||
),
|
||||
grpc.UnaryInterceptor(protoProxy.UnaryInterceptor()),
|
||||
),
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatalf("listen: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func createProvider() (tls.CertificateProvider, error) {
|
||||
content, err := config.FromFile(*configPath)
|
||||
if err != nil {
|
||||
log.Fatalf("open config: %v", err)
|
||||
}
|
||||
|
||||
config, err := config.New(content)
|
||||
if err != nil {
|
||||
log.Fatalf("open config: %v", err)
|
||||
}
|
||||
|
||||
ips, err := net.IPAddrs()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to discover IP addresses: %+v", err)
|
||||
}
|
||||
// TODO(andrewrynhard): Allow for DNS names.
|
||||
for _, san := range config.Machine().Security().CertSANs() {
|
||||
if ip := stdlibnet.ParseIP(san); ip != nil {
|
||||
ips = append(ips, ip)
|
||||
}
|
||||
}
|
||||
|
||||
hostname, err := os.Hostname()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to discover hostname: %+v", err)
|
||||
}
|
||||
|
||||
return tls.NewRemoteRenewingFileCertificateProvider(config.Machine().Security().Token(), strings.Split(*endpoints, ","), constants.TrustdPort, hostname, ips)
|
||||
}
|
||||
|
@ -191,8 +191,8 @@ const (
|
||||
// TalosConfigEnvVar is the environment variable for setting the Talos configuration file path.
|
||||
TalosConfigEnvVar = "TALOSCONFIG"
|
||||
|
||||
// InitSocketPath is the path to file socket of machine API.
|
||||
InitSocketPath = SystemRunPath + "/init/init.sock"
|
||||
// MachineSocketPath is the path to file socket of machine API.
|
||||
MachineSocketPath = SystemRunPath + "/machined/machine.sock"
|
||||
|
||||
// NtpdSocketPath is the path to file socket of time API.
|
||||
NtpdSocketPath = SystemRunPath + "/ntpd/ntpd.sock"
|
||||
@ -200,6 +200,9 @@ const (
|
||||
// NetworkdSocketPath is the path to file socket of network API.
|
||||
NetworkdSocketPath = SystemRunPath + "/networkd/networkd.sock"
|
||||
|
||||
// OSSocketPath is the path to file socket of os API.
|
||||
OSSocketPath = SystemRunPath + "/osd/osd.sock"
|
||||
|
||||
// KernelAsset defines a well known name for our kernel filename
|
||||
KernelAsset = "vmlinuz"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user