mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 08:17:26 +00:00
This creates some diff to the *.pb.go files to note that in the "options". You can dump the gzipped blob with the following program (thanks StackOverflow!): ```go package main import ( "bytes" "compress/gzip" "encoding/json" "fmt" "os" "io/ioutil" proto "github.com/golang/protobuf/proto" dpb "github.com/golang/protobuf/protoc-gen-go/descriptor" ) func main() { m := map[string][]byte{ "before": blobv1, "after": blobv2, } arg := os.Args[1] dump(m[arg]) } func dump(bytes []byte) { fd, err := decodeFileDesc(bytes) if err != nil { panic(err) } b, err := json.MarshalIndent(fd, "", " ") if err != nil { panic(err) } fmt.Println(string(b)) } // decompress does gzip decompression. func decompress(b []byte) ([]byte, error) { r, err := gzip.NewReader(bytes.NewReader(b)) if err != nil { return nil, fmt.Errorf("bad gzipped descriptor: %v", err) } out, err := ioutil.ReadAll(r) if err != nil { return nil, fmt.Errorf("bad gzipped descriptor: %v", err) } return out, nil } func decodeFileDesc(enc []byte) (*dpb.FileDescriptorProto, error) { raw, err := decompress(enc) if err != nil { return nil, fmt.Errorf("failed to decompress enc: %v", err) } fd := new(dpb.FileDescriptorProto) if err := proto.Unmarshal(raw, fd); err != nil { return nil, fmt.Errorf("bad descriptor: %v", err) } return fd, nil } ```
46 lines
1.4 KiB
Protocol Buffer
46 lines
1.4 KiB
Protocol Buffer
/*
|
|
Copyright 2018 The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
syntax = "proto3";
|
|
|
|
package v1beta1;
|
|
option go_package = "k8s.io/kubernetes/pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis/v1beta1";
|
|
|
|
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
|
|
|
|
option (gogoproto.goproto_stringer_all) = false;
|
|
option (gogoproto.stringer_all) = true;
|
|
option (gogoproto.goproto_getters_all) = true;
|
|
option (gogoproto.marshaler_all) = true;
|
|
option (gogoproto.sizer_all) = true;
|
|
option (gogoproto.unmarshaler_all) = true;
|
|
option (gogoproto.goproto_unrecognized_all) = false;
|
|
|
|
message ExampleRequest {
|
|
string request = 1;
|
|
string v1beta1_field = 2;
|
|
}
|
|
|
|
message ExampleResponse {
|
|
string error = 1;
|
|
}
|
|
|
|
// Example is a simple example service for general reference on the recommended
|
|
// kubelet plugin model and plugin watcher testing.
|
|
service Example {
|
|
rpc GetExampleInfo(ExampleRequest) returns (ExampleResponse) {}
|
|
}
|