README
¶
🤖 Cloud Robotics 🤖
This Cloud Robotics version is our adaption of the open source Google Cloud Robotics platform that provides infrastructure essential to building and running robotics solutions for business automation. Cloud Robotics Core makes managing robot fleets easy for developers, integrators, and operators. It enables:
- packaging and distribution of applications
- secure, bidirectional robot-cloud communication
- easy integration into SAP BTP Kyma infrastructure.
We consider it as a friendly fork of Google Cloud Robotics and try to keep it as close as possible to it. However there are some differences:
- This version does not Google Cloud Platform services
- We introduced multi-tenancy features
- Some components we did not use have been removed
- There are docker builds instead of bazel
- Cluster provisiong is separated from deployment of Cloud Robotics. In fact there is no automated cluster provisioning at the moment.
Documentation
Documentation of the applications and their architecture can be found at: https://sap.github.io/cloud-robotics/
Source Code
Most interesting bits are under src
and charts
:
src/go
: the code that goes into images referenced fromcharts
charts
contains kubernetes resources for the core platform and apps
Deployment
We built and tested Cloud Robotics using Kyma k8s clusters where it naturally runs best. However most of our functions are working using Kubernetes plus Istio only.
We Cloud Robotics our deployment on these Kubernetes infrastructure so far:
- SAP BTP Kyma
- Kyma @ Gardener
- Istio @ Gardener
- Istio @ GCP
For getting started please see the deploy-from-sources how-to.
Setting up and connecting robot clusters
Please see the connecting-robot how-to.
Are you looking for a Cloud Robotics use case?
Try executing SAP EWM warehouse orders on autonmous robots 🤖 with the apps of our EWM Cloud Robotics repository.
Get involved
You are welcome to join forces with us in the quest to ease deploying applications on 🤖! Simply check the Contribution Guidelines.
Directories
¶
Path | Synopsis |
---|---|
src
|
|
go/cmd/app-rollout-controller
Runs the app rollout controller which creates and deletes Kubernetes deployments to bring them into agreement with configuration.
|
Runs the app rollout controller which creates and deletes Kubernetes deployments to bring them into agreement with configuration. |
go/cmd/chart-assignment-controller
Package main defines the entry point for the chart assignment controller service.
|
Package main defines the entry point for the chart assignment controller service. |
go/cmd/cr-syncer
The CR syncer syncs custom resources between a remote Kubernetes cluster and the local Kubernetes cluster.
|
The CR syncer syncs custom resources between a remote Kubernetes cluster and the local Kubernetes cluster. |
go/cmd/http-relay-client
Package main runs a local HTTP relay client.
|
Package main runs a local HTTP relay client. |
go/cmd/http-relay-server
Package main runs a multiplexing HTTP relay server.
|
Package main runs a multiplexing HTTP relay server. |
go/cmd/metadata-server
Package main runs a local http server providing details about the connected cloud project.
|
Package main runs a local http server providing details about the connected cloud project. |
go/pkg/client/versioned
This package has the automatically generated clientset.
|
This package has the automatically generated clientset. |
go/pkg/client/versioned/fake
This package has the automatically generated fake clientset.
|
This package has the automatically generated fake clientset. |
go/pkg/client/versioned/scheme
This package contains the scheme of the automatically generated clientset.
|
This package contains the scheme of the automatically generated clientset. |
go/pkg/client/versioned/typed/apps/v1alpha1
This package has the automatically generated typed clients.
|
This package has the automatically generated typed clients. |
go/pkg/client/versioned/typed/apps/v1alpha1/fake
Package fake has the automatically generated clients.
|
Package fake has the automatically generated clients. |
go/pkg/client/versioned/typed/config/v1alpha1
This package has the automatically generated typed clients.
|
This package has the automatically generated typed clients. |
go/pkg/client/versioned/typed/config/v1alpha1/fake
Package fake has the automatically generated clients.
|
Package fake has the automatically generated clients. |
go/pkg/client/versioned/typed/mission/v1alpha1
This package has the automatically generated typed clients.
|
This package has the automatically generated typed clients. |
go/pkg/client/versioned/typed/mission/v1alpha1/fake
Package fake has the automatically generated clients.
|
Package fake has the automatically generated clients. |
go/pkg/client/versioned/typed/registry/v1alpha1
This package has the automatically generated typed clients.
|
This package has the automatically generated typed clients. |
go/pkg/client/versioned/typed/registry/v1alpha1/fake
Package fake has the automatically generated clients.
|
Package fake has the automatically generated clients. |
go/pkg/grpc2rest
grpc2rest contains methods for converting Kubernetes-style REST to gRPC.
|
grpc2rest contains methods for converting Kubernetes-style REST to gRPC. |
go/pkg/kubetest
Package kubetest provides functionality to create local Kubernetes test clusters and run tests against them.
|
Package kubetest provides functionality to create local Kubernetes test clusters and run tests against them. |
go/pkg/robotauth
The robotauth package contains the class for reading and writing the robot-id.json file.
|
The robotauth package contains the class for reading and writing the robot-id.json file. |
go/pkg/synk
Package synk contains functionality to synchronize a batch of resources with a cluster while correctly handling CRDs and deletions.
|
Package synk contains functionality to synchronize a batch of resources with a cluster while correctly handling CRDs and deletions. |