diff --git a/SCANNER_VERSION b/SCANNER_VERSION index 05abc552641ae..1496be766224a 100644 --- a/SCANNER_VERSION +++ b/SCANNER_VERSION @@ -1 +1 @@ -2.27.2 +2.27.x-24-g7c97e9281e diff --git a/central/sensor/service/pipeline/all/factory.go b/central/sensor/service/pipeline/all/factory.go index 090bdbf4462d2..c83dc0125d914 100644 --- a/central/sensor/service/pipeline/all/factory.go +++ b/central/sensor/service/pipeline/all/factory.go @@ -20,7 +20,6 @@ import ( "github.com/stackrox/rox/central/sensor/service/pipeline/networkflowupdate" "github.com/stackrox/rox/central/sensor/service/pipeline/networkpolicies" "github.com/stackrox/rox/central/sensor/service/pipeline/nodes" - "github.com/stackrox/rox/central/sensor/service/pipeline/nodescansv2" "github.com/stackrox/rox/central/sensor/service/pipeline/podevents" "github.com/stackrox/rox/central/sensor/service/pipeline/processindicators" "github.com/stackrox/rox/central/sensor/service/pipeline/reprocessing" @@ -65,9 +64,6 @@ func (s *factoryImpl) PipelineForCluster(ctx context.Context, clusterID string) alerts.GetPipeline(), auditlogstateupdate.GetPipeline(), } - if features.RHCOSNodeScanning.Enabled() { - pipelines = append(pipelines, nodescansv2.GetPipeline()) - } if features.ComplianceOperatorCheckResults.Enabled() { pipelines = append(pipelines, complianceoperatorresults.GetPipeline(), diff --git a/central/sensor/service/pipeline/nodescansv2/pipeline.go b/central/sensor/service/pipeline/nodescansv2/pipeline.go deleted file mode 100644 index e1e9b6bf51e73..0000000000000 --- a/central/sensor/service/pipeline/nodescansv2/pipeline.go +++ /dev/null @@ -1,57 +0,0 @@ -package nodescansv2 - -import ( - "context" - - "github.com/pkg/errors" - countMetrics "github.com/stackrox/rox/central/metrics" - "github.com/stackrox/rox/central/sensor/service/common" - "github.com/stackrox/rox/central/sensor/service/pipeline" - "github.com/stackrox/rox/central/sensor/service/pipeline/reconciliation" - "github.com/stackrox/rox/generated/internalapi/central" - "github.com/stackrox/rox/pkg/logging" - "github.com/stackrox/rox/pkg/metrics" -) - -var ( - log = logging.LoggerForModule() -) - -// GetPipeline returns an instantiation of this particular pipeline -func GetPipeline() pipeline.Fragment { - return NewPipeline() -} - -// NewPipeline returns a new instance of Pipeline. -func NewPipeline() pipeline.Fragment { - return &pipelineImpl{} -} - -type pipelineImpl struct { -} - -func (p *pipelineImpl) Reconcile(ctx context.Context, clusterID string, storeMap *reconciliation.StoreMap) error { - return nil -} - -func (p *pipelineImpl) Match(msg *central.MsgFromSensor) bool { - return msg.GetEvent().GetNodeInventory() != nil -} - -// Run runs the pipeline template on the input and returns the output. -func (p *pipelineImpl) Run(ctx context.Context, clusterID string, msg *central.MsgFromSensor, _ common.MessageInjector) error { - defer countMetrics.IncrementResourceProcessedCounter(pipeline.ActionToOperation(msg.GetEvent().GetAction()), metrics.NodeInventory) - - event := msg.GetEvent() - nodeScan := event.GetNodeInventory() - if nodeScan == nil { - return errors.Errorf("unexpected resource type %T for node inventory", event.GetResource()) - } - - // TODO(ROX-12240, ROX-13053): Do something meaningful with the nodeScan - log.Infof("Central received NodeInventory: %+v", nodeScan) - - return nil -} - -func (p *pipelineImpl) OnFinish(_ string) {} diff --git a/compliance/collection/main.go b/compliance/collection/main.go index 84dd61252ddb9..23345bca40553 100644 --- a/compliance/collection/main.go +++ b/compliance/collection/main.go @@ -277,8 +277,15 @@ func main() { go manageSendingToSensor(ctx, cli, sensorC) // TODO(ROX-12971): Replace with real scanner - scanner := nodescanv2.FakeNodeScanner{} - nodeScansC := manageNodeScanLoop(ctx, env.NodeRescanInterval.DurationSetting(), &scanner) + var scanner nodescanv2.NodeScanner + if features.UseFakeNodeInventory.Enabled() { + log.Infof("Using FakeNodeScanner") + scanner = &nodescanv2.FakeNodeScanner{} + } else { + log.Infof("Using real NodeScan") + scanner = &nodescanv2.NodeScan{} + } + nodeScansC := manageNodeScanLoop(ctx, env.NodeRescanInterval.DurationSetting(), scanner) // multiplex producers (nodeScansC) into the output channel (sensorC) go func() { for { @@ -301,3 +308,37 @@ func main() { stoppedSig.Wait() log.Info("Successfully closed Sensor communication") } + +/* +No certificates found in /usr/local/share/ca-certificates +No certificates found in /etc/pki/injected-ca-trust +main: 2022/11/25 12:24:19.063168 main.go:249: Info: Running StackRox Version: 3.73.x-50-gea9729f302 +main: 2022/11/25 12:24:19.064314 main.go:257: Info: Initialized Sensor gRPC stream connection +main: 2022/11/25 12:24:19.064428 main.go:274: Info: Node Rescan interval: 10m0s +main: 2022/11/25 12:24:19.064451 main.go:285: Info: Using real NodeScan +time="2022-11-25T12:24:19Z" level=info msg="add files from directory" directory=usr/lib/ root=/host +time="2022-11-25T12:24:19Z" level=info msg="add files from directory" directory=var/lib/ root=/host +main: 2022/11/25 12:24:19.132677 main.go:243: Info: Successfully connected to Sensor at sensor.stackrox.svc:443 +time="2022-11-25T12:24:23Z" level=info msg="add files from directory" directory=root/buildinfo/ root=/host +time="2022-11-25T12:24:23Z" level=info msg="add files from directory" directory=etc/ root=/host +collection/nodescanv2: 2022/11/25 12:24:23.250073 nodescan.go:23: Info: Finished node inventory /host scan +collection/nodescanv2: 2022/11/25 12:24:23.250250 nodescan.go:27: Info: Components found under /host: &{ [] []} +panic: runtime error: invalid memory address or nil pointer dereference +[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x18c2287] + +goroutine 60 [running]: +github.com/stackrox/rox/compliance/collection/nodescanv2.convertRHELComponents(0x0) + github.com/stackrox/rox/compliance/collection/nodescanv2/nodescan.go:54 +0x47 +github.com/stackrox/rox/compliance/collection/nodescanv2.protoComponentsFromScanComponents(...) + github.com/stackrox/rox/compliance/collection/nodescanv2/nodescan.go:46 +github.com/stackrox/rox/compliance/collection/nodescanv2.(*NodeScan).Scan(0x8bb2c97000?, {0xc00005a03e, 0x6}) + github.com/stackrox/rox/compliance/collection/nodescanv2/nodescan.go:32 +0x1bb +main.scanNode({0xc00005a03e, 0x6}, {0x23bdee0?, 0x379dac8?}) + github.com/stackrox/rox/compliance/collection/main.go:184 +0x3b +main.manageNodeScanLoop.func1() + github.com/stackrox/rox/compliance/collection/main.go:159 +0xf6 +created by main.manageNodeScanLoop + github.com/stackrox/rox/compliance/collection/main.go:154 +0x125 +Stream closed EOF for stackrox/collector-46n76 (compliance) + +*/ diff --git a/compliance/collection/nodescanv2/fake_nodescan.go b/compliance/collection/nodescanv2/fake_nodescan.go index 59ac7f863080b..f8623e2e4d10f 100644 --- a/compliance/collection/nodescanv2/fake_nodescan.go +++ b/compliance/collection/nodescanv2/fake_nodescan.go @@ -23,24 +23,56 @@ func (f *FakeNodeScanner) Scan(nodeName string) (*storage.NodeInventory, error) NodeName: nodeName, ScanTime: timestamp.TimestampNow(), Components: &scannerV1.Components{ - Namespace: "Testme OS", + Namespace: "Red Hat Enterprise Linux CoreOS 45.82.202008101249-0 (Ootpa)", RhelComponents: []*scannerV1.RHELComponent{ { + Id: int64(6661), Name: "vim-minimal", Namespace: "rhel:8", - Version: "2:7.4.629-6.el8.x86_64", + Version: "2:7.4.629-6.el8", Arch: "x86_64", - Module: "FakeMod", - Cpes: []string{"cpe:/a:redhat:enterprise_linux:8::baseos"}, - AddedBy: "FakeLayer", + Module: "", + Cpes: []string{"cpe:/a:redhat:enterprise_linux:8::baseos", "cpe:/o:redhat:enterprise_linux:8::coreos"}, + AddedBy: "FakeNodeScanner", }, { - Name: "libsolv", + Id: int64(6662), + Name: "tar", Namespace: "rhel:8", - Version: "0.7.7-1.el8.x86_64", + Version: "1.27.1.el8", Arch: "x86_64", - Module: "FakeMod", - AddedBy: "FakeLayer", + Cpes: []string{ + "cpe:/a:redhat:enterprise_linux:8::appstream", "cpe:/a:redhat:rhel:8.3::appstream", + "cpe:/a:redhat:enterprise_linux:8::baseos", "cpe:/a:redhat:rhel:8.3::baseos", + }, + Module: "", + AddedBy: "FakeNodeScanner", + }, + { + Id: int64(6663), + Name: "lz4-libs", + Namespace: "rhel:8", + Version: "1.8.3-3.el8_4", + Arch: "x86_64", + Module: "NoModule", + Cpes: []string{ + "cpe:/a:redhat:enterprise_linux:8::appstream", "cpe:/a:redhat:rhel:8.3::appstream", + "cpe:/a:redhat:enterprise_linux:8::baseos", "cpe:/a:redhat:rhel:8.3::baseos", + }, + AddedBy: "FakeNodeScanner", + }, + { + Id: int64(6664), + Name: "libksba", + Namespace: "rhel:8", + Version: "1.3.5-7.el8", + Arch: "x86_64", + Module: "", + Cpes: []string{ + "cpe:/a:redhat:enterprise_linux:8::appstream", "cpe:/a:redhat:rhel:8.3::appstream", + "cpe:/a:redhat:enterprise_linux:8::baseos", "cpe:/a:redhat:rhel:8.3::baseos", + }, + AddedBy: "FakeNodeScanner", }, }, LanguageComponents: nil, diff --git a/compliance/collection/nodescanv2/fake_nodescan_test.go b/compliance/collection/nodescanv2/fake_nodescan_test.go new file mode 100644 index 0000000000000..5be20a7b51ebd --- /dev/null +++ b/compliance/collection/nodescanv2/fake_nodescan_test.go @@ -0,0 +1,23 @@ +package nodescanv2 + +import ( + "testing" + + "github.com/stackrox/rox/generated/storage" + "github.com/stretchr/testify/suite" +) + +func TestFakeNodeScan(t *testing.T) { + suite.Run(t, &NodeScanSuite{}) +} + +type FakeNodeScanSuite struct { + suite.Suite +} + +func (n *FakeNodeScanSuite) TestMessageFormat() { + fns, err := (&FakeNodeScanner{}).Scan("someNode") + n.Nil(err) + n.NotNil(fns) + n.IsType(&storage.NodeInventory{}, fns) +} diff --git a/compliance/collection/nodescanv2/nodescan.go b/compliance/collection/nodescanv2/nodescan.go index 3885873680b96..bd90798a18f89 100644 --- a/compliance/collection/nodescanv2/nodescan.go +++ b/compliance/collection/nodescanv2/nodescan.go @@ -1,8 +1,11 @@ package nodescanv2 import ( - "github.com/pkg/errors" + timestamp "github.com/gogo/protobuf/types" "github.com/stackrox/rox/generated/storage" + "github.com/stackrox/scanner/database" + scannerV1 "github.com/stackrox/scanner/generated/scanner/api/v1" + "github.com/stackrox/scanner/pkg/analyzer/nodes" ) // NodeScanner defines an interface for V2 NodeScanning @@ -16,5 +19,61 @@ type NodeScan struct { // Scan scans the current node and returns the results as storage.NodeInventory object func (n *NodeScan) Scan(nodeName string) (*storage.NodeInventory, error) { - return nil, errors.New("Not implemented") + componentsHost, err := nodes.Analyze(nodeName, "/host/", false) + log.Info("Finished node inventory /host scan") + if err != nil { + log.Errorf("Error scanning node /host inventory: %v", err) + } + log.Infof("Components found under /host: %v", componentsHost) + if err != nil { + return nil, err + } + + var protoComponents *scannerV1.Components + if componentsHost != nil { + protoComponents = protoComponentsFromScanComponents(componentsHost) + } + m := &storage.NodeInventory{ + NodeName: nodeName, + ScanTime: timestamp.TimestampNow(), + Components: protoComponents, + } + return m, nil +} + +func protoComponentsFromScanComponents(c *nodes.Components) *scannerV1.Components { + var components []*scannerV1.RHELComponent + // For now, we only care about RHEL components, but this must be extended once we support non-RHCOS + if c.CertifiedRHELComponents != nil { + components = convertRHELComponents(c.CertifiedRHELComponents) + } + pc := scannerV1.Components{ + Namespace: c.OSNamespace.Name, + OsComponents: nil, + RhelComponents: components, + LanguageComponents: nil, + } + return &pc +} + +func convertRHELComponents(rc *database.RHELv2Components) []*scannerV1.RHELComponent { + v1rhelc := make([]*scannerV1.RHELComponent, 0) + if rc.Packages == nil { + log.Warn("No RHEL packages found in scan result") + return v1rhelc + } + for _, rhelc := range rc.Packages { + v1rhelc = append(v1rhelc, &scannerV1.RHELComponent{ + Id: 0, + Name: rhelc.Name, + Namespace: rc.Dist, // check + Version: rhelc.Version, + Arch: rhelc.Arch, + Module: rhelc.Module, + Cpes: rc.CPEs, // do we just append all here? + Executables: rhelc.Executables, + // AddedBy: "", // do we know? + }) + } + return v1rhelc } diff --git a/deploy/k8s/deploy-local.sh b/deploy/k8s/deploy-local.sh index 6bc6e3dc8ca00..f8c9085137336 100755 --- a/deploy/k8s/deploy-local.sh +++ b/deploy/k8s/deploy-local.sh @@ -11,3 +11,4 @@ export POD_SECURITY_POLICIES="${POD_SECURITY_POLICIES:-false}" # shellcheck source=/dev/null "$DIR"/deploy.sh + diff --git a/generated/api/v1/node_service.swagger.json b/generated/api/v1/node_service.swagger.json index ac65353990d0e..d3c3a4c1d0b83 100644 --- a/generated/api/v1/node_service.swagger.json +++ b/generated/api/v1/node_service.swagger.json @@ -170,6 +170,210 @@ } } }, + "scannerV1Components": { + "type": "object", + "properties": { + "namespace": { + "type": "string" + }, + "osComponents": { + "type": "array", + "items": { + "$ref": "#/definitions/scannerV1OSComponent" + } + }, + "rhelComponents": { + "type": "array", + "items": { + "$ref": "#/definitions/scannerV1RHELComponent" + } + }, + "languageComponents": { + "type": "array", + "items": { + "$ref": "#/definitions/scannerV1LanguageComponent" + } + } + } + }, + "scannerV1Executable": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "requiredFeatures": { + "type": "array", + "items": { + "$ref": "#/definitions/scannerV1FeatureNameVersion" + } + } + } + }, + "scannerV1FeatureNameVersion": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "scannerV1JavaComponent": { + "type": "object", + "properties": { + "implementationVersion": { + "type": "string" + }, + "mavenVersion": { + "type": "string" + }, + "origins": { + "type": "array", + "items": { + "type": "string" + } + }, + "specificationVersion": { + "type": "string" + }, + "bundleName": { + "type": "string" + } + } + }, + "scannerV1LanguageComponent": { + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/scannerV1SourceType" + }, + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "location": { + "type": "string" + }, + "java": { + "$ref": "#/definitions/scannerV1JavaComponent" + }, + "python": { + "$ref": "#/definitions/scannerV1PythonComponent" + }, + "addedBy": { + "type": "string" + } + } + }, + "scannerV1Note": { + "type": "string", + "enum": [ + "OS_CVES_UNAVAILABLE", + "OS_CVES_STALE", + "LANGUAGE_CVES_UNAVAILABLE", + "CERTIFIED_RHEL_SCAN_UNAVAILABLE" + ], + "default": "OS_CVES_UNAVAILABLE" + }, + "scannerV1OSComponent": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "version": { + "type": "string" + }, + "addedBy": { + "type": "string" + }, + "executables": { + "type": "array", + "items": { + "$ref": "#/definitions/scannerV1Executable" + } + } + } + }, + "scannerV1PythonComponent": { + "type": "object", + "properties": { + "homepage": { + "type": "string" + }, + "authorEmail": { + "type": "string" + }, + "downloadUrl": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + } + } + }, + "scannerV1RHELComponent": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "int64" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "version": { + "type": "string" + }, + "arch": { + "type": "string" + }, + "module": { + "type": "string" + }, + "cpes": { + "type": "array", + "items": { + "type": "string" + } + }, + "addedBy": { + "type": "string" + }, + "executables": { + "type": "array", + "items": { + "$ref": "#/definitions/scannerV1Executable" + } + } + } + }, + "scannerV1SourceType": { + "type": "string", + "enum": [ + "UNSET_SOURCE_TYPE", + "JAVA", + "PYTHON", + "NPM", + "GEM", + "DOTNETCORERUNTIME" + ], + "default": "UNSET_SOURCE_TYPE" + }, "storageCVEInfo": { "type": "object", "properties": { @@ -618,6 +822,9 @@ "format": "date-time", "description": "Time we received an update from Kubernetes." }, + "nodeInventory": { + "$ref": "#/definitions/storageNodeInventory" + }, "scan": { "$ref": "#/definitions/storageNodeScan" }, @@ -652,7 +859,31 @@ } } }, - "title": "Node represents information about a node in the cluster.\nnext available tag: 28" + "title": "Node represents information about a node in the cluster.\nnext available tag: 29" + }, + "storageNodeInventory": { + "type": "object", + "properties": { + "nodeId": { + "type": "string" + }, + "nodeName": { + "type": "string" + }, + "scanTime": { + "type": "string", + "format": "date-time" + }, + "components": { + "$ref": "#/definitions/scannerV1Components" + }, + "notes": { + "type": "array", + "items": { + "$ref": "#/definitions/scannerV1Note" + } + } + } }, "storageNodeNote": { "type": "string", diff --git a/generated/internalapi/central/sensor_events.pb.go b/generated/internalapi/central/sensor_events.pb.go index eec7b95739321..a670222813354 100644 --- a/generated/internalapi/central/sensor_events.pb.go +++ b/generated/internalapi/central/sensor_events.pb.go @@ -323,7 +323,6 @@ type SensorEvent struct { // *SensorEvent_Namespace // *SensorEvent_Secret // *SensorEvent_Node - // *SensorEvent_NodeInventory // *SensorEvent_ServiceAccount // *SensorEvent_Role // *SensorEvent_Binding @@ -403,9 +402,6 @@ type SensorEvent_Secret struct { type SensorEvent_Node struct { Node *storage.Node `protobuf:"bytes,9,opt,name=node,proto3,oneof" json:"node,omitempty"` } -type SensorEvent_NodeInventory struct { - NodeInventory *storage.NodeInventory `protobuf:"bytes,25,opt,name=node_inventory,json=nodeInventory,proto3,oneof" json:"node_inventory,omitempty"` -} type SensorEvent_ServiceAccount struct { ServiceAccount *storage.ServiceAccount `protobuf:"bytes,14,opt,name=service_account,json=serviceAccount,proto3,oneof" json:"service_account,omitempty"` } @@ -518,17 +514,6 @@ func (m *SensorEvent_Node) Clone() isSensorEvent_Resource { cloned.Node = m.Node.Clone() return cloned } -func (*SensorEvent_NodeInventory) isSensorEvent_Resource() {} -func (m *SensorEvent_NodeInventory) Clone() isSensorEvent_Resource { - if m == nil { - return nil - } - cloned := new(SensorEvent_NodeInventory) - *cloned = *m - - cloned.NodeInventory = m.NodeInventory.Clone() - return cloned -} func (*SensorEvent_ServiceAccount) isSensorEvent_Resource() {} func (m *SensorEvent_ServiceAccount) Clone() isSensorEvent_Resource { if m == nil { @@ -765,13 +750,6 @@ func (m *SensorEvent) GetNode() *storage.Node { return nil } -func (m *SensorEvent) GetNodeInventory() *storage.NodeInventory { - if x, ok := m.GetResource().(*SensorEvent_NodeInventory); ok { - return x.NodeInventory - } - return nil -} - func (m *SensorEvent) GetServiceAccount() *storage.ServiceAccount { if x, ok := m.GetResource().(*SensorEvent_ServiceAccount); ok { return x.ServiceAccount @@ -886,7 +864,6 @@ func (*SensorEvent) XXX_OneofWrappers() []interface{} { (*SensorEvent_Namespace)(nil), (*SensorEvent_Secret)(nil), (*SensorEvent_Node)(nil), - (*SensorEvent_NodeInventory)(nil), (*SensorEvent_ServiceAccount)(nil), (*SensorEvent_Role)(nil), (*SensorEvent_Binding)(nil), @@ -2409,118 +2386,116 @@ func init() { } var fileDescriptor_6ea3082f8d4cc74c = []byte{ - // 1761 bytes of a gzipped FileDescriptorProto + // 1737 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xbd, 0x73, 0x23, 0x49, - 0x15, 0x1f, 0x59, 0x96, 0x64, 0x3f, 0x7d, 0xd8, 0x6e, 0x5b, 0xf6, 0x58, 0xe7, 0xf3, 0xf9, 0xb4, - 0xc7, 0xae, 0xa1, 0x38, 0xbb, 0x6a, 0xf7, 0xa0, 0x80, 0x82, 0x05, 0xdb, 0x2b, 0x4a, 0xaa, 0x3d, - 0x7f, 0x54, 0xcb, 0xde, 0xaa, 0x3b, 0x82, 0xa9, 0xd9, 0xe9, 0xb6, 0x77, 0xf0, 0x68, 0x7a, 0xae, - 0x7b, 0xb4, 0x94, 0x02, 0x02, 0x22, 0x12, 0x02, 0x42, 0x32, 0x72, 0x12, 0x62, 0xfe, 0x03, 0x42, - 0xfe, 0x04, 0x6a, 0x49, 0x48, 0x89, 0x48, 0xa9, 0xfe, 0x98, 0x99, 0x96, 0x2c, 0xfb, 0x5c, 0x64, - 0xd3, 0xbf, 0xf7, 0x7b, 0x9f, 0xdd, 0xfd, 0x5e, 0x4b, 0xf0, 0x2c, 0x8c, 0x53, 0xca, 0x63, 0x3f, - 0xf2, 0x93, 0xf0, 0x30, 0xa0, 0x71, 0xca, 0xfd, 0xe8, 0x50, 0xd0, 0x58, 0x30, 0xee, 0xd1, 0xf7, - 0x34, 0x4e, 0xc5, 0x41, 0xc2, 0x59, 0xca, 0x50, 0xcd, 0x08, 0x3b, 0xdf, 0x9f, 0xd2, 0x60, 0xa3, - 0x24, 0x0a, 0xfd, 0x38, 0xa0, 0xd6, 0xa7, 0x47, 0xfc, 0xd4, 0xd7, 0x6a, 0x9d, 0x75, 0x91, 0x32, - 0xee, 0xdf, 0xd0, 0x43, 0x3f, 0xa2, 0x3c, 0x35, 0x60, 0x3b, 0x03, 0x83, 0x68, 0x2c, 0x52, 0xca, - 0x0d, 0xec, 0x66, 0x30, 0xa1, 0x49, 0xc4, 0x26, 0x23, 0x1a, 0x67, 0x0a, 0x7b, 0x99, 0x24, 0xf6, - 0x47, 0x54, 0x24, 0x7e, 0x40, 0xbd, 0x11, 0x4d, 0x7d, 0xcb, 0xcf, 0x4e, 0xce, 0xa0, 0xe9, 0x6f, - 0x18, 0xbf, 0xf5, 0x12, 0x16, 0x85, 0xc1, 0xc4, 0x48, 0x51, 0x2e, 0x65, 0x84, 0x1a, 0x6c, 0x23, - 0xc3, 0x04, 0x0d, 0x38, 0xcd, 0x3c, 0x7d, 0x5c, 0xa0, 0xfc, 0x7d, 0x18, 0x50, 0xcf, 0x0f, 0x02, - 0x36, 0xce, 0x03, 0xc9, 0x0d, 0xf1, 0xb7, 0x7e, 0x30, 0x6b, 0x68, 0xca, 0xe5, 0x27, 0x39, 0xca, - 0x59, 0x40, 0x85, 0xf0, 0xc2, 0x98, 0x84, 0x81, 0x9f, 0x32, 0x3e, 0x4b, 0x08, 0x47, 0xfe, 0x0d, - 0xf5, 0x64, 0x55, 0x6f, 0xb8, 0x9f, 0x86, 0x2c, 0x36, 0x84, 0x4f, 0xf3, 0x2a, 0x15, 0x95, 0x65, - 0x09, 0xe5, 0x85, 0x8d, 0xee, 0x4b, 0xd8, 0xc2, 0xd4, 0x38, 0x78, 0x95, 0x17, 0x0d, 0x87, 0xe2, - 0x16, 0x3d, 0x81, 0x66, 0x51, 0x46, 0x2f, 0x24, 0x6e, 0x69, 0xaf, 0xb4, 0xbf, 0x8c, 0x1b, 0x05, - 0x38, 0x20, 0xdd, 0xff, 0x94, 0xa0, 0x71, 0x24, 0x37, 0x06, 0x53, 0x31, 0x8e, 0x52, 0xf1, 0x28, - 0x2d, 0xf4, 0x14, 0xaa, 0x6a, 0x37, 0x85, 0xbb, 0xb0, 0x57, 0xde, 0xaf, 0x3f, 0x6f, 0x1d, 0x98, - 0x48, 0x0f, 0xb4, 0x2d, 0x23, 0x45, 0x9f, 0x43, 0x45, 0xa4, 0xfe, 0x0d, 0x75, 0xcb, 0x7b, 0xa5, - 0xfd, 0xd6, 0xf3, 0xad, 0x9c, 0xf6, 0x65, 0x78, 0x4d, 0x83, 0x49, 0x10, 0xd1, 0xa1, 0x14, 0x63, - 0xcd, 0x42, 0x5f, 0x40, 0x55, 0xb0, 0x31, 0x0f, 0xa8, 0xbb, 0xa8, 0xf8, 0x3b, 0x07, 0xe6, 0xc8, - 0x1d, 0xd8, 0x21, 0x1e, 0x0c, 0x15, 0x07, 0x1b, 0x6e, 0xf7, 0x10, 0xaa, 0x1a, 0x41, 0x1b, 0xb0, - 0xfa, 0xaa, 0x77, 0xf1, 0xe5, 0xf9, 0x57, 0xa7, 0xbd, 0xb3, 0x4b, 0xaf, 0xf7, 0xa6, 0x77, 0x76, - 0xb9, 0xea, 0xa0, 0x15, 0xa8, 0x1f, 0x5d, 0xbd, 0x1a, 0x64, 0x40, 0xa9, 0xfb, 0x35, 0x54, 0x2f, - 0xc3, 0x51, 0x18, 0xdf, 0xa0, 0x5d, 0x00, 0x12, 0x8a, 0xc4, 0x4f, 0x83, 0x77, 0x94, 0x9b, 0x4c, - 0x2d, 0x04, 0x75, 0x60, 0x89, 0x53, 0x13, 0xd2, 0x82, 0x92, 0xe6, 0x6b, 0xb4, 0x01, 0x95, 0xd8, - 0x8f, 0x99, 0x50, 0xb9, 0x95, 0xb1, 0x5e, 0x74, 0xff, 0xd6, 0x84, 0xfa, 0x50, 0x5d, 0x9e, 0x9e, - 0xbc, 0x3b, 0xa8, 0x05, 0x0b, 0x79, 0x0d, 0x17, 0x42, 0x82, 0x0e, 0xa1, 0xea, 0x07, 0x72, 0x8b, - 0x95, 0x3d, 0x59, 0x92, 0x2c, 0x45, 0x6c, 0x0c, 0x1f, 0x29, 0x31, 0x36, 0x34, 0xf4, 0x0c, 0xaa, - 0xa9, 0x0a, 0x56, 0xf9, 0xa9, 0x3f, 0x5f, 0xc9, 0x15, 0x74, 0x0e, 0xd8, 0x88, 0xd1, 0xcf, 0xa1, - 0x35, 0x7d, 0xf2, 0x55, 0x11, 0xeb, 0xcf, 0x37, 0xf3, 0xa2, 0x9f, 0x69, 0xf1, 0x85, 0x92, 0xf6, - 0x1d, 0xdc, 0x8c, 0x6d, 0x00, 0xfd, 0x00, 0xa0, 0xd8, 0x64, 0xb7, 0xa2, 0x94, 0xd7, 0x73, 0xe5, - 0xe2, 0x70, 0xf5, 0x1d, 0x6c, 0x11, 0xd1, 0x1e, 0x94, 0x13, 0x46, 0xdc, 0x75, 0xc5, 0x6f, 0xe4, - 0xfc, 0x0b, 0x46, 0xfa, 0x0e, 0x96, 0x22, 0xf4, 0x13, 0x58, 0xce, 0x6f, 0xad, 0x5b, 0x55, 0xbc, - 0x4e, 0x11, 0x54, 0x26, 0x39, 0x35, 0xd7, 0xb9, 0xef, 0xe0, 0x82, 0x8e, 0xbe, 0x0b, 0x55, 0x7d, - 0x3b, 0xdd, 0x9a, 0x49, 0x3f, 0x53, 0x1c, 0x2a, 0xb8, 0xef, 0x60, 0x43, 0x40, 0x4f, 0x60, 0x51, - 0x5e, 0x6e, 0x77, 0x59, 0x11, 0x9b, 0x85, 0x07, 0x46, 0x68, 0xdf, 0xc1, 0x4a, 0xa8, 0xaa, 0xc4, - 0x88, 0xbc, 0x6c, 0x72, 0x7b, 0x18, 0x9f, 0xb8, 0xdb, 0xb3, 0x55, 0x62, 0x84, 0x0e, 0x32, 0xa9, - 0xaa, 0x92, 0x0d, 0xa0, 0x63, 0x58, 0x99, 0x69, 0x0c, 0x6e, 0x4b, 0x59, 0xd8, 0xb2, 0x22, 0x53, - 0xf2, 0x23, 0x2d, 0xee, 0x3b, 0xb8, 0x25, 0xa6, 0x10, 0xf4, 0x14, 0x16, 0x39, 0x8b, 0xa8, 0xbb, - 0xa2, 0x14, 0x57, 0x73, 0xc5, 0xd7, 0x3f, 0x12, 0x98, 0x45, 0x2a, 0x58, 0x29, 0x47, 0x2f, 0xa0, - 0xf6, 0x56, 0x36, 0x8d, 0xf8, 0xc6, 0x5d, 0x9d, 0xf1, 0x61, 0xa8, 0xc7, 0x5a, 0xdc, 0x77, 0x70, - 0xc6, 0x44, 0x7d, 0x58, 0xbb, 0xd3, 0x70, 0xdc, 0x25, 0xa5, 0xbe, 0x5d, 0xec, 0x8e, 0x66, 0x0c, - 0x32, 0x42, 0xdf, 0xc1, 0xab, 0xc9, 0x0c, 0x66, 0x2c, 0xbd, 0x0f, 0x09, 0xe5, 0x79, 0xb3, 0x75, - 0xe1, 0xae, 0x25, 0xc5, 0xb0, 0xb6, 0x6f, 0x35, 0x99, 0xc1, 0xd0, 0x4b, 0xa8, 0x8a, 0x49, 0x1c, - 0x50, 0xe2, 0xd6, 0x95, 0xfa, 0x67, 0xf9, 0x21, 0xb6, 0xee, 0x4a, 0x7e, 0x03, 0xc4, 0x50, 0x71, - 0xd5, 0xd6, 0xaa, 0x2f, 0x74, 0x09, 0x6d, 0xc6, 0x83, 0x77, 0x54, 0xa4, 0xaa, 0xf7, 0x15, 0xd1, - 0x34, 0x94, 0xb9, 0x8f, 0xf3, 0x68, 0xce, 0x2d, 0x96, 0x15, 0xd1, 0x06, 0x9b, 0x83, 0xcb, 0xfc, - 0xee, 0x74, 0x5e, 0xb7, 0x39, 0x93, 0xdf, 0x40, 0x32, 0x06, 0x05, 0x41, 0xe6, 0x17, 0xce, 0x60, - 0xe8, 0x0a, 0x36, 0x78, 0xd6, 0x85, 0x3d, 0xeb, 0x12, 0xad, 0x29, 0x63, 0x7b, 0xd6, 0x1d, 0x9f, - 0xdb, 0xaa, 0xfb, 0x0e, 0x5e, 0xe7, 0x77, 0x45, 0xe8, 0xa7, 0xd0, 0x54, 0x8d, 0xd4, 0xe3, 0xba, - 0xf3, 0xb9, 0x48, 0xd9, 0x6b, 0xcf, 0x6d, 0x8b, 0x7d, 0x07, 0x37, 0x7c, 0xbb, 0x93, 0x5f, 0x43, - 0x67, 0xce, 0xdc, 0x30, 0xb6, 0xdc, 0x0d, 0x65, 0xea, 0x69, 0x9e, 0xe7, 0x49, 0x4e, 0x3d, 0x37, - 0xcc, 0x93, 0x77, 0x34, 0xb8, 0xd5, 0xc6, 0xfa, 0x0e, 0x76, 0x83, 0x3b, 0x04, 0x2d, 0x43, 0x04, - 0x3e, 0x9a, 0xe7, 0x27, 0xe1, 0xec, 0x3a, 0x8c, 0xa8, 0xdb, 0x56, 0x8e, 0xba, 0x0f, 0x38, 0xba, - 0xd0, 0xcc, 0xbe, 0x83, 0xb7, 0x83, 0xfb, 0x84, 0xe8, 0x57, 0xe0, 0xce, 0xcd, 0x66, 0x1c, 0x51, - 0x77, 0x53, 0xb9, 0xf8, 0xe4, 0x01, 0x17, 0x78, 0xac, 0xec, 0x6f, 0x06, 0x73, 0x25, 0xe8, 0xf7, - 0x25, 0xd8, 0x9f, 0x67, 0x5d, 0x04, 0x7e, 0xec, 0x09, 0x9a, 0xa6, 0x61, 0x7c, 0xe3, 0x65, 0x57, - 0x71, 0x4b, 0x79, 0xfb, 0xfc, 0x01, 0x6f, 0xc3, 0xc0, 0x8f, 0x87, 0x5a, 0xab, 0xb8, 0xa0, 0x9f, - 0x05, 0x8f, 0xe0, 0xdd, 0x97, 0xa6, 0x0c, 0xc4, 0x75, 0xbf, 0x35, 0x4d, 0x69, 0x70, 0x7e, 0x9a, - 0x52, 0xd2, 0x59, 0x83, 0x95, 0x99, 0x3b, 0x76, 0x0c, 0xc5, 0x84, 0xeb, 0xfe, 0xb7, 0x04, 0x6b, - 0xe6, 0x3e, 0xc6, 0xd7, 0x8c, 0x07, 0xd4, 0x1c, 0xc2, 0x3a, 0x2d, 0x96, 0x6a, 0x94, 0xb5, 0xac, - 0xfe, 0x6d, 0x51, 0xcd, 0xe4, 0xb2, 0xe9, 0xe8, 0x17, 0x53, 0x43, 0x65, 0x41, 0x65, 0xb0, 0x9b, - 0x9f, 0xdf, 0xe2, 0xac, 0x5b, 0x66, 0x66, 0xe6, 0xcb, 0x1b, 0x40, 0x01, 0x8b, 0x53, 0x3f, 0x8c, - 0x29, 0xf7, 0xc2, 0x58, 0xa4, 0x32, 0x2d, 0x33, 0x0c, 0xbf, 0x93, 0x5b, 0x3a, 0xc9, 0x28, 0x03, - 0xc3, 0x98, 0x36, 0xb8, 0x16, 0xcc, 0xca, 0xa7, 0x32, 0xff, 0x77, 0x09, 0xda, 0x73, 0x63, 0x79, - 0xdc, 0x73, 0xe8, 0x19, 0xac, 0x58, 0x24, 0x39, 0xbc, 0xcc, 0x6b, 0xa1, 0x55, 0xc0, 0x72, 0xce, - 0xcd, 0x10, 0xd3, 0x49, 0xa2, 0x13, 0x99, 0x22, 0x5e, 0x4e, 0x12, 0x8a, 0x76, 0xec, 0x91, 0xb9, - 0xa8, 0x28, 0xd6, 0x50, 0xdc, 0x86, 0x25, 0xdd, 0x17, 0x42, 0xa2, 0xe6, 0xf4, 0x32, 0xae, 0xa9, - 0xf5, 0x80, 0xa0, 0x4f, 0xa0, 0xae, 0xa7, 0xbf, 0x0e, 0xa3, 0xaa, 0x9f, 0x34, 0x1a, 0x92, 0x21, - 0x74, 0xff, 0x50, 0x82, 0x9d, 0x87, 0x8a, 0x85, 0xda, 0x50, 0x4d, 0x18, 0x91, 0xa6, 0x75, 0x0e, - 0x95, 0x84, 0x91, 0x01, 0x41, 0x57, 0xb0, 0x69, 0x85, 0x6e, 0x9f, 0x88, 0xf2, 0x63, 0x36, 0x15, - 0xb7, 0xc9, 0x3c, 0xb8, 0xfb, 0x97, 0x12, 0x34, 0x87, 0x01, 0xf7, 0x13, 0x7a, 0xc2, 0x46, 0x23, - 0x3f, 0x26, 0xe8, 0x23, 0x58, 0x16, 0x0a, 0x28, 0xaa, 0xbd, 0xa4, 0x81, 0x01, 0x41, 0x3f, 0x86, - 0x86, 0x48, 0x7d, 0x9e, 0x7a, 0x1a, 0x31, 0x07, 0x6a, 0xa3, 0x18, 0x27, 0x52, 0xa8, 0xed, 0xf5, - 0x1d, 0x5c, 0x17, 0xc5, 0x12, 0xfd, 0x10, 0xea, 0xb7, 0x61, 0x14, 0x65, 0x9a, 0x65, 0xf3, 0xbe, - 0xc9, 0x34, 0x5f, 0x87, 0x51, 0x94, 0x2b, 0xc2, 0x6d, 0xbe, 0x3a, 0x5e, 0x86, 0x5a, 0xa0, 0x43, - 0xeb, 0x0e, 0xa0, 0x6e, 0x39, 0x90, 0x9b, 0xf4, 0x8e, 0x89, 0x54, 0xed, 0x8b, 0x5b, 0xda, 0x2b, - 0xcb, 0x4d, 0xca, 0x01, 0x29, 0x95, 0xc5, 0x25, 0x3e, 0x27, 0xfa, 0x99, 0xbc, 0x8c, 0x0b, 0xa0, - 0xdb, 0x00, 0x28, 0x3c, 0x76, 0x7f, 0xb7, 0x00, 0x0d, 0xfd, 0x79, 0x95, 0x10, 0x3f, 0xa5, 0x0f, - 0x17, 0xe1, 0x35, 0xac, 0x59, 0x3d, 0x82, 0xd3, 0x74, 0xcc, 0x63, 0x53, 0x89, 0x9d, 0x83, 0x42, - 0x62, 0xf5, 0x07, 0xac, 0x38, 0x72, 0x74, 0x05, 0x33, 0x98, 0x7c, 0x10, 0x19, 0x4f, 0xaa, 0x58, - 0x94, 0x98, 0xca, 0x6c, 0x16, 0x35, 0x55, 0xe2, 0xa1, 0x96, 0xca, 0x07, 0x91, 0xb0, 0x01, 0x39, - 0xa4, 0x8c, 0x01, 0x59, 0x34, 0x4a, 0xcc, 0xb3, 0xb3, 0x3d, 0xa3, 0xff, 0x5a, 0x09, 0xe5, 0x90, - 0x12, 0xd6, 0xfa, 0x78, 0x09, 0xaa, 0x63, 0x95, 0x72, 0xf7, 0x8b, 0xec, 0x20, 0x64, 0x86, 0x9f, - 0x40, 0x93, 0x72, 0xae, 0xa6, 0xbd, 0x10, 0xf2, 0x47, 0x84, 0xb9, 0x7a, 0x0a, 0x3c, 0xd5, 0x58, - 0xf7, 0x45, 0x56, 0x38, 0x6d, 0xef, 0x71, 0x4a, 0x7f, 0x5d, 0x80, 0x4d, 0xfb, 0x31, 0x1c, 0x52, - 0x91, 0x9d, 0xbe, 0xb6, 0x7c, 0x6f, 0x7e, 0x93, 0x55, 0xbd, 0x8c, 0x2b, 0x82, 0x7e, 0x33, 0x20, - 0xe8, 0x08, 0x6a, 0x89, 0x3f, 0x89, 0x98, 0x4f, 0x4c, 0xa1, 0x9f, 0xe5, 0xe9, 0xcd, 0x37, 0x74, - 0x70, 0xa1, 0xe9, 0x38, 0xd3, 0xeb, 0xfc, 0x1a, 0x2a, 0x47, 0x49, 0x12, 0x4d, 0xd4, 0xed, 0x95, - 0x1f, 0xc5, 0xd6, 0xd6, 0xd4, 0x7a, 0x40, 0xd0, 0x2f, 0xa1, 0x31, 0x62, 0x24, 0xbc, 0x96, 0x0f, - 0xb0, 0xec, 0x37, 0x82, 0x3d, 0x3b, 0xa7, 0x5e, 0xf0, 0xa7, 0x16, 0x13, 0x4f, 0xe9, 0x75, 0xce, - 0xa1, 0x66, 0xfc, 0xa3, 0x9f, 0x41, 0x45, 0x59, 0x57, 0xae, 0xec, 0x8e, 0x79, 0x4f, 0xdc, 0x2a, - 0xc6, 0xbe, 0x83, 0xb5, 0xd6, 0x71, 0x05, 0xca, 0xc1, 0x88, 0x74, 0xff, 0x5c, 0x86, 0xad, 0x19, - 0x05, 0x4c, 0x45, 0xc2, 0x62, 0x41, 0xef, 0x2b, 0xd9, 0xf1, 0x6c, 0xc9, 0xf6, 0xef, 0x73, 0x9d, - 0x59, 0xba, 0x5b, 0x33, 0xf1, 0x88, 0x9a, 0x9d, 0xc3, 0xda, 0x38, 0x26, 0xcc, 0xfb, 0x3f, 0x0b, - 0xb7, 0x2a, 0x95, 0x6d, 0xa4, 0xf3, 0x29, 0x54, 0x7a, 0xf2, 0xb4, 0x20, 0x17, 0x6a, 0xd3, 0xa7, - 0x28, 0x5b, 0x76, 0xfe, 0x58, 0x2a, 0x0a, 0xfc, 0x12, 0x2a, 0xea, 0x70, 0x99, 0x02, 0x3f, 0xfd, - 0xd6, 0x2c, 0x95, 0x71, 0x59, 0x61, 0xa5, 0x26, 0xf5, 0xf5, 0x06, 0x2d, 0x3c, 0x52, 0x7f, 0xee, - 0x0e, 0x7d, 0xef, 0xb7, 0xd0, 0x9a, 0xfe, 0x05, 0x89, 0xb6, 0xa1, 0x7d, 0x75, 0x36, 0xec, 0x5d, - 0x7a, 0x47, 0x27, 0x97, 0x83, 0xf3, 0x33, 0x0f, 0xf7, 0x86, 0xe7, 0x57, 0xf8, 0xa4, 0xb7, 0xea, - 0xa0, 0x75, 0x58, 0x39, 0xc1, 0xbd, 0xa3, 0xcb, 0x5e, 0x01, 0x96, 0x24, 0x88, 0x7b, 0xa7, 0xe7, - 0x6f, 0x2c, 0x70, 0x41, 0x82, 0x57, 0x17, 0xaf, 0xa6, 0x98, 0x65, 0xb4, 0x06, 0xcd, 0xe1, 0x57, - 0x67, 0x27, 0x05, 0xb4, 0x78, 0xbc, 0xfd, 0xf7, 0x0f, 0xbb, 0xa5, 0x7f, 0x7c, 0xd8, 0x2d, 0xfd, - 0xf3, 0xc3, 0x6e, 0xe9, 0x4f, 0xff, 0xda, 0x75, 0xbe, 0xce, 0xfe, 0x2e, 0x7a, 0x5b, 0x55, 0xff, - 0x54, 0xbc, 0xf8, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0xc4, 0xbe, 0xbe, 0x69, 0x12, 0x00, - 0x00, + 0x15, 0x1f, 0x49, 0x96, 0x64, 0x3f, 0xc9, 0xb2, 0xdd, 0xb6, 0xec, 0xb1, 0xce, 0xe7, 0xf5, 0x69, + 0x8f, 0x5d, 0x43, 0x71, 0x76, 0xd5, 0xee, 0x41, 0x01, 0x05, 0x0b, 0xb6, 0x57, 0x94, 0x54, 0x7b, + 0xfe, 0xa8, 0x96, 0xbd, 0x55, 0x77, 0x04, 0x53, 0xb3, 0xd3, 0x6d, 0x7b, 0xf0, 0x68, 0x7a, 0xae, + 0x7b, 0xb4, 0x94, 0x03, 0x02, 0x22, 0x12, 0x02, 0x42, 0x32, 0x72, 0x12, 0xfe, 0x0d, 0x42, 0xfe, + 0x04, 0x6a, 0x49, 0x48, 0x89, 0x20, 0xa4, 0xfa, 0x63, 0x66, 0x5a, 0xb2, 0xec, 0x75, 0x91, 0x4d, + 0xff, 0xde, 0xef, 0x7d, 0x76, 0xf7, 0x7b, 0x2d, 0xc1, 0xf3, 0x30, 0x4e, 0x29, 0x8f, 0xfd, 0xc8, + 0x4f, 0xc2, 0xfd, 0x80, 0xc6, 0x29, 0xf7, 0xa3, 0x7d, 0x41, 0x63, 0xc1, 0xb8, 0x47, 0xdf, 0xd3, + 0x38, 0x15, 0x7b, 0x09, 0x67, 0x29, 0x43, 0x75, 0x23, 0xec, 0x7c, 0x7f, 0x42, 0x83, 0x8d, 0x92, + 0x28, 0xf4, 0xe3, 0x80, 0x5a, 0x9f, 0x1e, 0xf1, 0x53, 0x5f, 0xab, 0x75, 0x56, 0x45, 0xca, 0xb8, + 0x7f, 0x45, 0xf7, 0xfd, 0x88, 0xf2, 0xd4, 0x80, 0xed, 0x0c, 0x0c, 0xa2, 0xb1, 0x48, 0x29, 0x37, + 0xb0, 0x9b, 0xc1, 0x84, 0x26, 0x11, 0xbb, 0x1d, 0xd1, 0x38, 0x53, 0xd8, 0xc9, 0x24, 0xb1, 0x3f, + 0xa2, 0x22, 0xf1, 0x03, 0xea, 0x8d, 0x68, 0xea, 0x5b, 0x7e, 0xb6, 0x72, 0x06, 0x4d, 0x7f, 0xc3, + 0xf8, 0x8d, 0x97, 0xb0, 0x28, 0x0c, 0x6e, 0x8d, 0x14, 0xe5, 0x52, 0x46, 0xa8, 0xc1, 0xd6, 0x32, + 0x4c, 0xd0, 0x80, 0xd3, 0xcc, 0xd3, 0xa7, 0x05, 0xca, 0xdf, 0x87, 0x01, 0xf5, 0xfc, 0x20, 0x60, + 0xe3, 0x3c, 0x90, 0xdc, 0x10, 0x7f, 0xe7, 0x07, 0xd3, 0x86, 0x26, 0x5c, 0x3e, 0xc9, 0x51, 0xce, + 0x02, 0x2a, 0x84, 0x17, 0xc6, 0x24, 0x0c, 0xfc, 0x94, 0xf1, 0x69, 0x42, 0x38, 0xf2, 0xaf, 0xa8, + 0x27, 0xab, 0x7a, 0xc5, 0xfd, 0x34, 0x64, 0xb1, 0x21, 0x7c, 0x96, 0x57, 0xa9, 0xa8, 0x2c, 0x4b, + 0x28, 0x2f, 0x6c, 0x74, 0x5f, 0xc1, 0x06, 0xa6, 0xc6, 0xc1, 0xeb, 0xbc, 0x68, 0x38, 0x14, 0x37, + 0xe8, 0x29, 0x2c, 0x16, 0x65, 0xf4, 0x42, 0xe2, 0x96, 0x76, 0x4a, 0xbb, 0x0b, 0xb8, 0x59, 0x80, + 0x03, 0xd2, 0xfd, 0x77, 0x09, 0x9a, 0x07, 0x72, 0x63, 0x30, 0x15, 0xe3, 0x28, 0x15, 0x8f, 0xd2, + 0x42, 0xcf, 0xa0, 0xa6, 0x76, 0x53, 0xb8, 0xe5, 0x9d, 0xca, 0x6e, 0xe3, 0x45, 0x6b, 0xcf, 0x44, + 0xba, 0xa7, 0x6d, 0x19, 0x29, 0xfa, 0x02, 0xaa, 0x22, 0xf5, 0xaf, 0xa8, 0x5b, 0xd9, 0x29, 0xed, + 0xb6, 0x5e, 0x6c, 0xe4, 0xb4, 0xaf, 0xc2, 0x4b, 0x1a, 0xdc, 0x06, 0x11, 0x1d, 0x4a, 0x31, 0xd6, + 0x2c, 0xf4, 0x25, 0xd4, 0x04, 0x1b, 0xf3, 0x80, 0xba, 0x73, 0x8a, 0xbf, 0xb5, 0x67, 0x8e, 0xdc, + 0x9e, 0x1d, 0xe2, 0xde, 0x50, 0x71, 0xb0, 0xe1, 0x76, 0xf7, 0xa1, 0xa6, 0x11, 0xb4, 0x06, 0xcb, + 0xaf, 0x7b, 0x67, 0x5f, 0x9d, 0x7e, 0x7d, 0xdc, 0x3b, 0x39, 0xf7, 0x7a, 0x6f, 0x7b, 0x27, 0xe7, + 0xcb, 0x0e, 0x5a, 0x82, 0xc6, 0xc1, 0xc5, 0xeb, 0x41, 0x06, 0x94, 0xba, 0xdf, 0x40, 0xed, 0x3c, + 0x1c, 0x85, 0xf1, 0x15, 0xda, 0x06, 0x20, 0xa1, 0x48, 0xfc, 0x34, 0xb8, 0xa6, 0xdc, 0x64, 0x6a, + 0x21, 0xa8, 0x03, 0xf3, 0x9c, 0x9a, 0x90, 0xca, 0x4a, 0x9a, 0xaf, 0xd1, 0x1a, 0x54, 0x63, 0x3f, + 0x66, 0x42, 0xe5, 0x56, 0xc1, 0x7a, 0xd1, 0xfd, 0x6f, 0x13, 0x1a, 0x43, 0x75, 0x79, 0x7a, 0xf2, + 0xee, 0xa0, 0x16, 0x94, 0xf3, 0x1a, 0x96, 0x43, 0x82, 0xf6, 0xa1, 0xe6, 0x07, 0x72, 0x8b, 0x95, + 0x3d, 0x59, 0x92, 0x2c, 0x45, 0x6c, 0x0c, 0x1f, 0x28, 0x31, 0x36, 0x34, 0xf4, 0x1c, 0x6a, 0xa9, + 0x0a, 0x56, 0xf9, 0x69, 0xbc, 0x58, 0xca, 0x15, 0x74, 0x0e, 0xd8, 0x88, 0xd1, 0xcf, 0xa1, 0x35, + 0x79, 0xf2, 0x55, 0x11, 0x1b, 0x2f, 0xd6, 0xf3, 0xa2, 0x9f, 0x68, 0xf1, 0x99, 0x92, 0xf6, 0x1d, + 0xbc, 0x18, 0xdb, 0x00, 0xfa, 0x01, 0x40, 0xb1, 0xc9, 0x6e, 0x55, 0x29, 0xaf, 0xe6, 0xca, 0xc5, + 0xe1, 0xea, 0x3b, 0xd8, 0x22, 0xa2, 0x1d, 0xa8, 0x24, 0x8c, 0xb8, 0xab, 0x8a, 0xdf, 0xcc, 0xf9, + 0x67, 0x8c, 0xf4, 0x1d, 0x2c, 0x45, 0xe8, 0x27, 0xb0, 0x90, 0xdf, 0x5a, 0xb7, 0xa6, 0x78, 0x9d, + 0x22, 0xa8, 0x4c, 0x72, 0x6c, 0xae, 0x73, 0xdf, 0xc1, 0x05, 0x1d, 0x7d, 0x17, 0x6a, 0xfa, 0x76, + 0xba, 0x75, 0x93, 0x7e, 0xa6, 0x38, 0x54, 0x70, 0xdf, 0xc1, 0x86, 0x80, 0x9e, 0xc2, 0x9c, 0xbc, + 0xdc, 0xee, 0x82, 0x22, 0x2e, 0x16, 0x1e, 0x18, 0xa1, 0x7d, 0x07, 0x2b, 0x21, 0x3a, 0x84, 0xa5, + 0xa9, 0x7b, 0xed, 0xb6, 0x14, 0x7f, 0xc3, 0x32, 0xac, 0xe4, 0x07, 0x5a, 0xdc, 0x77, 0x70, 0x4b, + 0x4c, 0x20, 0xe8, 0x19, 0xcc, 0x71, 0x16, 0x51, 0x77, 0x49, 0x29, 0x2e, 0xe7, 0x8a, 0x6f, 0x7e, + 0x24, 0x30, 0x8b, 0x94, 0x2f, 0x29, 0x47, 0x2f, 0xa1, 0xfe, 0x4e, 0xde, 0xf9, 0xf8, 0xca, 0x5d, + 0x9e, 0xf2, 0x61, 0xa8, 0x87, 0x5a, 0xdc, 0x77, 0x70, 0xc6, 0x44, 0x7d, 0x58, 0xb9, 0xd3, 0x2f, + 0xdc, 0x79, 0xa5, 0xbe, 0x59, 0x14, 0x57, 0x33, 0x06, 0x19, 0xa1, 0xef, 0xe0, 0xe5, 0x64, 0x0a, + 0x33, 0x96, 0xde, 0x87, 0x84, 0xf2, 0xbc, 0x57, 0xba, 0x70, 0xd7, 0x92, 0x62, 0x58, 0xd5, 0x5f, + 0x4e, 0xa6, 0x30, 0xf4, 0x0a, 0x6a, 0xe2, 0x36, 0x0e, 0x28, 0x71, 0x1b, 0x4a, 0xfd, 0xf3, 0xfc, + 0x0c, 0x5a, 0x47, 0x3d, 0x3f, 0xc0, 0x62, 0xa8, 0xb8, 0x6a, 0x67, 0xd4, 0x17, 0x3a, 0x87, 0x36, + 0xe3, 0xc1, 0x35, 0x15, 0xa9, 0x6a, 0x5d, 0x45, 0x34, 0x4d, 0x65, 0xee, 0xd3, 0x3c, 0x9a, 0x53, + 0x8b, 0x65, 0x45, 0xb4, 0xc6, 0x66, 0xe0, 0x32, 0xbf, 0x3b, 0x8d, 0xd3, 0x5d, 0x9c, 0xca, 0x6f, + 0x20, 0x19, 0x83, 0x82, 0x20, 0xf3, 0x0b, 0xa7, 0x30, 0x74, 0x01, 0x6b, 0x3c, 0x6b, 0xa2, 0x9e, + 0x75, 0x07, 0x56, 0x94, 0xb1, 0x1d, 0xeb, 0x8a, 0xce, 0xec, 0xb4, 0x7d, 0x07, 0xaf, 0xf2, 0xbb, + 0x22, 0xf4, 0x53, 0x58, 0x54, 0x7d, 0xd0, 0xe3, 0xba, 0x71, 0xb9, 0x48, 0xd9, 0x6b, 0xcf, 0xec, + 0x6a, 0x7d, 0x07, 0x37, 0x7d, 0xbb, 0x11, 0x5f, 0x42, 0x67, 0x46, 0xdb, 0x37, 0xb6, 0xdc, 0x35, + 0x65, 0xea, 0x59, 0x9e, 0xe7, 0x51, 0x4e, 0x3d, 0x35, 0xcc, 0xa3, 0x6b, 0x1a, 0xdc, 0x68, 0x63, + 0x7d, 0x07, 0xbb, 0xc1, 0x1d, 0x82, 0x96, 0x21, 0x02, 0x9f, 0xcc, 0xf2, 0x93, 0x70, 0x76, 0x19, + 0x46, 0xd4, 0x6d, 0x2b, 0x47, 0xdd, 0x07, 0x1c, 0x9d, 0x69, 0x66, 0xdf, 0xc1, 0x9b, 0xc1, 0x7d, + 0x42, 0xf4, 0x2b, 0x70, 0x67, 0x66, 0x33, 0x8e, 0xa8, 0xbb, 0xae, 0x5c, 0x3c, 0x79, 0xc0, 0x05, + 0x1e, 0x2b, 0xfb, 0xeb, 0xc1, 0x4c, 0x09, 0xfa, 0x7d, 0x09, 0x76, 0x67, 0x59, 0x17, 0x81, 0x1f, + 0x7b, 0x82, 0xa6, 0x69, 0x18, 0x5f, 0x79, 0xd9, 0x55, 0xdc, 0x50, 0xde, 0xbe, 0x78, 0xc0, 0xdb, + 0x30, 0xf0, 0xe3, 0xa1, 0xd6, 0x2a, 0x2e, 0xe8, 0xe7, 0xc1, 0x23, 0x78, 0xf7, 0xa5, 0x29, 0x03, + 0x71, 0xdd, 0x8f, 0xa6, 0x29, 0x0d, 0xce, 0x4e, 0x53, 0x4a, 0x3a, 0x2b, 0xb0, 0x34, 0x75, 0xc7, + 0x0e, 0xa1, 0x18, 0x50, 0xdd, 0xff, 0x94, 0x60, 0xc5, 0xdc, 0xc7, 0xf8, 0x92, 0xf1, 0x80, 0x9a, + 0x43, 0xd8, 0xa0, 0xc5, 0x52, 0x4d, 0xa2, 0x96, 0xd5, 0x7e, 0x2d, 0xaa, 0x19, 0x3c, 0x36, 0x1d, + 0xfd, 0x62, 0x62, 0x26, 0x94, 0x55, 0x06, 0xdb, 0xf9, 0xf9, 0x2d, 0xce, 0xba, 0x65, 0x66, 0x6a, + 0x3c, 0xbc, 0x05, 0x14, 0xb0, 0x38, 0xf5, 0xc3, 0x98, 0x72, 0x2f, 0x8c, 0x45, 0x2a, 0xd3, 0x32, + 0xb3, 0xec, 0x3b, 0xb9, 0xa5, 0xa3, 0x8c, 0x32, 0x30, 0x8c, 0x49, 0x83, 0x2b, 0xc1, 0xb4, 0x7c, + 0x22, 0xf3, 0x7f, 0x95, 0xa0, 0x3d, 0x33, 0x96, 0xc7, 0xbd, 0x66, 0x9e, 0xc3, 0x92, 0x45, 0x92, + 0xb3, 0xc7, 0x0c, 0xfb, 0x56, 0x01, 0xcb, 0x31, 0x35, 0x45, 0x4c, 0x6f, 0x13, 0x9d, 0xc8, 0x04, + 0xf1, 0xfc, 0x36, 0xa1, 0x68, 0xcb, 0x9e, 0x78, 0x73, 0x8a, 0x62, 0xcd, 0xb4, 0x4d, 0x98, 0xd7, + 0x7d, 0x21, 0x24, 0x6a, 0xcc, 0x2e, 0xe0, 0xba, 0x5a, 0x0f, 0x08, 0x7a, 0x02, 0x0d, 0x3d, 0xbc, + 0x75, 0x18, 0x35, 0xfd, 0x22, 0xd1, 0x90, 0x0c, 0xa1, 0xfb, 0x87, 0x12, 0x6c, 0x3d, 0x54, 0x2c, + 0xd4, 0x86, 0x5a, 0xc2, 0x88, 0x34, 0xad, 0x73, 0xa8, 0x26, 0x8c, 0x0c, 0x08, 0xba, 0x80, 0x75, + 0x2b, 0x74, 0xfb, 0x44, 0x54, 0x1e, 0xb3, 0xa9, 0xb8, 0x4d, 0x66, 0xc1, 0xdd, 0xbf, 0x94, 0x60, + 0x71, 0x18, 0x70, 0x3f, 0xa1, 0x47, 0x6c, 0x34, 0xf2, 0x63, 0x82, 0x3e, 0x81, 0x05, 0xa1, 0x80, + 0xa2, 0xda, 0xf3, 0x1a, 0x18, 0x10, 0xf4, 0x63, 0x68, 0x8a, 0xd4, 0xe7, 0xa9, 0xa7, 0x11, 0x73, + 0xa0, 0xd6, 0x8a, 0x71, 0x22, 0x85, 0xda, 0x5e, 0xdf, 0xc1, 0x0d, 0x51, 0x2c, 0xd1, 0x0f, 0xa1, + 0x71, 0x13, 0x46, 0x51, 0xa6, 0x59, 0x31, 0xcf, 0x93, 0x4c, 0xf3, 0x4d, 0x18, 0x45, 0xb9, 0x22, + 0xdc, 0xe4, 0xab, 0xc3, 0x05, 0xa8, 0x07, 0x3a, 0xb4, 0xee, 0x00, 0x1a, 0x96, 0x03, 0xb9, 0x49, + 0xd7, 0x4c, 0xa4, 0x6a, 0x5f, 0xdc, 0xd2, 0x4e, 0x45, 0x6e, 0x52, 0x0e, 0x48, 0xa9, 0x2c, 0x2e, + 0xf1, 0x39, 0xd1, 0xaf, 0xdc, 0x05, 0x5c, 0x00, 0xdd, 0x26, 0x40, 0xe1, 0xb1, 0xfb, 0xbb, 0x32, + 0x34, 0xf5, 0xe7, 0x45, 0x42, 0xfc, 0x94, 0x3e, 0x5c, 0x84, 0x37, 0xb0, 0x62, 0xf5, 0x08, 0x4e, + 0xd3, 0x31, 0x8f, 0x4d, 0x25, 0xb6, 0xf6, 0x0a, 0x89, 0xd5, 0x1f, 0xb0, 0xe2, 0xc8, 0xd1, 0x15, + 0x4c, 0x61, 0xf2, 0xd5, 0x67, 0x3c, 0xa9, 0x62, 0x51, 0x62, 0x2a, 0xb3, 0x5e, 0xd4, 0x54, 0x89, + 0x87, 0x5a, 0x2a, 0x5f, 0x7d, 0xc2, 0x06, 0xe4, 0x90, 0x32, 0x06, 0x64, 0xd1, 0x28, 0x31, 0xaf, + 0xc6, 0xf6, 0x94, 0xfe, 0x1b, 0x25, 0x94, 0x43, 0x4a, 0x58, 0xeb, 0xc3, 0x79, 0xa8, 0x8d, 0x55, + 0xca, 0xdd, 0x2f, 0xb3, 0x83, 0x90, 0x19, 0x7e, 0x0a, 0x8b, 0x94, 0x73, 0x35, 0xed, 0x85, 0x90, + 0xbf, 0x01, 0xcc, 0xd5, 0x53, 0xe0, 0xb1, 0xc6, 0xba, 0x2f, 0xb3, 0xc2, 0x69, 0x7b, 0x8f, 0x53, + 0xfa, 0x6b, 0x19, 0xd6, 0xed, 0xb7, 0x6c, 0x48, 0x45, 0x76, 0xfa, 0xda, 0xf2, 0xb9, 0xf8, 0x6d, + 0x56, 0xf5, 0x0a, 0xae, 0x0a, 0xfa, 0xed, 0x80, 0xa0, 0x03, 0xa8, 0x27, 0xfe, 0x6d, 0xc4, 0x7c, + 0x62, 0x0a, 0xfd, 0x3c, 0x4f, 0x6f, 0xb6, 0xa1, 0xbd, 0x33, 0x4d, 0xc7, 0x99, 0x5e, 0xe7, 0xd7, + 0x50, 0x3d, 0x48, 0x92, 0xe8, 0x56, 0xdd, 0x5e, 0xf9, 0x51, 0x6c, 0x6d, 0x5d, 0xad, 0x07, 0x04, + 0xfd, 0x12, 0x9a, 0x23, 0x46, 0xc2, 0x4b, 0xf9, 0x00, 0xcb, 0x9e, 0xf8, 0xf6, 0xec, 0x9c, 0x78, + 0x80, 0x1f, 0x5b, 0x4c, 0x3c, 0xa1, 0xd7, 0x39, 0x85, 0xba, 0xf1, 0x8f, 0x7e, 0x06, 0x55, 0x65, + 0x5d, 0xb9, 0xb2, 0x3b, 0xe6, 0x3d, 0x71, 0xab, 0x18, 0xfb, 0x0e, 0xd6, 0x5a, 0x87, 0x55, 0xa8, + 0x04, 0x23, 0xd2, 0xfd, 0x73, 0x05, 0x36, 0xa6, 0x14, 0x30, 0x15, 0x09, 0x8b, 0x05, 0xbd, 0xaf, + 0x64, 0x87, 0xd3, 0x25, 0xdb, 0xbd, 0xcf, 0x75, 0x66, 0xe9, 0x6e, 0xcd, 0xc4, 0x23, 0x6a, 0x76, + 0x0a, 0x2b, 0xe3, 0x98, 0x30, 0xef, 0xff, 0x2c, 0xdc, 0xb2, 0x54, 0xb6, 0x91, 0xce, 0x67, 0x50, + 0xed, 0xc9, 0xd3, 0x82, 0x5c, 0xa8, 0x4f, 0x9e, 0xa2, 0x6c, 0xd9, 0xf9, 0x63, 0xa9, 0x28, 0xf0, + 0x2b, 0xa8, 0xaa, 0xc3, 0x65, 0x0a, 0xfc, 0xec, 0xa3, 0x59, 0x2a, 0xe3, 0xb2, 0xc2, 0x4a, 0x4d, + 0xea, 0xeb, 0x0d, 0x2a, 0x3f, 0x52, 0x7f, 0xe6, 0x0e, 0x7d, 0xef, 0xb7, 0xd0, 0x9a, 0xfc, 0x01, + 0x88, 0x36, 0xa1, 0x7d, 0x71, 0x32, 0xec, 0x9d, 0x7b, 0x07, 0x47, 0xe7, 0x83, 0xd3, 0x13, 0x0f, + 0xf7, 0x86, 0xa7, 0x17, 0xf8, 0xa8, 0xb7, 0xec, 0xa0, 0x55, 0x58, 0x3a, 0xc2, 0xbd, 0x83, 0xf3, + 0x5e, 0x01, 0x96, 0x24, 0x88, 0x7b, 0xc7, 0xa7, 0x6f, 0x2d, 0xb0, 0x2c, 0xc1, 0x8b, 0xb3, 0xd7, + 0x13, 0xcc, 0x0a, 0x5a, 0x81, 0xc5, 0xe1, 0xd7, 0x27, 0x47, 0x05, 0x34, 0x77, 0xb8, 0xf9, 0xb7, + 0x0f, 0xdb, 0xa5, 0xbf, 0x7f, 0xd8, 0x2e, 0xfd, 0xe3, 0xc3, 0x76, 0xe9, 0x4f, 0xff, 0xdc, 0x76, + 0xbe, 0xc9, 0xfe, 0xed, 0x79, 0x57, 0x53, 0x7f, 0x34, 0xbc, 0xfc, 0x5f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xfd, 0xd9, 0x09, 0xe4, 0x28, 0x12, 0x00, 0x00, } func (m *ReprocessDeploymentRisk) Marshal() (dAtA []byte, err error) { @@ -3180,29 +3155,6 @@ func (m *SensorEvent_ComplianceOperatorScan) MarshalToSizedBuffer(dAtA []byte) ( } return len(dAtA) - i, nil } -func (m *SensorEvent_NodeInventory) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SensorEvent_NodeInventory) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.NodeInventory != nil { - { - size, err := m.NodeInventory.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintSensorEvents(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xca - } - return len(dAtA) - i, nil -} func (m *SensorEvent_ResourcesSynced) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4464,18 +4416,6 @@ func (m *SensorEvent_ComplianceOperatorScan) Size() (n int) { } return n } -func (m *SensorEvent_NodeInventory) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.NodeInventory != nil { - l = m.NodeInventory.Size() - n += 2 + l + sovSensorEvents(uint64(l)) - } - return n -} func (m *SensorEvent_ResourcesSynced) Size() (n int) { if m == nil { return 0 @@ -6142,41 +6082,6 @@ func (m *SensorEvent) Unmarshal(dAtA []byte) error { } m.Resource = &SensorEvent_ComplianceOperatorScan{v} iNdEx = postIndex - case 25: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NodeInventory", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowSensorEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthSensorEvents - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthSensorEvents - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - v := &storage.NodeInventory{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - m.Resource = &SensorEvent_NodeInventory{v} - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipSensorEvents(dAtA[iNdEx:]) diff --git a/generated/storage/node.pb.go b/generated/storage/node.pb.go index 8cbf2e6e91263..9271b052efb9a 100644 --- a/generated/storage/node.pb.go +++ b/generated/storage/node.pb.go @@ -77,7 +77,7 @@ func (NodeScan_Note) EnumDescriptor() ([]byte, []int) { } // Node represents information about a node in the cluster. -// next available tag: 28 +// next available tag: 29 type Node struct { // A unique ID identifying this node. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" search:"Node ID,store" sql:"pk,type(uuid)"` @@ -107,8 +107,9 @@ type Node struct { KubeProxyVersion string `protobuf:"bytes,16,opt,name=kube_proxy_version,json=kubeProxyVersion,proto3" json:"kube_proxy_version,omitempty"` LastUpdated *types.Timestamp `protobuf:"bytes,25,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty" search:"Last Updated,hidden"` // Time we received an update from Kubernetes. - K8SUpdated *types.Timestamp `protobuf:"bytes,26,opt,name=k8s_updated,json=k8sUpdated,proto3" json:"k8s_updated,omitempty" sensorhash:"ignore"` - Scan *NodeScan `protobuf:"bytes,18,opt,name=scan,proto3" json:"scan,omitempty" policy:"Node Scan"` + K8SUpdated *types.Timestamp `protobuf:"bytes,26,opt,name=k8s_updated,json=k8sUpdated,proto3" json:"k8s_updated,omitempty" sensorhash:"ignore"` + NodeInventory *NodeInventory `protobuf:"bytes,28,opt,name=node_inventory,json=nodeInventory,proto3" json:"node_inventory,omitempty" policy:"Node Inventory" sql:"-"` + Scan *NodeScan `protobuf:"bytes,18,opt,name=scan,proto3" json:"scan,omitempty" policy:"Node Scan"` // Types that are valid to be assigned to SetComponents: // *Node_Components SetComponents isNode_SetComponents `protobuf_oneof:"set_components"` @@ -400,6 +401,13 @@ func (m *Node) GetK8SUpdated() *types.Timestamp { return nil } +func (m *Node) GetNodeInventory() *NodeInventory { + if m != nil { + return m.NodeInventory + } + return nil +} + func (m *Node) GetScan() *NodeScan { if m != nil { return m.Scan @@ -506,6 +514,7 @@ func (m *Node) Clone() *Node { cloned.ContainerRuntime = m.ContainerRuntime.Clone() cloned.LastUpdated = m.LastUpdated.Clone() cloned.K8SUpdated = m.K8SUpdated.Clone() + cloned.NodeInventory = m.NodeInventory.Clone() cloned.Scan = m.Scan.Clone() if m.SetComponents != nil { cloned.SetComponents = m.SetComponents.Clone() @@ -895,98 +904,99 @@ func init() { func init() { proto.RegisterFile("storage/node.proto", fileDescriptor_107f6eed651900c7) } var fileDescriptor_107f6eed651900c7 = []byte{ - // 1441 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xdd, 0x72, 0xdb, 0xb6, - 0x12, 0xb6, 0x24, 0xff, 0x48, 0x90, 0x7f, 0x64, 0x24, 0x76, 0x68, 0x25, 0x36, 0x79, 0x78, 0x4e, - 0x12, 0xf9, 0xc4, 0x91, 0x4f, 0x7c, 0xd2, 0x99, 0xc4, 0x33, 0xf1, 0x8c, 0x25, 0xbb, 0x89, 0x9c, - 0x54, 0xf1, 0x50, 0xb6, 0x2f, 0x72, 0x51, 0x0e, 0x2d, 0xc2, 0x32, 0x2a, 0x09, 0x60, 0x09, 0x48, - 0x63, 0xbd, 0x49, 0x9f, 0xa8, 0x93, 0x8b, 0x5e, 0xf4, 0x09, 0x34, 0x9d, 0xf4, 0x09, 0xca, 0x27, - 0xe8, 0x00, 0x24, 0x68, 0x52, 0x76, 0x26, 0x6d, 0xa6, 0x77, 0xd4, 0xee, 0xf7, 0x7d, 0x58, 0x60, - 0x17, 0x8b, 0x15, 0x80, 0x8c, 0x53, 0xdf, 0xe9, 0xa0, 0x6d, 0x42, 0x5d, 0x54, 0xf5, 0x7c, 0xca, - 0x29, 0x9c, 0x8b, 0x6c, 0x65, 0xbd, 0x43, 0x69, 0xa7, 0x87, 0xb6, 0xa5, 0xf9, 0x7c, 0x70, 0xb1, - 0xcd, 0x71, 0x1f, 0x31, 0xee, 0xf4, 0xbd, 0x10, 0x59, 0x5e, 0x63, 0x6d, 0x87, 0x10, 0xe4, 0x6f, - 0x3b, 0x1e, 0xde, 0x1e, 0x3e, 0xdb, 0x26, 0x94, 0x47, 0x22, 0xe5, 0x8d, 0x09, 0x57, 0x9b, 0xf6, - 0x3d, 0x4a, 0x10, 0xe1, 0x91, 0x5f, 0x57, 0x0b, 0xb7, 0x29, 0xe1, 0x0e, 0x26, 0xc8, 0xb7, 0xfd, - 0x01, 0x11, 0x0b, 0x44, 0x80, 0xbb, 0x0a, 0x20, 0xbc, 0x9c, 0x45, 0xd6, 0xfb, 0xca, 0x3a, 0x1c, - 0xf4, 0x08, 0xf2, 0x9d, 0x73, 0xdc, 0xc3, 0x7c, 0xa4, 0x28, 0x1d, 0xda, 0xa1, 0xf2, 0x73, 0x5b, - 0x7c, 0x85, 0x56, 0xf3, 0xe7, 0x25, 0x30, 0xdd, 0xa4, 0x2e, 0x82, 0x7b, 0x20, 0x8b, 0x5d, 0x2d, - 0x63, 0x64, 0x2a, 0x85, 0x5a, 0x35, 0x18, 0xeb, 0xff, 0x65, 0xc8, 0xf1, 0xdb, 0x97, 0xbb, 0xa6, - 0xf0, 0x1a, 0x8d, 0x83, 0x2d, 0xa1, 0x8d, 0x4c, 0x83, 0xfd, 0xd8, 0xdb, 0x35, 0xbd, 0xee, 0x16, - 0x1f, 0x79, 0xa8, 0x32, 0x18, 0x60, 0x77, 0xd3, 0xb4, 0xb2, 0xd8, 0x85, 0x4f, 0xc0, 0x34, 0x71, - 0xfa, 0x48, 0xcb, 0x4a, 0x85, 0x7b, 0xc1, 0x58, 0xbf, 0x93, 0x54, 0x88, 0xe8, 0x96, 0x04, 0xc1, - 0x47, 0x60, 0x36, 0x0c, 0x5c, 0xcb, 0x19, 0xb9, 0x4a, 0x71, 0x67, 0xb1, 0x1a, 0x45, 0x5e, 0x3d, - 0x11, 0x66, 0x2b, 0xf2, 0xc2, 0x3e, 0x00, 0xed, 0xde, 0x80, 0x71, 0xe4, 0xdb, 0xd8, 0xd5, 0xa6, - 0xa5, 0x74, 0x33, 0x18, 0xeb, 0x47, 0x4a, 0xba, 0x1e, 0x7a, 0x27, 0xe3, 0xbb, 0xe8, 0x56, 0x22, - 0xcf, 0x2e, 0x76, 0x37, 0xb7, 0x08, 0x7d, 0x7a, 0xd1, 0x7d, 0xda, 0xa6, 0x84, 0x71, 0x5f, 0x08, - 0xa7, 0x82, 0x2f, 0x44, 0x2b, 0x34, 0x5c, 0xf8, 0x0a, 0xcc, 0xab, 0xe5, 0xe4, 0x5e, 0x66, 0xe4, - 0x82, 0xe5, 0x60, 0xac, 0xaf, 0x4e, 0x2c, 0xa8, 0xb6, 0x53, 0x8c, 0xf0, 0x4d, 0xb1, 0xab, 0x23, - 0x30, 0xdb, 0x73, 0xce, 0x51, 0x8f, 0x69, 0xb3, 0x72, 0x57, 0x6b, 0xf1, 0xae, 0xc4, 0x09, 0x54, - 0xdf, 0x49, 0xdf, 0x21, 0xe1, 0xfe, 0xe8, 0xe6, 0xf9, 0x18, 0xd2, 0x6b, 0x5a, 0x91, 0x02, 0xfc, - 0x1e, 0x14, 0x1d, 0x42, 0x28, 0x77, 0x38, 0xa6, 0x84, 0x69, 0x73, 0x52, 0x70, 0x23, 0x2d, 0xb8, - 0x7f, 0x0d, 0x08, 0x55, 0x1f, 0x04, 0x63, 0x5d, 0x4b, 0xa9, 0x5e, 0x43, 0x4c, 0x2b, 0x29, 0x08, - 0x3f, 0x80, 0xc2, 0x0f, 0x14, 0x13, 0xe4, 0xda, 0x0e, 0xd7, 0x16, 0x8c, 0x4c, 0xa5, 0xb8, 0x53, - 0xae, 0x86, 0x15, 0x5d, 0x55, 0x15, 0x5d, 0x3d, 0x51, 0x15, 0x5d, 0xfb, 0x57, 0x30, 0xd6, 0xd7, - 0x53, 0xca, 0x47, 0x14, 0x13, 0x43, 0x00, 0xd4, 0x51, 0xe4, 0x43, 0xbd, 0x7d, 0x0e, 0x77, 0xc0, - 0x0a, 0x26, 0x1c, 0xf9, 0xc4, 0xe9, 0xd9, 0xd8, 0xb3, 0x1d, 0xd7, 0xf5, 0x11, 0x63, 0x88, 0x69, - 0x79, 0x23, 0x57, 0x29, 0x58, 0x77, 0x94, 0xb3, 0xe1, 0xed, 0x2b, 0x97, 0xe0, 0xa0, 0xab, 0xdb, - 0x38, 0x85, 0x90, 0xa3, 0x9c, 0x49, 0xce, 0x1e, 0x58, 0xbb, 0x71, 0x3f, 0xec, 0x21, 0xf2, 0x19, - 0xa6, 0x44, 0x03, 0x32, 0x77, 0x59, 0x2d, 0x63, 0xdd, 0x8b, 0x41, 0x56, 0x88, 0x39, 0x0b, 0x21, - 0xf0, 0x08, 0x2c, 0xdf, 0xe0, 0x6b, 0x8b, 0xf2, 0x2c, 0xd6, 0xe3, 0x93, 0xae, 0x4f, 0x90, 0x1b, - 0xe4, 0x82, 0x5a, 0xa5, 0x49, 0x49, 0xf8, 0x10, 0x2c, 0x76, 0x91, 0x4f, 0x50, 0x2f, 0x0e, 0xa0, - 0x28, 0x02, 0xb0, 0x16, 0x42, 0xab, 0x5a, 0x72, 0x13, 0x94, 0xa8, 0x87, 0x7c, 0x87, 0x63, 0xd2, - 0xb1, 0xd9, 0x88, 0x71, 0xd4, 0xd7, 0x96, 0x25, 0x70, 0x29, 0xb6, 0xb7, 0xa4, 0x19, 0xee, 0x81, - 0x3c, 0x65, 0x36, 0xee, 0x3b, 0x1d, 0xa4, 0xcd, 0xcb, 0xcd, 0xfc, 0x3b, 0x18, 0xeb, 0xba, 0x4a, - 0xc2, 0x7b, 0x05, 0x37, 0x42, 0xbc, 0x4a, 0xc3, 0x1c, 0x65, 0x0d, 0xc1, 0x81, 0x8f, 0xc1, 0x52, - 0x77, 0x70, 0x8e, 0x7a, 0x88, 0xc7, 0x21, 0x2d, 0xc9, 0x95, 0x16, 0x23, 0xb3, 0x8a, 0x69, 0x0b, - 0x40, 0x61, 0xb1, 0x3d, 0x9f, 0x5e, 0x8d, 0x62, 0x6c, 0x49, 0x62, 0x4b, 0xc2, 0x73, 0x2c, 0x1c, - 0x0a, 0x6d, 0x83, 0xf9, 0x9e, 0xc3, 0xb8, 0x3d, 0xf0, 0x5c, 0x87, 0x23, 0x57, 0x5b, 0xfb, 0x62, - 0xed, 0x18, 0xc1, 0x58, 0x7f, 0xa0, 0xc2, 0x7e, 0xe7, 0x30, 0x6e, 0x9c, 0x86, 0xdc, 0xad, 0x4b, - 0xec, 0xba, 0x48, 0x54, 0xa6, 0x50, 0x8c, 0x8c, 0xf0, 0x04, 0x14, 0xbb, 0x2f, 0x58, 0xac, 0x5f, - 0xfe, 0xa2, 0x7e, 0x74, 0x97, 0x08, 0xa3, 0xfe, 0xa5, 0xc3, 0x2e, 0x77, 0x4d, 0xdc, 0x21, 0xf2, - 0x28, 0x40, 0xf7, 0x05, 0x53, 0xaa, 0xaf, 0xc0, 0xb4, 0xe8, 0xb9, 0x1a, 0x94, 0x72, 0xcb, 0xa9, - 0x8b, 0xd4, 0x6a, 0x3b, 0xa4, 0xb6, 0x1a, 0x8c, 0x75, 0xe8, 0xd1, 0x1e, 0x6e, 0x8f, 0xa2, 0x0a, - 0x17, 0x66, 0xd3, 0x92, 0x34, 0xf8, 0x16, 0x80, 0xb8, 0x47, 0x33, 0xed, 0x8e, 0x91, 0xa9, 0xcc, - 0xd4, 0x36, 0x83, 0xb1, 0xfe, 0x30, 0xee, 0x0b, 0xca, 0x6b, 0xd4, 0xe9, 0x80, 0xf0, 0x30, 0x1b, - 0x6a, 0x83, 0x6f, 0xa6, 0xac, 0x04, 0x1d, 0xbe, 0x04, 0xd3, 0xed, 0x21, 0x62, 0xda, 0x5d, 0x29, - 0x93, 0xca, 0x6a, 0xfd, 0xec, 0xf0, 0x56, 0x81, 0x8c, 0x25, 0x29, 0xf0, 0x18, 0xcc, 0x5f, 0xe0, - 0x2b, 0xe7, 0xbc, 0x87, 0x6c, 0x29, 0xb1, 0x22, 0x25, 0x9e, 0x04, 0x63, 0xfd, 0xb1, 0x92, 0xf8, - 0x36, 0xf4, 0x1b, 0x9f, 0x93, 0xca, 0x5a, 0xc5, 0x48, 0xa2, 0x2e, 0x14, 0x6b, 0x20, 0xef, 0xf9, - 0x98, 0xfa, 0x98, 0x8f, 0xb4, 0x55, 0x23, 0x53, 0xc9, 0xd5, 0x1e, 0x05, 0x63, 0xdd, 0x4c, 0xdd, - 0x75, 0x0b, 0xb3, 0xae, 0x71, 0x1c, 0xa1, 0xe2, 0xac, 0xc5, 0x3c, 0x58, 0x03, 0xc0, 0xc7, 0xac, - 0x6b, 0xb3, 0x36, 0xf5, 0x91, 0x76, 0xcf, 0xc8, 0x54, 0xb2, 0xe9, 0x6d, 0x5d, 0xab, 0xb4, 0xda, - 0x89, 0x58, 0xac, 0x82, 0xa0, 0x49, 0x13, 0x7c, 0x05, 0xf2, 0x9c, 0x7a, 0x76, 0x7b, 0xc8, 0x98, - 0xa6, 0x49, 0x85, 0x54, 0xdd, 0x48, 0x85, 0x13, 0xea, 0x19, 0xf5, 0xb3, 0x56, 0x2b, 0xaa, 0xf5, - 0x37, 0x39, 0x6b, 0x8e, 0x53, 0xaf, 0x3e, 0x64, 0x0c, 0x56, 0xc0, 0x8c, 0x78, 0x5f, 0x99, 0x76, - 0xdf, 0xc8, 0x55, 0x16, 0x77, 0x60, 0xba, 0x53, 0x36, 0x29, 0x47, 0x56, 0x08, 0x28, 0xbf, 0x04, - 0xc5, 0x44, 0x27, 0x86, 0x25, 0x90, 0xeb, 0xa2, 0x51, 0xf8, 0xf0, 0x59, 0xe2, 0x13, 0xde, 0x05, - 0x33, 0x43, 0xa7, 0x37, 0x88, 0x9e, 0x32, 0x2b, 0xfc, 0xb1, 0x9b, 0x7d, 0x91, 0x29, 0xef, 0x81, - 0xd2, 0x64, 0xcf, 0xfd, 0x3b, 0x7c, 0x73, 0x5d, 0xbc, 0xb5, 0x1c, 0xc1, 0x15, 0xb0, 0xfc, 0x5d, - 0xa3, 0xd5, 0x6a, 0x34, 0x5f, 0xdb, 0xad, 0xfa, 0x7e, 0xd3, 0x3e, 0xd8, 0x3f, 0xd9, 0x2f, 0x4d, - 0xd5, 0x4a, 0x60, 0x91, 0x21, 0x6e, 0x5f, 0x57, 0x4a, 0x0d, 0x80, 0xbc, 0xb4, 0x0c, 0x11, 0xab, - 0x2d, 0x80, 0xa2, 0xf8, 0x8e, 0x72, 0x57, 0x5b, 0x04, 0xf3, 0xe2, 0xa7, 0x3a, 0x33, 0xf3, 0x97, - 0x2c, 0xc8, 0xab, 0x62, 0x16, 0xdd, 0x5d, 0x94, 0xad, 0x2d, 0x3b, 0x5a, 0xe6, 0x2b, 0xba, 0xbb, - 0x50, 0x49, 0x77, 0x77, 0xa1, 0x27, 0x0c, 0xb7, 0xb6, 0xb0, 0xdc, 0xed, 0x2d, 0xec, 0x7d, 0xea, - 0xd6, 0x64, 0xe5, 0x1b, 0x66, 0xc6, 0x99, 0x39, 0xec, 0x9f, 0x23, 0xd7, 0x45, 0xae, 0x8a, 0x3a, - 0xbe, 0x42, 0xb5, 0x62, 0x30, 0xd6, 0xe7, 0xe4, 0x43, 0xfe, 0xd4, 0x4c, 0xdd, 0x9c, 0x2d, 0x95, - 0xe5, 0x69, 0x99, 0xe5, 0xd5, 0x1b, 0xd7, 0x38, 0x99, 0x69, 0x73, 0x37, 0x3a, 0xee, 0x02, 0x98, - 0x39, 0x6d, 0xb6, 0x0e, 0x4f, 0x4a, 0x53, 0x70, 0x09, 0x14, 0x4f, 0x9b, 0xad, 0xd3, 0xe3, 0xe3, - 0xf7, 0xd6, 0xc9, 0xe1, 0x41, 0x29, 0x03, 0x57, 0x01, 0x7c, 0x7b, 0x68, 0x35, 0x0f, 0xdf, 0xd9, - 0x49, 0x7b, 0xd6, 0xfc, 0x98, 0x05, 0x0b, 0x42, 0xb4, 0x41, 0x86, 0x88, 0x70, 0xea, 0x8f, 0xe0, - 0x6b, 0x30, 0x27, 0xc6, 0x40, 0xfb, 0xab, 0xa7, 0xa4, 0x59, 0x41, 0x6f, 0xb8, 0xf0, 0x39, 0x28, - 0x48, 0xa1, 0xbf, 0x32, 0x2e, 0xe5, 0x05, 0x52, 0x0e, 0x17, 0xa9, 0x94, 0xe6, 0xfe, 0xd9, 0x94, - 0x7e, 0x93, 0xca, 0xd3, 0xb4, 0x14, 0x5f, 0xa9, 0x46, 0x33, 0xea, 0xd9, 0xb3, 0x6a, 0x9c, 0x19, - 0x96, 0xca, 0xc6, 0x43, 0x95, 0x8d, 0x19, 0x99, 0x8d, 0xa5, 0x04, 0x23, 0x99, 0x86, 0x3f, 0xb2, - 0x60, 0xed, 0xb3, 0xb9, 0x86, 0xff, 0x8b, 0xe6, 0xc6, 0xf0, 0x4c, 0x53, 0x13, 0x4c, 0x0c, 0x4a, - 0x0f, 0x8f, 0x7b, 0x60, 0x4e, 0x3d, 0x52, 0xe1, 0xe9, 0xfd, 0x27, 0x18, 0xeb, 0xc6, 0xcd, 0x46, - 0x1c, 0xbd, 0x58, 0xf1, 0xc3, 0x18, 0x91, 0xe0, 0x73, 0x30, 0x23, 0xe6, 0x63, 0x35, 0x7b, 0x6e, - 0xdc, 0x28, 0xc8, 0xb3, 0xe4, 0xf4, 0x6c, 0x85, 0x60, 0x78, 0x00, 0x96, 0x92, 0x53, 0x35, 0x46, - 0x6a, 0x28, 0x2b, 0xa7, 0x8a, 0x30, 0xcd, 0x9d, 0xa4, 0xc0, 0x72, 0xa2, 0xdb, 0x8a, 0x73, 0xce, - 0x25, 0xba, 0xe8, 0xfd, 0x44, 0x07, 0x14, 0x93, 0x67, 0xf6, 0xcd, 0xd4, 0x75, 0x7f, 0x5b, 0x4f, - 0xb5, 0xd8, 0x59, 0xe1, 0x4e, 0x74, 0xcf, 0xc9, 0x6e, 0x50, 0x7b, 0xfe, 0xf1, 0xd3, 0x46, 0xe6, - 0xd7, 0x4f, 0x1b, 0x99, 0xdf, 0x3e, 0x6d, 0x64, 0x7e, 0xfa, 0x7d, 0x63, 0x0a, 0xac, 0x61, 0x5a, - 0x65, 0xdc, 0x69, 0x77, 0x7d, 0x7a, 0x15, 0x16, 0x8c, 0x8a, 0xfb, 0x83, 0xfa, 0x4b, 0x73, 0x3e, - 0x2b, 0xed, 0xff, 0xff, 0x33, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x32, 0x04, 0x1b, 0xf8, 0x0c, 0x00, - 0x00, + // 1469 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xef, 0x52, 0xdb, 0xc6, + 0x16, 0xc7, 0x36, 0x7f, 0xec, 0x35, 0x18, 0xb3, 0x09, 0x44, 0x38, 0x01, 0xe9, 0xea, 0xde, 0x24, + 0xe6, 0x86, 0x98, 0x1b, 0x6e, 0x3a, 0x93, 0x30, 0x13, 0x66, 0xb0, 0xa1, 0x89, 0x49, 0xea, 0x30, + 0x32, 0xf0, 0x21, 0x1f, 0xaa, 0x91, 0xad, 0xc5, 0x6c, 0x6d, 0xef, 0xaa, 0xda, 0xb5, 0x07, 0xbf, + 0x49, 0x9f, 0xa1, 0x4f, 0x92, 0x0f, 0xfd, 0xd0, 0x27, 0xf0, 0x74, 0xd2, 0x27, 0xa8, 0x9f, 0xa0, + 0xb3, 0x2b, 0xad, 0x90, 0x0c, 0x99, 0xb4, 0x99, 0x7e, 0x93, 0xcf, 0x9f, 0xdf, 0x9e, 0x3d, 0xe7, + 0xec, 0xef, 0x1c, 0x03, 0xc8, 0x38, 0xf5, 0x9d, 0x0e, 0xda, 0x21, 0xd4, 0x45, 0x15, 0xcf, 0xa7, + 0x9c, 0xc2, 0x85, 0x50, 0x56, 0xd2, 0x3b, 0x94, 0x76, 0x7a, 0x68, 0x47, 0x8a, 0x5b, 0x83, 0x8b, + 0x1d, 0x8e, 0xfb, 0x88, 0x71, 0xa7, 0xef, 0x05, 0x96, 0xa5, 0x75, 0xd6, 0x76, 0x08, 0x41, 0xfe, + 0x8e, 0xe3, 0xe1, 0x9d, 0xe1, 0xb3, 0x1d, 0x42, 0x79, 0x08, 0x52, 0xda, 0x9c, 0x52, 0xb5, 0x69, + 0xdf, 0xa3, 0x04, 0x11, 0x1e, 0xea, 0x75, 0x75, 0x70, 0x9b, 0x12, 0xee, 0x60, 0x82, 0x7c, 0xdb, + 0x1f, 0x10, 0x71, 0x40, 0x68, 0x70, 0x57, 0x19, 0x08, 0x2d, 0x67, 0xa1, 0xf4, 0xbe, 0x92, 0x0e, + 0x07, 0x3d, 0x82, 0x7c, 0xa7, 0x85, 0x7b, 0x98, 0x8f, 0x94, 0x4b, 0x87, 0x76, 0xa8, 0xfc, 0xdc, + 0x11, 0x5f, 0x81, 0xd4, 0xfc, 0xb9, 0x08, 0x66, 0x1b, 0xd4, 0x45, 0x70, 0x1f, 0xa4, 0xb1, 0xab, + 0xa5, 0x8c, 0x54, 0x39, 0x57, 0xad, 0x4c, 0xc6, 0xfa, 0x7f, 0x19, 0x72, 0xfc, 0xf6, 0xe5, 0x9e, + 0x29, 0xb4, 0x46, 0xfd, 0x70, 0x5b, 0x60, 0x23, 0xd3, 0x60, 0x3f, 0xf6, 0xf6, 0x4c, 0xaf, 0xbb, + 0xcd, 0x47, 0x1e, 0x2a, 0x0f, 0x06, 0xd8, 0xdd, 0x32, 0xad, 0x34, 0x76, 0xe1, 0x13, 0x30, 0x4b, + 0x9c, 0x3e, 0xd2, 0xd2, 0x12, 0xe1, 0xde, 0x64, 0xac, 0xdf, 0x89, 0x23, 0x84, 0xee, 0x96, 0x34, + 0x82, 0x8f, 0xc0, 0x7c, 0x10, 0xb8, 0x96, 0x31, 0x32, 0xe5, 0xfc, 0x6e, 0xa1, 0x12, 0x46, 0x5e, + 0x39, 0x15, 0x62, 0x2b, 0xd4, 0xc2, 0x3e, 0x00, 0xed, 0xde, 0x80, 0x71, 0xe4, 0xdb, 0xd8, 0xd5, + 0x66, 0x25, 0x74, 0x63, 0x32, 0xd6, 0x8f, 0x15, 0x74, 0x2d, 0xd0, 0x4e, 0xc7, 0x77, 0xd1, 0x2d, + 0x87, 0x9a, 0x3d, 0xec, 0x6e, 0x6d, 0x13, 0xfa, 0xf4, 0xa2, 0xfb, 0xb4, 0x4d, 0x09, 0xe3, 0xbe, + 0x00, 0x4e, 0x04, 0x9f, 0x0b, 0x4f, 0xa8, 0xbb, 0xf0, 0x15, 0x58, 0x54, 0xc7, 0xc9, 0xbb, 0xcc, + 0xc9, 0x03, 0x4b, 0x93, 0xb1, 0xbe, 0x36, 0x75, 0xa0, 0xba, 0x4e, 0x3e, 0xb4, 0x6f, 0x88, 0x5b, + 0x1d, 0x83, 0xf9, 0x9e, 0xd3, 0x42, 0x3d, 0xa6, 0xcd, 0xcb, 0x5b, 0xad, 0x47, 0xb7, 0x12, 0x19, + 0xa8, 0xbc, 0x93, 0xba, 0x23, 0xc2, 0xfd, 0xd1, 0xcd, 0xfc, 0x18, 0x52, 0x6b, 0x5a, 0x21, 0x02, + 0xfc, 0x1e, 0xe4, 0x1d, 0x42, 0x28, 0x77, 0x38, 0xa6, 0x84, 0x69, 0x0b, 0x12, 0x70, 0x33, 0x09, + 0x78, 0x70, 0x6d, 0x10, 0xa0, 0x3e, 0x98, 0x8c, 0x75, 0x2d, 0x81, 0x7a, 0x6d, 0x62, 0x5a, 0x71, + 0x40, 0xf8, 0x01, 0xe4, 0x7e, 0xa0, 0x98, 0x20, 0xd7, 0x76, 0xb8, 0xb6, 0x64, 0xa4, 0xca, 0xf9, + 0xdd, 0x52, 0x25, 0xe8, 0xe8, 0x8a, 0xea, 0xe8, 0xca, 0xa9, 0xea, 0xe8, 0xea, 0xbf, 0x26, 0x63, + 0x7d, 0x23, 0x81, 0x7c, 0x4c, 0x31, 0x31, 0x84, 0x81, 0x4a, 0x45, 0x36, 0xc0, 0x3b, 0xe0, 0x70, + 0x17, 0xac, 0x62, 0xc2, 0x91, 0x4f, 0x9c, 0x9e, 0x8d, 0x3d, 0xdb, 0x71, 0x5d, 0x1f, 0x31, 0x86, + 0x98, 0x96, 0x35, 0x32, 0xe5, 0x9c, 0x75, 0x47, 0x29, 0xeb, 0xde, 0x81, 0x52, 0x09, 0x1f, 0x74, + 0x75, 0x9b, 0x4f, 0x2e, 0xf0, 0x51, 0xca, 0xb8, 0xcf, 0x3e, 0x58, 0xbf, 0xf1, 0x3e, 0xec, 0x21, + 0xf2, 0x19, 0xa6, 0x44, 0x03, 0xb2, 0x76, 0x69, 0x2d, 0x65, 0xdd, 0x8b, 0x8c, 0xac, 0xc0, 0xe6, + 0x3c, 0x30, 0x81, 0xc7, 0x60, 0xe5, 0x86, 0xbf, 0x56, 0x90, 0xb9, 0xd8, 0x88, 0x32, 0x5d, 0x9b, + 0x72, 0xae, 0x93, 0x0b, 0x6a, 0x15, 0xa7, 0x21, 0xe1, 0x43, 0x50, 0xe8, 0x22, 0x9f, 0xa0, 0x5e, + 0x14, 0x40, 0x5e, 0x04, 0x60, 0x2d, 0x05, 0x52, 0x75, 0xe4, 0x16, 0x28, 0x52, 0x0f, 0xf9, 0x0e, + 0xc7, 0xa4, 0x63, 0xb3, 0x11, 0xe3, 0xa8, 0xaf, 0xad, 0x48, 0xc3, 0xe5, 0x48, 0xde, 0x94, 0x62, + 0xb8, 0x0f, 0xb2, 0x94, 0xd9, 0xb8, 0xef, 0x74, 0x90, 0xb6, 0x28, 0x2f, 0xf3, 0xef, 0xc9, 0x58, + 0xd7, 0x55, 0x11, 0xde, 0x2b, 0x73, 0x23, 0xb0, 0x57, 0x65, 0x58, 0xa0, 0xac, 0x2e, 0x7c, 0xe0, + 0x63, 0xb0, 0xdc, 0x1d, 0xb4, 0x50, 0x0f, 0xf1, 0x28, 0xa4, 0x65, 0x79, 0x52, 0x21, 0x14, 0xab, + 0x98, 0xb6, 0x01, 0x14, 0x12, 0xdb, 0xf3, 0xe9, 0xd5, 0x28, 0xb2, 0x2d, 0x4a, 0xdb, 0xa2, 0xd0, + 0x9c, 0x08, 0x85, 0xb2, 0xb6, 0xc1, 0x62, 0xcf, 0x61, 0xdc, 0x1e, 0x78, 0xae, 0xc3, 0x91, 0xab, + 0xad, 0x7f, 0xb1, 0x77, 0x8c, 0xc9, 0x58, 0x7f, 0xa0, 0xc2, 0x7e, 0xe7, 0x30, 0x6e, 0x9c, 0x05, + 0xbe, 0xdb, 0x97, 0xd8, 0x75, 0x91, 0xe8, 0x4c, 0x81, 0x18, 0x0a, 0xe1, 0x29, 0xc8, 0x77, 0x5f, + 0xb0, 0x08, 0xbf, 0xf4, 0x45, 0xfc, 0xf0, 0x2d, 0x11, 0x46, 0xfd, 0x4b, 0x87, 0x5d, 0xee, 0x99, + 0xb8, 0x43, 0x64, 0x2a, 0x40, 0xf7, 0x05, 0x53, 0xa8, 0x2d, 0x50, 0x10, 0x24, 0x6e, 0x63, 0x32, + 0x44, 0x84, 0x53, 0x7f, 0xa4, 0x3d, 0x90, 0xc0, 0x6b, 0x89, 0x27, 0x55, 0x57, 0xda, 0x20, 0xd7, + 0x1e, 0xed, 0xe1, 0xf6, 0x48, 0x51, 0xa0, 0xd2, 0x85, 0x1c, 0xf3, 0xd4, 0xb4, 0x96, 0x48, 0xdc, + 0x07, 0xbe, 0x02, 0xb3, 0x82, 0xd7, 0x35, 0x28, 0x91, 0x57, 0x12, 0xc8, 0xcd, 0xb6, 0x43, 0xaa, + 0x6b, 0x93, 0xb1, 0x0e, 0x13, 0xa0, 0x42, 0x6c, 0x5a, 0xd2, 0x0d, 0xbe, 0x05, 0x20, 0x9a, 0x03, + 0x4c, 0xbb, 0x63, 0xa4, 0xca, 0x73, 0xd5, 0xad, 0xc9, 0x58, 0x7f, 0x18, 0x71, 0x8f, 0xd2, 0x1a, + 0x35, 0x3a, 0x20, 0x3c, 0xa8, 0xb8, 0x4a, 0xe2, 0x9b, 0x19, 0x2b, 0xe6, 0x0e, 0x5f, 0x82, 0xd9, + 0xf6, 0x10, 0x31, 0xed, 0xae, 0x84, 0x49, 0x74, 0x4e, 0xed, 0xfc, 0xe8, 0x56, 0x80, 0x94, 0x25, + 0x5d, 0xe0, 0x09, 0x58, 0xbc, 0xc0, 0x57, 0x4e, 0xab, 0x87, 0x6c, 0x09, 0xb1, 0x2a, 0x21, 0x9e, + 0x4c, 0xc6, 0xfa, 0x63, 0x05, 0xf1, 0x6d, 0xa0, 0x37, 0x3e, 0x07, 0x95, 0xb6, 0xf2, 0x21, 0x44, + 0x4d, 0x20, 0x56, 0x41, 0xd6, 0xf3, 0x31, 0xf5, 0x31, 0x1f, 0x69, 0x6b, 0x46, 0xaa, 0x9c, 0xa9, + 0x3e, 0x9a, 0x8c, 0x75, 0x33, 0xc1, 0x27, 0x16, 0x66, 0x5d, 0xe3, 0x24, 0xb4, 0x8a, 0x3a, 0x23, + 0xf2, 0x83, 0x55, 0x00, 0x7c, 0xcc, 0xba, 0x36, 0x6b, 0x53, 0x1f, 0x69, 0xf7, 0x8c, 0x54, 0x39, + 0x9d, 0xbc, 0xd6, 0x35, 0x4a, 0xb3, 0x1d, 0x8b, 0xc5, 0xca, 0x09, 0x37, 0x29, 0x82, 0xaf, 0x40, + 0x96, 0x53, 0xcf, 0x6e, 0x0f, 0x19, 0xd3, 0x34, 0x89, 0x90, 0xe8, 0x4d, 0x89, 0x70, 0x4a, 0x3d, + 0xa3, 0x76, 0xde, 0x6c, 0x86, 0xef, 0xe9, 0x4d, 0xc6, 0x5a, 0xe0, 0xd4, 0xab, 0x0d, 0x19, 0x83, + 0x65, 0x30, 0x27, 0x66, 0x38, 0xd3, 0xee, 0x1b, 0x99, 0x72, 0x61, 0x17, 0x26, 0xd9, 0xb8, 0x41, + 0x39, 0xb2, 0x02, 0x83, 0xd2, 0x4b, 0x90, 0x8f, 0xb1, 0x3d, 0x2c, 0x82, 0x4c, 0x17, 0x8d, 0x82, + 0xe1, 0x6a, 0x89, 0x4f, 0x78, 0x17, 0xcc, 0x0d, 0x9d, 0xde, 0x20, 0x1c, 0x97, 0x56, 0xf0, 0x63, + 0x2f, 0xfd, 0x22, 0x55, 0xda, 0x07, 0xc5, 0x69, 0x5e, 0xff, 0x3b, 0xfe, 0xe6, 0x86, 0x98, 0xe7, + 0x1c, 0xc1, 0x55, 0xb0, 0xf2, 0x5d, 0xbd, 0xd9, 0xac, 0x37, 0x5e, 0xdb, 0xcd, 0xda, 0x41, 0xc3, + 0x3e, 0x3c, 0x38, 0x3d, 0x28, 0xce, 0x54, 0x8b, 0xa0, 0xc0, 0x10, 0xb7, 0xaf, 0x3b, 0xa5, 0x0a, + 0x40, 0x56, 0x4a, 0x86, 0x88, 0x55, 0x97, 0x40, 0x5e, 0x7c, 0x87, 0xb5, 0xab, 0x16, 0xc0, 0xa2, + 0xf8, 0xa9, 0x72, 0x66, 0xfe, 0x92, 0x06, 0x59, 0xd5, 0xcc, 0x62, 0x82, 0x88, 0xb6, 0xb5, 0x25, + 0x6b, 0xa6, 0xbe, 0x62, 0x82, 0x08, 0x94, 0xe4, 0x04, 0x11, 0x78, 0x42, 0x70, 0x2b, 0x4d, 0x66, + 0x6e, 0xa7, 0xc9, 0xf7, 0x89, 0x57, 0x93, 0x96, 0x73, 0xd2, 0x8c, 0x2a, 0x73, 0xd4, 0x6f, 0x21, + 0xd7, 0x45, 0xae, 0x8a, 0x3a, 0x7a, 0x42, 0xd5, 0xfc, 0x64, 0xac, 0x2f, 0xa8, 0x87, 0x1c, 0x7f, + 0x39, 0xdb, 0xaa, 0xca, 0xb3, 0xb2, 0xca, 0x6b, 0x37, 0x9e, 0x71, 0xbc, 0xd2, 0xe6, 0x5e, 0x98, + 0xee, 0x1c, 0x98, 0x3b, 0x6b, 0x34, 0x8f, 0x4e, 0x8b, 0x33, 0x70, 0x19, 0xe4, 0xcf, 0x1a, 0xcd, + 0xb3, 0x93, 0x93, 0xf7, 0xd6, 0xe9, 0xd1, 0x61, 0x31, 0x05, 0xd7, 0x00, 0x7c, 0x7b, 0x64, 0x35, + 0x8e, 0xde, 0xd9, 0x71, 0x79, 0xda, 0xfc, 0x98, 0x06, 0x4b, 0x09, 0xd6, 0x81, 0xaf, 0xc1, 0x42, + 0xc0, 0x52, 0x5f, 0xbb, 0x89, 0xcd, 0x4b, 0x46, 0x72, 0xe1, 0x73, 0x90, 0x93, 0x40, 0x7f, 0x65, + 0x25, 0xcb, 0x0a, 0x4b, 0xb9, 0xc0, 0x24, 0x4a, 0x9a, 0xf9, 0x67, 0x4b, 0xfa, 0x4d, 0xa2, 0x4e, + 0xb3, 0x12, 0x7c, 0xb5, 0x12, 0xee, 0xc1, 0xe7, 0xcf, 0x2a, 0x51, 0x65, 0x58, 0xa2, 0x1a, 0x0f, + 0x55, 0x35, 0xe6, 0x64, 0x35, 0x96, 0x63, 0x1e, 0xf1, 0x32, 0xfc, 0x91, 0x06, 0xeb, 0x9f, 0xad, + 0x35, 0xfc, 0x5f, 0xb8, 0x9b, 0x06, 0x39, 0x4d, 0x6c, 0x49, 0x91, 0x51, 0x72, 0x41, 0xdd, 0x07, + 0x0b, 0x6a, 0x10, 0x06, 0xd9, 0xfb, 0xcf, 0x64, 0xac, 0x1b, 0x37, 0x89, 0x38, 0x9c, 0x8a, 0xd1, + 0xf0, 0x0d, 0x9d, 0xe0, 0x73, 0x30, 0x27, 0x76, 0x70, 0xb5, 0xdf, 0x6e, 0xde, 0x68, 0xc8, 0xf3, + 0xf8, 0x86, 0x6e, 0x05, 0xc6, 0xf0, 0x10, 0x2c, 0xc7, 0x37, 0x77, 0x8c, 0xd4, 0xe2, 0x57, 0x4a, + 0x34, 0x61, 0xd2, 0x77, 0xda, 0x05, 0x96, 0x62, 0x6c, 0x2b, 0xf2, 0x9c, 0x89, 0xb1, 0xe8, 0xfd, + 0x18, 0x03, 0x8a, 0xed, 0x36, 0xfd, 0x66, 0xe6, 0x9a, 0xdf, 0x36, 0x12, 0x14, 0x3b, 0x2f, 0xd4, + 0x31, 0xf6, 0x9c, 0x66, 0x83, 0xea, 0xf3, 0x8f, 0x9f, 0x36, 0x53, 0xbf, 0x7e, 0xda, 0x4c, 0xfd, + 0xf6, 0x69, 0x33, 0xf5, 0xd3, 0xef, 0x9b, 0x33, 0x60, 0x1d, 0xd3, 0x0a, 0xe3, 0x4e, 0xbb, 0xeb, + 0xd3, 0xab, 0xa0, 0x61, 0x54, 0xdc, 0x1f, 0xd4, 0xdf, 0xa6, 0xd6, 0xbc, 0x94, 0xff, 0xff, 0xcf, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xb6, 0xdf, 0x38, 0x44, 0x5c, 0x0d, 0x00, 0x00, } func (m *Node) Marshal() (dAtA []byte, err error) { @@ -1013,21 +1023,35 @@ func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.NodeInventory != nil { + { + size, err := m.NodeInventory.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintNode(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xe2 + } if len(m.Notes) > 0 { - dAtA2 := make([]byte, len(m.Notes)*10) - var j1 int + dAtA3 := make([]byte, len(m.Notes)*10) + var j2 int for _, num := range m.Notes { for num >= 1<<7 { - dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + dAtA3[j2] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j1++ + j2++ } - dAtA2[j1] = uint8(num) - j1++ + dAtA3[j2] = uint8(num) + j2++ } - i -= j1 - copy(dAtA[i:], dAtA2[:j1]) - i = encodeVarintNode(dAtA, i, uint64(j1)) + i -= j2 + copy(dAtA[i:], dAtA3[:j2]) + i = encodeVarintNode(dAtA, i, uint64(j2)) i-- dAtA[i] = 0x1 i-- @@ -1379,20 +1403,20 @@ func (m *NodeScan) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.Notes) > 0 { - dAtA9 := make([]byte, len(m.Notes)*10) - var j8 int + dAtA10 := make([]byte, len(m.Notes)*10) + var j9 int for _, num := range m.Notes { for num >= 1<<7 { - dAtA9[j8] = uint8(uint64(num)&0x7f | 0x80) + dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j8++ + j9++ } - dAtA9[j8] = uint8(num) - j8++ + dAtA10[j9] = uint8(num) + j9++ } - i -= j8 - copy(dAtA[i:], dAtA9[:j8]) - i = encodeVarintNode(dAtA, i, uint64(j8)) + i -= j9 + copy(dAtA[i:], dAtA10[:j9]) + i = encodeVarintNode(dAtA, i, uint64(j9)) i-- dAtA[i] = 0x22 } @@ -1457,20 +1481,20 @@ func (m *NodeInventory) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.Notes) > 0 { - dAtA12 := make([]byte, len(m.Notes)*10) - var j11 int + dAtA13 := make([]byte, len(m.Notes)*10) + var j12 int for _, num := range m.Notes { for num >= 1<<7 { - dAtA12[j11] = uint8(uint64(num)&0x7f | 0x80) + dAtA13[j12] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j11++ + j12++ } - dAtA12[j11] = uint8(num) - j11++ + dAtA13[j12] = uint8(num) + j12++ } - i -= j11 - copy(dAtA[i:], dAtA12[:j11]) - i = encodeVarintNode(dAtA, i, uint64(j11)) + i -= j12 + copy(dAtA[i:], dAtA13[:j12]) + i = encodeVarintNode(dAtA, i, uint64(j12)) i-- dAtA[i] = 0x2a } @@ -1753,6 +1777,10 @@ func (m *Node) Size() (n int) { } n += 2 + sovNode(uint64(l)) + l } + if m.NodeInventory != nil { + l = m.NodeInventory.Size() + n += 2 + l + sovNode(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -2971,6 +2999,42 @@ func (m *Node) Unmarshal(dAtA []byte) error { } else { return fmt.Errorf("proto: wrong wireType = %d for field Notes", wireType) } + case 28: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeInventory", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNode + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthNode + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthNode + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NodeInventory == nil { + m.NodeInventory = &NodeInventory{} + } + if err := m.NodeInventory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipNode(dAtA[iNdEx:]) diff --git a/go.mod b/go.mod index c1253fad492bc..97c689d58dba4 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/blevesearch/bleve v1.0.14 github.com/cenkalti/backoff/v3 v3.2.2 github.com/cloudflare/cfssl v1.6.3 - github.com/containers/image/v5 v5.23.0 + github.com/containers/image/v5 v5.23.1 github.com/coreos/go-oidc/v3 v3.4.0 github.com/coreos/go-systemd/v22 v22.5.0 github.com/dave/jennifer v1.6.0 @@ -85,7 +85,7 @@ require ( github.com/stackrox/external-network-pusher v0.0.0-20210419192707-074af92bbfa7 github.com/stackrox/helmtest v0.0.0-20220930104945-c4a3c15e834a github.com/stackrox/k8s-istio-cve-pusher v0.0.0-20210422200002-d89f671ac4f5 - github.com/stackrox/scanner v0.0.0-20220929215850-334d4658d5e6 + github.com/stackrox/scanner v0.0.0-20221122151333-4c8cbd61bfa7 github.com/stretchr/testify v1.8.1 github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c github.com/tidwall/gjson v1.14.1 @@ -106,7 +106,7 @@ require ( golang.org/x/tools v0.3.0 golang.stackrox.io/grpc-http1 v0.2.5 google.golang.org/api v0.103.0 - google.golang.org/genproto v0.0.0-20221111202108-142d8a6fa32e + google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 google.golang.org/grpc v1.51.0 google.golang.org/grpc/examples v0.0.0-20210902184326-c93e472777b9 gopkg.in/robfig/cron.v2 v2.0.0-20150107220207-be2e0b0deed5 @@ -248,7 +248,7 @@ require ( github.com/kevinburke/ssh_config v1.1.0 // indirect github.com/klauspost/compress v1.15.11 // indirect github.com/klauspost/pgzip v1.2.5 // indirect - github.com/knqyf263/go-rpm-version v0.0.0-20170716094938-74609b86c936 // indirect + github.com/knqyf263/go-rpm-version v0.0.0-20220614171824-631e686d1075 // indirect github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect github.com/leodido/go-urn v1.2.1 // indirect @@ -258,7 +258,7 @@ require ( github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.16 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mauricelam/genny v0.0.0-20190320071652-0800202903e5 // indirect github.com/mholt/archiver/v3 v3.5.1 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect @@ -304,6 +304,7 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/viper v1.13.0 // indirect github.com/stackrox/dotnet-scraper v0.0.0-20201023051640-72ef543323dd // indirect + github.com/stackrox/istio-cves v0.0.0-20221007013142-0bde9b541ec8 // indirect github.com/stackrox/k8s-cves v0.0.0-20220818200547-7d0d1420c58d // indirect github.com/steveyen/gtreap v0.1.0 // indirect github.com/stretchr/objx v0.5.0 // indirect diff --git a/go.sum b/go.sum index a31947ef7aa98..0e52d97becc49 100644 --- a/go.sum +++ b/go.sum @@ -433,8 +433,8 @@ github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= -github.com/containers/image/v5 v5.23.0 h1:Uv/n8zsHVUBBJK2rfBUHbN4CutHHmsQeyi4f80lAOf8= -github.com/containers/image/v5 v5.23.0/go.mod h1:EXFFGEsL99S6aqLqK2mQJ3yrNh6Q05UCHt4mhF9JNoM= +github.com/containers/image/v5 v5.23.1 h1:dUK9p5xfd38iTQXJEgMsUGqIHXbkDugrleZtd3zB+Wg= +github.com/containers/image/v5 v5.23.1/go.mod h1:EXFFGEsL99S6aqLqK2mQJ3yrNh6Q05UCHt4mhF9JNoM= github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= @@ -1224,8 +1224,8 @@ github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrD github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= -github.com/knqyf263/go-rpm-version v0.0.0-20170716094938-74609b86c936 h1:HDjRqotkViMNcGMGicb7cgxklx8OwnjtCBmyWEqrRvM= -github.com/knqyf263/go-rpm-version v0.0.0-20170716094938-74609b86c936/go.mod h1:i4sF0l1fFnY1aiw08QQSwVAFxHEm311Me3WsU/X7nL0= +github.com/knqyf263/go-rpm-version v0.0.0-20220614171824-631e686d1075 h1:aC6MEAs3PE3lWD7lqrJfDxHd6hcced9R4JTZu85cJwU= +github.com/knqyf263/go-rpm-version v0.0.0-20220614171824-631e686d1075/go.mod h1:i4sF0l1fFnY1aiw08QQSwVAFxHEm311Me3WsU/X7nL0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -1345,8 +1345,9 @@ github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOj github.com/mattn/go-zglob v0.0.1/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mauricelam/genny v0.0.0-20190320071652-0800202903e5 h1:PnFl95tWh3j7c5DebZG/TGsBJvbnHvPjK4lzltouI4Y= github.com/mauricelam/genny v0.0.0-20190320071652-0800202903e5/go.mod h1:i2AazGGunAlAR5u0zXGYVmIT7nnwE6j9lwKSMx7N6ko= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= @@ -1780,6 +1781,8 @@ github.com/stackrox/helm-operator v0.0.12-0.20221003092512-fbf71229411f h1:nphYJ github.com/stackrox/helm-operator v0.0.12-0.20221003092512-fbf71229411f/go.mod h1:ePpw8FfTC8u3AZIm5jwWJx388paDdU85s6eDt+7rp3s= github.com/stackrox/helmtest v0.0.0-20220930104945-c4a3c15e834a h1:GYctXTwXPRNcFA/5ZYuW72+Xc1NWWwhhNZ7i9IxpiLQ= github.com/stackrox/helmtest v0.0.0-20220930104945-c4a3c15e834a/go.mod h1:24yMdLa0GcKqcMexrQI3fRR/lhiKpQnnzxPaBx2OsAM= +github.com/stackrox/istio-cves v0.0.0-20221007013142-0bde9b541ec8 h1:rUIvoAHokPcd92aJT2gJwVeyE8tMuaqS5l5s3cEgXFY= +github.com/stackrox/istio-cves v0.0.0-20221007013142-0bde9b541ec8/go.mod h1:ZF7mH4kH1G+82HxR3uFDHvyLG8eCOdrh1RDyQcTGkBA= github.com/stackrox/k8s-cves v0.0.0-20220818200547-7d0d1420c58d h1:88Iui7fSMKgXvpyfBlbP3qosrqyv3qMgOJ6JJ4V4tFQ= github.com/stackrox/k8s-cves v0.0.0-20220818200547-7d0d1420c58d/go.mod h1:GJwFpFwCxiYhgpJWrAkM+v9Z9gpgtyWxkRdK4JjsOIg= github.com/stackrox/k8s-istio-cve-pusher v0.0.0-20210422200002-d89f671ac4f5 h1:0O3kYf9IvjnzwKBE/UuofeiKmwb8x9ga3mm26dqL4/Y= @@ -1790,8 +1793,8 @@ github.com/stackrox/oauth2 v0.0.0-20220531064142-8b312376cb4c h1:lpB76HIH2VEIOgr github.com/stackrox/oauth2 v0.0.0-20220531064142-8b312376cb4c/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= github.com/stackrox/pkcs7 v0.0.0-20220914154527-cfdb0aa47179 h1:5wzvROh+LGgeIeOpMuEpIkRIALDFU/ltFB8cY3916c4= github.com/stackrox/pkcs7 v0.0.0-20220914154527-cfdb0aa47179/go.mod h1:zwEXo3PEZZb6QQZBrBORMX0Hvnnwst3PduSaTQZMFYc= -github.com/stackrox/scanner v0.0.0-20220929215850-334d4658d5e6 h1:wiG8lxf3zsSnWJKNY4i9J1+HkH4LvWj9+Jy/FSUceZs= -github.com/stackrox/scanner v0.0.0-20220929215850-334d4658d5e6/go.mod h1:pfQ6NnURzcFAavhZIU6KhghbcVJfj3Dp5QBiWzHkeTE= +github.com/stackrox/scanner v0.0.0-20221122151333-4c8cbd61bfa7 h1:j3rzF44/AEQHDNN+GDKJUn92hbRsOVgk3/k52ZLcxqQ= +github.com/stackrox/scanner v0.0.0-20221122151333-4c8cbd61bfa7/go.mod h1:Swr/ZyNzXe9VPMY9pJrQwVJVITMWharJnVlSmHh5J2k= github.com/stackrox/tail v1.4.9-0.20210831224919-407035634f5d h1:jeM6QMtwE9BU0rfDYcmkI/aOChOUfIO18LDp/DSnZpI= github.com/stackrox/tail v1.4.9-0.20210831224919-407035634f5d/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/stackrox/yaml/v2 v2.4.1 h1:09ux+QFfvp+Lk73pwGlMTAHeZoS2pqs6CCngYaJ6EQo= @@ -2646,8 +2649,8 @@ google.golang.org/genproto v0.0.0-20210510173355-fb37daa5cd7a/go.mod h1:P3QM42oQ google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20221111202108-142d8a6fa32e h1:azcyH5lGzGy7pkLCbhPe0KkKxsM7c6UA/FZIXImKE7M= -google.golang.org/genproto v0.0.0-20221111202108-142d8a6fa32e/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 h1:a2S6M0+660BgMNl++4JPlcAO/CjkqYItDEZwkoDQK7c= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= diff --git a/pkg/features/list.go b/pkg/features/list.go index 1a92720c12be6..3b2f486ad082a 100644 --- a/pkg/features/list.go +++ b/pkg/features/list.go @@ -46,6 +46,9 @@ var ( // RHCOSNodeScanning enables phase 1 functions of "Full host level vulnerability scanning for RHCOS nodes" (ROX-10818) RHCOSNodeScanning = registerFeature("Enable RHCOS node scanning of OS and installed packages", "ROX_RHCOS_NODE_SCANNING", false) + // UseFakeNodeInventory tells compliance to use FakeNodeScanner with hardcoded data instead of calling scanner.Analyze() + UseFakeNodeInventory = registerFeature("Enables compliance to use FakeNodeScanner with hardcoded data instead of calling scanner.Analyze()", "ROX_RHCOS_FAKE_NODE_INVENTORY", false) + // ProcessesListeningOnPort enables the NetworkFlow code to also update the processes that are listening on ports ProcessesListeningOnPort = registerFeature("Enable Processes Listening on Port", "ROX_PROCESSES_LISTENING_ON_PORT", false) diff --git a/pkg/nodes/enricher/enricher_impl.go b/pkg/nodes/enricher/enricher_impl.go index 8b6a90e33a1dd..e3b86ea3ef3d3 100644 --- a/pkg/nodes/enricher/enricher_impl.go +++ b/pkg/nodes/enricher/enricher_impl.go @@ -20,7 +20,6 @@ type enricherImpl struct { lock sync.RWMutex scanners map[string]types.NodeScannerWithDataSource - creators map[string]pkgScanners.NodeScannerCreator metrics metrics @@ -97,6 +96,10 @@ func (e *enricherImpl) enrichNodeWithScanner(node *storage.Node, scanner types.N _ = sema.Acquire(context.Background(), 1) defer sema.Release(1) + if node == nil { + return errors.Errorf("invalid request: called enrichNodeWithScanner '%s' with nil Node", scanner.Name()) + } + scanStartTime := time.Now() scan, err := scanner.GetNodeScan(node) @@ -107,7 +110,6 @@ func (e *enricherImpl) enrichNodeWithScanner(node *storage.Node, scanner types.N if scan == nil { return nil } - node.Scan = scan if env.PostgresDatastoreEnabled.BooleanSetting() { converter.FillV2NodeVulnerabilities(node) diff --git a/pkg/scanners/clairify/clairify.go b/pkg/scanners/clairify/clairify.go index c175aae9f41b2..52dddaa67bd70 100644 --- a/pkg/scanners/clairify/clairify.go +++ b/pkg/scanners/clairify/clairify.go @@ -176,13 +176,16 @@ func newNodeScanner(protoNodeIntegration *storage.NodeIntegration) (*clairify, e pingServiceClient := clairGRPCV1.NewPingServiceClient(gRPCConnection) scanServiceClient := clairGRPCV1.NewNodeScanServiceClient(gRPCConnection) + // required as RHCOS scanning uses ImageScan API + imageScanServiceClient := clairGRPCV1.NewImageScanServiceClient(gRPCConnection) return &clairify{ - NodeScanSemaphore: scannerTypes.NewNodeSemaphoreWithValue(defaultMaxConcurrentScans), - conf: conf, - pingServiceClient: pingServiceClient, - nodeScanServiceClient: scanServiceClient, - protoNodeIntegration: protoNodeIntegration, + NodeScanSemaphore: scannerTypes.NewNodeSemaphoreWithValue(defaultMaxConcurrentScans), + conf: conf, + pingServiceClient: pingServiceClient, + nodeScanServiceClient: scanServiceClient, + imageScanServiceClient: imageScanServiceClient, + protoNodeIntegration: protoNodeIntegration, }, nil } @@ -400,6 +403,7 @@ func (c *clairify) GetVulnerabilities(image *storage.Image, components *clairGRP } ctx, cancel := context.WithTimeout(context.Background(), clientTimeout) defer cancel() + resp, err := c.imageScanServiceClient.GetImageVulnerabilities(ctx, req) if err != nil { return nil, err @@ -411,14 +415,18 @@ func (c *clairify) GetVulnerabilities(image *storage.Image, components *clairGRP // GetNodeScan retrieves the most recent node scan func (c *clairify) GetNodeScan(node *storage.Node) (*storage.NodeScan, error) { req := convertNodeToVulnRequest(node) + log.Infof("Request GetNodeVulnerabilities.NodeInventory for Node '%s': %+v", node.GetName(), req.GetNodeInventory()) ctx, cancel := context.WithTimeout(context.Background(), clientTimeout) defer cancel() resp, err := c.nodeScanServiceClient.GetNodeVulnerabilities(ctx, req) + log.Infof("Reply GetNodeVulnerabilities.InventoryFeatures: %+v, ERROR: %v", resp.GetInventoryFeatures(), err) + if err != nil { return nil, err } scan := convertVulnResponseToNodeScan(req, resp) + log.Infof("Converted NodeScan: %+v", scan) if scan == nil { return nil, errors.New("malformed vuln response from scanner") } diff --git a/pkg/scanners/clairify/convert.go b/pkg/scanners/clairify/convert.go index 6e21e26213e38..588d74921e0e5 100644 --- a/pkg/scanners/clairify/convert.go +++ b/pkg/scanners/clairify/convert.go @@ -19,6 +19,7 @@ func convertNodeToVulnRequest(node *storage.Node) *v1.GetNodeVulnerabilitiesRequ KubeletVersion: node.GetKubeletVersion(), KubeproxyVersion: node.GetKubeProxyVersion(), Runtime: convertContainerRuntime(node.GetContainerRuntime()), + NodeInventory: node.GetNodeInventory().GetComponents(), } } @@ -69,6 +70,16 @@ func convertVulnResponseToNodeScan(req *v1.GetNodeVulnerabilitiesRequest, resp * }, Notes: convertNodeNotes(resp.GetNotes()), } + if resp.InventoryFeatures != nil { + for _, feature := range resp.GetInventoryFeatures() { + scan.Components = append(scan.Components, &storage.EmbeddedNodeScanComponent{ + Name: feature.GetName(), + Version: feature.GetVersion(), + Vulns: convertNodeVulns(feature.GetVulnerabilities()), + }) + } + + } if req.GetRuntime().GetName() != "" && req.GetRuntime().GetVersion() != "" { scan.Components = append(scan.Components, &storage.EmbeddedNodeScanComponent{ Name: req.GetRuntime().GetName(), @@ -79,6 +90,22 @@ func convertVulnResponseToNodeScan(req *v1.GetNodeVulnerabilitiesRequest, resp * return scan } +func convertImageVulnResponseToNodeScan(resp *v1.GetImageVulnerabilitiesResponse) *storage.NodeScan { + c := make([]*storage.EmbeddedNodeScanComponent, len(resp.GetImage().GetFeatures())) + for i, feature := range resp.GetImage().GetFeatures() { + c[i] = &storage.EmbeddedNodeScanComponent{ + Name: feature.GetName(), + Version: feature.GetVersion(), + Vulns: convertVulnerabilities(feature.GetVulnerabilities(), storage.EmbeddedVulnerability_NODE_VULNERABILITY), + } + } + return &storage.NodeScan{ + ScanTime: gogoProto.TimestampNow(), + OperatingSystem: "RHCOS-hardcoded-value", + Components: c, + } +} + func convertNodeNotes(v1Notes []v1.NodeNote) []storage.NodeScan_Note { notes := make([]storage.NodeScan_Note, 0, len(v1Notes)) for _, note := range v1Notes { diff --git a/pkg/sync/mutex_dev.go b/pkg/sync/mutex_dev.go index 418787624dfa7..3519bcc9d89a1 100644 --- a/pkg/sync/mutex_dev.go +++ b/pkg/sync/mutex_dev.go @@ -47,7 +47,7 @@ func panicIfTooMuchTimeElapsed(action string, startTime time.Time, limit time.Du return } _, _ = fmt.Fprintf(os.Stderr, "Action %s took more than %v to complete. Stack trace:\n%s", action, limit, debug.GetLazyStacktrace(skip+1)) - kill() + // kill() } func panicOnTimeout(action string, do func(), timeout time.Duration) { diff --git a/proto/internalapi/central/sensor_events.proto b/proto/internalapi/central/sensor_events.proto index 24944e05ee195..83e3815ac053f 100644 --- a/proto/internalapi/central/sensor_events.proto +++ b/proto/internalapi/central/sensor_events.proto @@ -68,7 +68,6 @@ message SensorEvent { storage.NamespaceMetadata namespace = 6; storage.Secret secret = 7; storage.Node node = 9; - storage.NodeInventory node_inventory = 25; storage.ServiceAccount service_account = 14; storage.K8sRole role = 15; storage.K8sRoleBinding binding = 16; diff --git a/proto/storage/node.proto b/proto/storage/node.proto index 48f3598f791db..4d8db18dabece 100644 --- a/proto/storage/node.proto +++ b/proto/storage/node.proto @@ -16,7 +16,7 @@ import "gogoproto/gogo.proto"; package storage; // Node represents information about a node in the cluster. -// next available tag: 28 +// next available tag: 29 message Node { // A unique ID identifying this node. string id = 1 [(gogoproto.moretags) = 'search:"Node ID,store" sql:"pk,type(uuid)"']; @@ -49,6 +49,7 @@ message Node { // Time we received an update from Kubernetes. google.protobuf.Timestamp k8s_updated = 26 [(gogoproto.moretags) = 'sensorhash:"ignore"']; + NodeInventory node_inventory = 28 [(gogoproto.moretags) = 'policy:"Node Inventory" sql:"-"']; NodeScan scan = 18 [(gogoproto.moretags) = 'policy:"Node Scan"']; oneof set_components { int32 components = 19 [(gogoproto.moretags) = 'search:"Component Count,store,hidden"']; diff --git a/sensor/common/compliance/nodescan_handler_impl.go b/sensor/common/compliance/nodescan_handler_impl.go index 6df9498d91e43..1b9eb3a284c4a 100644 --- a/sensor/common/compliance/nodescan_handler_impl.go +++ b/sensor/common/compliance/nodescan_handler_impl.go @@ -1,11 +1,13 @@ package compliance import ( + "github.com/gogo/protobuf/types" "github.com/pkg/errors" "github.com/stackrox/rox/generated/internalapi/central" "github.com/stackrox/rox/generated/storage" "github.com/stackrox/rox/pkg/centralsensor" "github.com/stackrox/rox/pkg/concurrency" + "github.com/stackrox/rox/pkg/k8sutil" "github.com/stackrox/rox/pkg/sync" ) @@ -82,25 +84,54 @@ func (c *nodeScanHandlerImpl) run() <-chan *central.MsgFromSensor { c.stopC.SignalWithError(errInputChanClosed) return } - // TODO(ROX-12943): Do something with the inventory, e.g., attach NodeID - c.sendInventory(toC, scan) + // TODO(ROX-12943): Merge with the Node and send to Central + c.handleNodeInventory(toC, scan) } } }() return toC } -func (c *nodeScanHandlerImpl) sendInventory(toC chan *central.MsgFromSensor, scan *storage.NodeInventory) { +func (c *nodeScanHandlerImpl) handleNodeInventory(toC chan *central.MsgFromSensor, scan *storage.NodeInventory) { + c.fakeAndSendToCentral(toC, scan) +} + +func (c *nodeScanHandlerImpl) fakeAndSendToCentral(toC chan *central.MsgFromSensor, scan *storage.NodeInventory) { if scan == nil { return } + creation := scan.ScanTime + nodeResource := &storage.Node{ + // this is arbitrary selected UUID - we want to see only 1 fake node in the UI + Id: "bf5bf7d4-2d77-4194-9ab5-570848c55777", + Name: scan.GetNodeName(), + Taints: nil, + NodeInventory: scan, + Labels: map[string]string{"fakeLK": "fakeLV"}, + Annotations: map[string]string{"fakeAK": "fakeAV"}, + JoinedAt: &types.Timestamp{Seconds: creation.Seconds, Nanos: creation.Nanos}, + InternalIpAddresses: []string{"192.168.255.254"}, + ExternalIpAddresses: []string{"10.10.255.254"}, + ContainerRuntime: k8sutil.ParseContainerRuntimeVersion("docker://20.10.18"), + ContainerRuntimeVersion: "docker://20.10.18", + KernelVersion: "99.19.16", + OperatingSystem: "Alpine Linux v3.16", + OsImage: "RedHat CoreOS v99.66.33", + KubeletVersion: "v1.25.0+k3s1", + KubeProxyVersion: "v1.25.0+k3s1", + K8SUpdated: types.TimestampNow(), + } + select { case <-c.stopC.Done(): + return case toC <- ¢ral.MsgFromSensor{ Msg: ¢ral.MsgFromSensor_Event{ Event: ¢ral.SensorEvent{ - Resource: ¢ral.SensorEvent_NodeInventory{ - NodeInventory: scan, + Id: nodeResource.GetId(), + Action: central.ResourceAction_CREATE_RESOURCE, + Resource: ¢ral.SensorEvent_Node{ + Node: nodeResource, }, }, }, diff --git a/sensor/kubernetes/listener/resources/node.go b/sensor/kubernetes/listener/resources/node.go index f2659b82d8d3c..8dd087ace419a 100644 --- a/sensor/kubernetes/listener/resources/node.go +++ b/sensor/kubernetes/listener/resources/node.go @@ -71,6 +71,7 @@ func (h *nodeDispatcher) ProcessEvent(obj, _ interface{}, action central.Resourc Name: node.Name, Taints: convertTaints(node.Spec.Taints), Labels: node.GetLabels(), + NodeInventory: nil, Annotations: node.GetAnnotations(), JoinedAt: &types.Timestamp{Seconds: creation.Seconds, Nanos: creation.Nanos}, InternalIpAddresses: internal,