gitextract_mwr70acn/ ├── .bazelignore ├── .bazelrc ├── .bazelversion ├── .dockerignore ├── .editorconfig ├── .github/ │ ├── ci/ │ │ ├── .bazelrc │ │ ├── Dockerfile.integration-test-image │ │ ├── common.sh │ │ ├── deploy_navtest.sh │ │ ├── deploy_navtest_cloudbuild.yaml │ │ ├── deployments/ │ │ │ ├── robco-integration-test/ │ │ │ │ ├── config.sh │ │ │ │ └── kubernetes/ │ │ │ │ └── k8s-relay-rollout.yaml │ │ │ └── robco-navtest/ │ │ │ └── config.sh │ │ ├── integration_test.sh │ │ ├── integration_test_cloudbuild.yaml │ │ ├── integration_test_image_builder.sh │ │ ├── presubmit.sh │ │ └── release_binary.sh │ ├── dependabot.yml │ └── workflows/ │ ├── check-bazel.yml │ ├── postsubmit.yml │ ├── presubmit.yml │ └── release.yml ├── .gitignore ├── .pep8 ├── BUILD.bazel ├── CONTRIBUTING.md ├── LICENSE ├── METADATA ├── MODULE.bazel ├── README.md ├── bazel/ │ ├── BUILD.bazel │ ├── BUILD.sysroot │ ├── app.bzl │ ├── app_chart.bzl │ ├── build_rules/ │ │ ├── app_chart/ │ │ │ ├── BUILD.bazel │ │ │ ├── Chart.yaml.template │ │ │ ├── cache_gcr_credentials.bzl │ │ │ ├── cache_gcr_credentials.sh.tpl │ │ │ ├── push_all.bzl │ │ │ ├── push_all.sh.tpl │ │ │ ├── run_parallel.bzl │ │ │ ├── run_parallel.sh.tpl │ │ │ ├── values-cloud.yaml │ │ │ └── values-robot.yaml │ │ ├── copy.bzl │ │ ├── helm_chart.bzl │ │ └── helm_template.bzl │ ├── container_push.bzl │ └── debug_repository.bzl ├── config.sh.tmpl ├── current_versions.txt ├── deploy.sh ├── docs/ │ ├── .gitignore │ ├── _config.yml │ ├── concepts/ │ │ ├── app-management.md │ │ ├── config.md │ │ ├── device_identity.md │ │ └── federation.md │ ├── developers/ │ │ └── debug-auth.md │ ├── how-to/ │ │ ├── connecting-robot.md │ │ ├── creating-declarative-api.md │ │ ├── deploy-from-sources.md │ │ ├── deploying-grpc-service.md │ │ ├── deploying-service.md │ │ ├── examples/ │ │ │ ├── charge-service/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── charge-action.yaml │ │ │ │ ├── charge-controller.yaml │ │ │ │ ├── charge-crd.yaml │ │ │ │ └── server.py │ │ │ ├── greeter-service/ │ │ │ │ ├── Makefile │ │ │ │ ├── client/ │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── client.cc │ │ │ │ ├── deploy.sh │ │ │ │ ├── greeter-server.yaml.tmpl │ │ │ │ ├── proto/ │ │ │ │ │ └── helloworld.proto │ │ │ │ └── server/ │ │ │ │ ├── Dockerfile │ │ │ │ └── server.cc │ │ │ └── hello-service/ │ │ │ ├── client/ │ │ │ │ ├── Dockerfile │ │ │ │ └── client.py │ │ │ └── server/ │ │ │ ├── Dockerfile │ │ │ ├── hello-server.yaml │ │ │ └── server.py │ │ ├── running-ros-node.md │ │ ├── setting-up-oauth.md │ │ └── using-cloud-storage.md │ ├── index.md │ ├── overview.md │ └── quickstart.md ├── new_versions.txt ├── non_module_deps.bzl ├── nvchecker.toml ├── scripts/ │ ├── BUILD.bazel │ ├── backup_robots.sh │ ├── check-images.sh │ ├── common.sh │ ├── config.sh │ ├── include-config.sh │ ├── migrate.sh │ ├── pre-commit │ ├── robot-sim.sh │ └── set-config.sh ├── src/ │ ├── .gitignore │ ├── BUILD.bazel │ ├── README.md │ ├── app_charts/ │ │ ├── BUILD.bazel │ │ ├── README.md │ │ ├── akri/ │ │ │ ├── BUILD.bazel │ │ │ ├── akri-robot.values.yaml │ │ │ ├── robot/ │ │ │ │ └── akri.yaml │ │ │ └── values-robot.yaml │ │ ├── base/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── app_management_test.sh │ │ │ ├── cert-manager-cloud.values.yaml │ │ │ ├── cert-manager-google-cas-issuer-cloud.values.yaml │ │ │ ├── cert-manager-robot.values.yaml │ │ │ ├── cloud/ │ │ │ │ ├── app-management-policy.yaml │ │ │ │ ├── app-management.yaml │ │ │ │ ├── apps-crd.yaml │ │ │ │ ├── cert-ingress.yaml │ │ │ │ ├── cert-manager-certificates.yaml │ │ │ │ ├── cert-manager-google-cas-issuer.yaml │ │ │ │ ├── cert-manager-issuers.yaml │ │ │ │ ├── cert-manager.yaml │ │ │ │ ├── cr-syncer-auth-webhook.yaml │ │ │ │ ├── cr-syncer-policy.yaml │ │ │ │ ├── domain-redirect.yaml │ │ │ │ ├── fluentd-metrics.yaml │ │ │ │ ├── kubernetes-api.yaml │ │ │ │ ├── namespace.yaml │ │ │ │ ├── nginx-ingress-controller-policy.yaml │ │ │ │ ├── nginx-ingress-controller.yaml │ │ │ │ ├── oauth2-proxy.yaml │ │ │ │ ├── registry-crd.yaml │ │ │ │ ├── registry-policy.yaml │ │ │ │ ├── relay-dashboards.yaml │ │ │ │ ├── token-vendor-app-fwd.yaml │ │ │ │ └── token-vendor-rollout.yaml │ │ │ ├── fluent-bit-helm.sh │ │ │ ├── fluent-bit-values.yaml │ │ │ ├── relay-dashboard.json │ │ │ ├── robot/ │ │ │ │ ├── app-management.yaml │ │ │ │ ├── cert-manager-certificates.yaml │ │ │ │ ├── cert-manager-issuers.yaml │ │ │ │ ├── cert-manager.yaml │ │ │ │ ├── cr-syncer.yaml │ │ │ │ ├── fluent-bit.yaml │ │ │ │ ├── fluentd-gcp-addon.yaml │ │ │ │ ├── fluentd-metrics.yaml │ │ │ │ ├── gcr-credential-refresher.yaml │ │ │ │ └── metadata-server.yaml │ │ │ ├── values-cloud.yaml │ │ │ └── values-robot.yaml │ │ ├── k8s-relay/ │ │ │ ├── BUILD.bazel │ │ │ ├── cloud/ │ │ │ │ ├── ingress.yaml │ │ │ │ ├── kubernetes-relay-server.yaml │ │ │ │ ├── service-monitor.yaml │ │ │ │ └── service.yaml │ │ │ ├── robot/ │ │ │ │ └── kubernetes-relay-client.yaml │ │ │ ├── values-cloud.yaml │ │ │ └── values-robot.yaml │ │ ├── mission-crd/ │ │ │ ├── BUILD.bazel │ │ │ ├── mission_crd.yaml │ │ │ └── values.yaml │ │ ├── platform-apps/ │ │ │ ├── BUILD.bazel │ │ │ └── values.yaml │ │ ├── prometheus/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── cloud/ │ │ │ │ ├── app.yaml │ │ │ │ ├── base-alerts.yaml │ │ │ │ ├── federation-service-monitor.yaml │ │ │ │ ├── grafana-ingress.yaml │ │ │ │ ├── prometheus-ingress.yaml │ │ │ │ ├── prometheus-operator.yaml │ │ │ │ ├── prometheus-relay.yaml │ │ │ │ └── storage-class.yaml │ │ │ ├── prometheus-cloud.values.yaml │ │ │ ├── prometheus-robot.values.yaml │ │ │ ├── robot/ │ │ │ │ ├── hw-exporter.yaml │ │ │ │ ├── prometheus-adapter.yaml │ │ │ │ ├── prometheus-operator.yaml │ │ │ │ ├── prometheus-relay-client.yaml │ │ │ │ └── smartctl-exporter.yaml │ │ │ ├── update_prometheus_adapter.sh │ │ │ └── values-cloud.yaml │ │ └── token-vendor/ │ │ ├── BUILD.bazel │ │ ├── cloud/ │ │ │ ├── dashboard.yaml │ │ │ ├── ingress.yaml │ │ │ ├── service-monitor.yaml │ │ │ ├── service.yaml │ │ │ ├── token-vendor-policy.yaml │ │ │ └── token-vendor.yaml │ │ └── dashboard.json │ ├── bootstrap/ │ │ ├── cloud/ │ │ │ ├── BUILD.bazel │ │ │ ├── INSTALL_FROM_BINARY │ │ │ ├── run-install.sh │ │ │ └── terraform/ │ │ │ ├── .gitignore │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── address.tf │ │ │ ├── certificate-authority.tf │ │ │ ├── cluster.tf │ │ │ ├── dns.tf │ │ │ ├── endpoints.tf │ │ │ ├── gcs.tf │ │ │ ├── input.tf │ │ │ ├── logging.tf │ │ │ ├── multi-cluster-ingress.tf │ │ │ ├── output.tf │ │ │ ├── project.tf │ │ │ ├── provider.tf │ │ │ ├── registry.tf │ │ │ ├── service-account.tf │ │ │ ├── versions.tf │ │ │ ├── workload-identity.tf │ │ │ └── www.yaml │ │ └── robot/ │ │ ├── BUILD.bazel │ │ └── setup_robot.sh │ ├── go/ │ │ ├── cmd/ │ │ │ ├── app-rollout-controller/ │ │ │ │ ├── BUILD.bazel │ │ │ │ └── main.go │ │ │ ├── chart-assignment-controller/ │ │ │ │ ├── BUILD.bazel │ │ │ │ └── main.go │ │ │ ├── cr-syncer/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── health.go │ │ │ │ ├── health_test.go │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ ├── syncer.go │ │ │ │ └── syncer_test.go │ │ │ ├── cr-syncer-auth-webhook/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── main.go │ │ │ │ ├── request.go │ │ │ │ └── request_test.go │ │ │ ├── gcr-credential-refresher/ │ │ │ │ ├── BUILD.bazel │ │ │ │ └── main.go │ │ │ ├── http-relay-client/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── client/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── client.go │ │ │ │ │ └── client_test.go │ │ │ │ └── main.go │ │ │ ├── http-relay-server/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── README.md │ │ │ │ ├── main.go │ │ │ │ └── server/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── broker.go │ │ │ │ ├── broker_test.go │ │ │ │ ├── server.go │ │ │ │ └── server_test.go │ │ │ ├── hw-exporter/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── metadata-server/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── coredns.go │ │ │ │ ├── coredns_test.go │ │ │ │ ├── main.go │ │ │ │ ├── main_test.go │ │ │ │ ├── metadata.go │ │ │ │ ├── metadata_test.go │ │ │ │ └── nftables.go │ │ │ ├── setup-dev/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── main.go │ │ │ │ └── setup-dev.md │ │ │ ├── setup-robot/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── main.go │ │ │ │ └── main_test.go │ │ │ ├── synk/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── README.md │ │ │ │ └── synk.go │ │ │ └── token-vendor/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── api/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── api.go │ │ │ │ └── v1/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── testdata/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── cloudiot/ │ │ │ │ │ │ ├── describe_device.json │ │ │ │ │ │ └── describe_device_expired_key.json │ │ │ │ │ ├── rsa_cert.pem │ │ │ │ │ └── rsa_private.pem │ │ │ │ ├── v1.go │ │ │ │ └── v1_test.go │ │ │ ├── app/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── tokenvendor.go │ │ │ │ └── tokenvendor_test.go │ │ │ ├── main.go │ │ │ ├── oauth/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── cache.go │ │ │ │ ├── cache_test.go │ │ │ │ ├── jwt/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── jwt.go │ │ │ │ │ └── jwt_test.go │ │ │ │ └── verifier.go │ │ │ ├── repository/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── k8s/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── k8s.go │ │ │ │ │ └── k8s_test.go │ │ │ │ ├── memory/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── memory.go │ │ │ │ │ └── memory_test.go │ │ │ │ └── repository.go │ │ │ ├── testdata/ │ │ │ │ ├── describe_device_a.json │ │ │ │ ├── describe_device_b.json │ │ │ │ ├── describe_device_b_blocked.json │ │ │ │ └── list_devices.json │ │ │ └── tokensource/ │ │ │ ├── BUILD.bazel │ │ │ ├── gcp.go │ │ │ └── gcp_test.go │ │ ├── generate.sh │ │ ├── pkg/ │ │ │ ├── apis/ │ │ │ │ ├── apps/ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── registry/ │ │ │ │ └── v1alpha1/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── doc.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── client/ │ │ │ │ ├── informers/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── apps/ │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── interface.go │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── app.go │ │ │ │ │ │ ├── approllout.go │ │ │ │ │ │ ├── chartassignment.go │ │ │ │ │ │ ├── interface.go │ │ │ │ │ │ └── resourceset.go │ │ │ │ │ ├── factory.go │ │ │ │ │ ├── generic.go │ │ │ │ │ ├── internalinterfaces/ │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ └── factory_interfaces.go │ │ │ │ │ └── registry/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── interface.go │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── interface.go │ │ │ │ │ └── robot.go │ │ │ │ ├── listers/ │ │ │ │ │ ├── apps/ │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── app.go │ │ │ │ │ │ ├── approllout.go │ │ │ │ │ │ ├── chartassignment.go │ │ │ │ │ │ ├── expansion_generated.go │ │ │ │ │ │ └── resourceset.go │ │ │ │ │ └── registry/ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── expansion_generated.go │ │ │ │ │ └── robot.go │ │ │ │ └── versioned/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── clientset.go │ │ │ │ ├── doc.go │ │ │ │ ├── fake/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── clientset_generated.go │ │ │ │ │ ├── doc.go │ │ │ │ │ └── register.go │ │ │ │ ├── scheme/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── doc.go │ │ │ │ │ └── register.go │ │ │ │ └── typed/ │ │ │ │ ├── apps/ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── app.go │ │ │ │ │ ├── approllout.go │ │ │ │ │ ├── apps_client.go │ │ │ │ │ ├── chartassignment.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── fake/ │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── fake_app.go │ │ │ │ │ │ ├── fake_approllout.go │ │ │ │ │ │ ├── fake_apps_client.go │ │ │ │ │ │ ├── fake_chartassignment.go │ │ │ │ │ │ └── fake_resourceset.go │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ └── resourceset.go │ │ │ │ └── registry/ │ │ │ │ └── v1alpha1/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── doc.go │ │ │ │ ├── fake/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── fake_registry_client.go │ │ │ │ │ └── fake_robot.go │ │ │ │ ├── generated_expansion.go │ │ │ │ ├── registry_client.go │ │ │ │ └── robot.go │ │ │ ├── configutil/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── config_reader.go │ │ │ │ └── config_reader_test.go │ │ │ ├── controller/ │ │ │ │ ├── approllout/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── controller.go │ │ │ │ │ └── controller_test.go │ │ │ │ └── chartassignment/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── controller.go │ │ │ │ ├── release.go │ │ │ │ ├── release_test.go │ │ │ │ ├── validator.go │ │ │ │ └── validator_test.go │ │ │ ├── gcr/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── update_gcr_credential_test.go │ │ │ │ └── update_gcr_credentials.go │ │ │ ├── kubetest/ │ │ │ │ ├── BUILD.bazel │ │ │ │ └── kubetest.go │ │ │ ├── kubeutils/ │ │ │ │ ├── BUILD.bazel │ │ │ │ └── kubeutils.go │ │ │ ├── robotauth/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── robotauth.go │ │ │ │ └── robotauth_test.go │ │ │ ├── setup/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── setupcommon.go │ │ │ │ ├── setupcommon_test.go │ │ │ │ └── util/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── factory.go │ │ │ │ └── fake.go │ │ │ └── synk/ │ │ │ ├── BUILD.bazel │ │ │ ├── interface.go │ │ │ ├── sort.go │ │ │ ├── sort_test.go │ │ │ ├── synk.go │ │ │ └── synk_test.go │ │ └── tests/ │ │ ├── BUILD.bazel │ │ ├── apps/ │ │ │ ├── BUILD.bazel │ │ │ ├── apps_test.go │ │ │ └── run.sh │ │ ├── k8s_integration_test.go │ │ ├── k8s_integration_test_auth_helper.go │ │ ├── relay/ │ │ │ ├── BUILD.bazel │ │ │ ├── in_process_relay_test.go │ │ │ └── nok8s_relay_test.go │ │ ├── relay-bench.sh │ │ └── relay_test.sh │ ├── go.mod │ ├── go.sum │ ├── gomod.sh │ └── proto/ │ └── http-relay/ │ ├── BUILD.bazel │ ├── http_over_rpc.proto │ └── unused.go └── third_party/ ├── BUILD ├── BUILD.bazel ├── README.md ├── akri/ │ ├── BUILD.bazel │ ├── akri-0.12.9.tgz │ ├── akri-configuration-crd.yaml │ ├── akri-instance-crd.yaml │ └── update-akri.sh ├── app_crd.BUILD ├── cert-manager/ │ ├── BUILD.bazel │ └── cert-manager-v1.16.3.tgz ├── cert-manager-google-cas-issuer/ │ ├── BUILD.bazel │ └── cert-manager-google-cas-issuer-v0.6.2.tgz ├── fluentd_gcp_addon/ │ ├── BUILD.bazel │ ├── fluentd-gcp-configmap.yaml │ └── fluentd-gcp-ds.yaml ├── helm2/ │ └── BUILD.bazel ├── helm3/ │ └── BUILD.bazel ├── ingress-nginx.BUILD ├── kube-prometheus-stack/ │ ├── 00-crds.yaml │ ├── 01-crds.yaml │ ├── BUILD.bazel │ ├── kube-prometheus-stack-72.9.1.tgz │ └── update_crd.sh ├── kubernetes_proto/ │ ├── meta/ │ │ ├── BUILD.bazel │ │ ├── README.md │ │ └── generated.proto │ ├── runtime/ │ │ ├── BUILD.bazel │ │ └── generated.proto │ └── schema/ │ ├── BUILD.bazel │ └── generated.proto └── terraform.BUILD