gitextract_khhzg63f/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── custom.md │ │ └── feature_request.md │ ├── ISSUE_TEMPLATE.md │ └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .make/ │ ├── Makefile.deploy.controller │ └── Makefile.deploy.purser ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile.in ├── Gopkg.toml ├── LICENSE ├── Makefile ├── NOTICE ├── README.md ├── build/ │ ├── build.sh │ ├── purser-binary-install.sh │ ├── purser-binary-uninstall.sh │ ├── purser-minimal-setup.sh │ └── purser-setup.sh ├── cluster/ │ ├── artifacts/ │ │ ├── example-group.yaml │ │ ├── example-subscriber.yaml │ │ ├── group-template.json │ │ ├── purser-group-crd.yaml │ │ └── purser-subscriber-crd.yaml │ ├── helm/ │ │ └── chart/ │ │ └── purser/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── README.md │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── purser-controller-deployment.yaml │ │ │ ├── purser-controller-rbac.yaml │ │ │ ├── purser-controller-serviceaccount.yaml │ │ │ ├── purser-controller-svc.yaml │ │ │ ├── purser-database-statefulset.yaml │ │ │ ├── purser-database-svc.yaml │ │ │ ├── purser-ui-configmap.yaml │ │ │ ├── purser-ui-deployment.yaml │ │ │ ├── purser-ui-ingress.yaml │ │ │ └── purser-ui-svc.yaml │ │ └── values.yaml │ ├── minimal/ │ │ ├── purser-controller-setup.yaml │ │ ├── purser-database-setup.yaml │ │ └── purser-ui-setup.yaml │ ├── purser-controller-setup.yaml │ ├── purser-database-setup.yaml │ └── purser-ui-setup.yaml ├── cmd/ │ ├── controller/ │ │ ├── api/ │ │ │ ├── api.go │ │ │ ├── apiHandlers/ │ │ │ │ ├── authenticationHandlers.go │ │ │ │ ├── customGroupHandlers.go │ │ │ │ ├── helpers.go │ │ │ │ └── hierarchyAndMetricAPIHandlers.go │ │ │ ├── logger.go │ │ │ ├── router.go │ │ │ └── routes.go │ │ ├── config/ │ │ │ └── config.go │ │ └── purserctrl.go │ └── plugin/ │ ├── purser.go │ └── types.go ├── docs/ │ ├── architecture.md │ ├── custom-group-installation-and-usage.md │ ├── design/ │ │ └── pricing.md │ ├── developers-guide.md │ ├── manual-installation.md │ ├── plugin-installation.md │ ├── plugin-usage.md │ ├── purser-deployment.md │ └── sourcecode-installation.md ├── openapi.yaml ├── pkg/ │ ├── apis/ │ │ ├── groups/ │ │ │ └── v1/ │ │ │ ├── deepcopy.go │ │ │ ├── docs.go │ │ │ ├── register.go │ │ │ └── types.go │ │ └── subscriber/ │ │ └── v1/ │ │ ├── deepcopy.go │ │ ├── docs.go │ │ ├── register.go │ │ └── types.go │ ├── client/ │ │ ├── clientset/ │ │ │ └── typed/ │ │ │ ├── groups/ │ │ │ │ └── v1/ │ │ │ │ ├── group.go │ │ │ │ └── group_client.go │ │ │ └── subscriber/ │ │ │ └── v1/ │ │ │ ├── subsciber_client.go │ │ │ └── subscriber.go │ │ └── clientset.go │ ├── controller/ │ │ ├── buffering/ │ │ │ └── ring_buffer.go │ │ ├── controller.go │ │ ├── controller_test.go │ │ ├── dgraph/ │ │ │ ├── dgraph.go │ │ │ ├── login.go │ │ │ ├── models/ │ │ │ │ ├── constants.go │ │ │ │ ├── container.go │ │ │ │ ├── daemonset.go │ │ │ │ ├── deployment.go │ │ │ │ ├── group.go │ │ │ │ ├── job.go │ │ │ │ ├── label.go │ │ │ │ ├── namespace.go │ │ │ │ ├── node.go │ │ │ │ ├── pod.go │ │ │ │ ├── pod_test.go │ │ │ │ ├── process.go │ │ │ │ ├── pv.go │ │ │ │ ├── pvc.go │ │ │ │ ├── query/ │ │ │ │ │ ├── cluster.go │ │ │ │ │ ├── cluster_test.go │ │ │ │ │ ├── constants_test.go │ │ │ │ │ ├── group.go │ │ │ │ │ ├── group_test.go │ │ │ │ │ ├── helpers.go │ │ │ │ │ ├── helpers_test.go │ │ │ │ │ ├── label.go │ │ │ │ │ ├── label_test.go │ │ │ │ │ ├── login.go │ │ │ │ │ ├── pod.go │ │ │ │ │ ├── pod_test.go │ │ │ │ │ ├── queries.go │ │ │ │ │ ├── resource.go │ │ │ │ │ ├── resource_test.go │ │ │ │ │ ├── subscriber.go │ │ │ │ │ ├── subscriber_test.go │ │ │ │ │ └── types.go │ │ │ │ ├── rateCard.go │ │ │ │ ├── replicaset.go │ │ │ │ ├── service.go │ │ │ │ ├── statefulset.go │ │ │ │ └── subscriber.go │ │ │ └── purge.go │ │ ├── discovery/ │ │ │ ├── executer/ │ │ │ │ └── exec.go │ │ │ ├── generator/ │ │ │ │ └── graph.go │ │ │ ├── linker/ │ │ │ │ ├── podlinks.go │ │ │ │ ├── processlinks.go │ │ │ │ └── servicelinks.go │ │ │ └── processor/ │ │ │ ├── container.go │ │ │ ├── pod.go │ │ │ └── svc.go │ │ ├── eventprocessor/ │ │ │ ├── notifier.go │ │ │ ├── processor.go │ │ │ ├── sync.go │ │ │ └── updater.go │ │ ├── metrics/ │ │ │ └── metrics.go │ │ ├── payload.go │ │ ├── persistentVolume.go │ │ ├── types.go │ │ └── utils/ │ │ ├── jsonutils.go │ │ ├── k8sUtils.go │ │ ├── purge.go │ │ ├── purge_test.go │ │ ├── timeUtils.go │ │ ├── unitConversions.go │ │ └── unitConversions_test.go │ ├── plugin/ │ │ ├── costing.go │ │ ├── grouping.go │ │ ├── metrics/ │ │ │ └── metrics.go │ │ ├── node.go │ │ ├── pod.go │ │ ├── pricing.go │ │ ├── utils.go │ │ └── volume.go │ ├── pricing/ │ │ ├── aws/ │ │ │ ├── aws.go │ │ │ └── convert.go │ │ └── cloud.go │ └── utils/ │ ├── fileutils.go │ ├── k8sutil.go │ └── logutil.go ├── plugin.yaml ├── test/ │ ├── controller/ │ │ └── buffering/ │ │ └── ring_buffer_test.go │ ├── pricing/ │ │ └── pricing_aws_test.go │ └── utils/ │ └── checkUtil.go └── ui/ ├── Dockerfile.deploy.purser ├── README.md ├── angular.json ├── e2e/ │ ├── protractor.conf.js │ ├── src/ │ │ ├── app.e2e-spec.ts │ │ └── app.po.ts │ └── tsconfig.e2e.json ├── nginx.conf ├── package.json ├── proxy.conf.json ├── src/ │ ├── app/ │ │ ├── app.component.html │ │ ├── app.component.scss │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ ├── app.constants.ts │ │ ├── app.module.ts │ │ ├── app.routing.ts │ │ ├── common/ │ │ │ └── messages/ │ │ │ ├── common.messages.ts │ │ │ └── left-navigation.messages.ts │ │ └── modules/ │ │ ├── capacity-graph/ │ │ │ ├── capacity-graph.module.ts │ │ │ ├── components/ │ │ │ │ ├── capactiy-graph.component.html │ │ │ │ ├── capactiy-graph.component.scss │ │ │ │ ├── capactiy-graph.component.spec.ts │ │ │ │ └── capactiy-graph.component.ts │ │ │ └── services/ │ │ │ └── capacity-graph.service.ts │ │ ├── changepassword/ │ │ │ ├── changepassword.module.ts │ │ │ ├── components/ │ │ │ │ ├── changepassword.component.html │ │ │ │ ├── changepassword.component.scss │ │ │ │ ├── changepassword.component.spec.ts │ │ │ │ └── changepassword.component.ts │ │ │ └── services/ │ │ │ └── changepassword.service.ts │ │ ├── logical-group/ │ │ │ ├── components/ │ │ │ │ ├── logical-group.component.css │ │ │ │ ├── logical-group.component.html │ │ │ │ ├── logical-group.component.spec.ts │ │ │ │ └── logical-group.component.ts │ │ │ ├── logical-group.module.ts │ │ │ └── services/ │ │ │ └── logical-group.service.ts │ │ ├── login/ │ │ │ ├── components/ │ │ │ │ ├── login.component.html │ │ │ │ ├── login.component.scss │ │ │ │ ├── login.component.spec.ts │ │ │ │ └── login.component.ts │ │ │ ├── login.module.ts │ │ │ └── services/ │ │ │ └── login.service.ts │ │ ├── logout/ │ │ │ ├── components/ │ │ │ │ ├── logout.component.html │ │ │ │ ├── logout.component.scss │ │ │ │ ├── logout.component.spec.ts │ │ │ │ └── logout.component.ts │ │ │ └── logout.module.ts │ │ ├── options/ │ │ │ ├── components/ │ │ │ │ ├── options.component.html │ │ │ │ ├── options.component.scss │ │ │ │ ├── options.component.spec.ts │ │ │ │ └── options.component.ts │ │ │ └── options.module.ts │ │ ├── topo-graph/ │ │ │ ├── components/ │ │ │ │ ├── topo-graph.component.html │ │ │ │ ├── topo-graph.component.scss │ │ │ │ ├── topo-graph.component.spec.ts │ │ │ │ └── topo-graph.component.ts │ │ │ ├── modules.ts │ │ │ └── services/ │ │ │ └── topo-graph.service.ts │ │ └── topologyGraph/ │ │ ├── components/ │ │ │ ├── index.ts │ │ │ ├── topologyGraph.component.html │ │ │ ├── topologyGraph.component.scss │ │ │ └── topologyGraph.component.ts │ │ ├── modules.ts │ │ └── services/ │ │ └── topologyGraph.service.ts │ ├── assets/ │ │ └── .gitkeep │ ├── browserslist │ ├── environments/ │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── index.html │ ├── json/ │ │ └── logicalGroup.json │ ├── karma.conf.js │ ├── main.ts │ ├── polyfills.ts │ ├── styles.css │ ├── test.ts │ ├── tsconfig.app.json │ ├── tsconfig.spec.json │ └── tslint.json ├── tsconfig.json └── tslint.json