mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 21:47:07 +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 } ``` |
||
---|---|---|
.. | ||
v1beta1 | ||
v1beta2 |