README

Go Report Card CII Best Practices Slack Twitter

Overview

Kyma /kee-ma/ is a platform for extending applications with microservices and serverless functions. It provides CLI and UI through which you can connect your application to a Kubernetes cluster and expose the application's API or events securely thanks to the in-built Application Connector. You can then implement the business logic you require by creating microservices or serverless functions, and triggering them to react to particular events or calls to your application's API. To limit the time spent on coding, use the in-built cloud services from the Service Catalog, exposed by Service Brokers from such cloud providers as GCP, Azure, and AWS.

Go to the Kyma project website to learn more about our project, its features, and components.

Installation

Install Kyma locally or on a cluster. See the Installation guides for details.

Usage

Kyma comes with the ready-to-use code snippets that you can use to test the extensions and the core functionality. See the list of existing examples in the examples repository.

Development

Develop on your remote repository forked from the original repository in Go. See the example that uses the console-backend-service project located in the components directory but applies to any Go project. This set of instructions uses the recommended git workflow and the general contribution flow. Read also the CONTRIBUTING.md document that includes the contributing rules specific for this repository.

Follow these steps:

NOTE: The example assumes you have the $GOPATH already set.

  1. Fork the repository in GitHub.

  2. Clone the fork to your $GOPATH workspace. Use this command to create the folder structure and clone the repository under the correct location:

    git clone git@github.com:{GitHubUsername}/kyma.git $GOPATH/src/github.com/kyma-project/kyma
    

    Follow the steps described in the git-workflow.md document to configure your fork.

  3. Install dependencies.

    Go to the main directory of the project in your workspace location and install the required dependencies:

    cd components/console-backend-service
    dep ensure -vendor-only
    
  4. Build the project.

    Every project runs differently. Follow instructions in the main README.md document of the given project to build it.

  5. Create a branch and start to develop.

    Do not forget about creating unit and acceptance tests if needed. For the unit tests, follow the instructions specified in the main README.md document of the given project. For the details concerning the acceptance tests, go to the corresponding directory inside the tests directory. Find the information on how to run changes on the cluster without a Docker image in the Develop a service locally without using Docker document.

  6. Test your changes.

    NOTE: For more details about testing, go to the Testing Kyma document.

Kyma users

Read how these companies use Kyma:

SAP Accenture NETCONOMY ARITHNEA Digital Lights FAIR Arineo

Expand ▾ Collapse ▴

Directories

Path Synopsis
microfrontend-client/pkg/apis/ui/v1alpha1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
microfrontend-client/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
microfrontend-client/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
microfrontend-client/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
microfrontend-client/pkg/client/clientset/versioned/typed/ui/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
microfrontend-client/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
components
+k8s:deepcopy-gen=package
+k8s:deepcopy-gen=package
+k8s:deepcopy-gen=package
api-controller/pkg/clients/authentication.istio.io/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
api-controller/pkg/clients/authentication.istio.io/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
api-controller/pkg/clients/authentication.istio.io/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
api-controller/pkg/clients/gateway.kyma-project.io/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
api-controller/pkg/clients/gateway.kyma-project.io/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
api-controller/pkg/clients/gateway.kyma-project.io/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
api-controller/pkg/clients/networking.istio.io/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
api-controller/pkg/clients/networking.istio.io/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
api-controller/pkg/clients/networking.istio.io/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
api-controller/pkg/controller/authentication/v2
Second version of authentication in Kyma.
Second version of authentication in Kyma.
api-controller/pkg/controller/ingress/v1
First version of ingress support in Kyma.
First version of ingress support in Kyma.
api-controller/pkg/controller/networking/v1
First version of Istio networking in Kyma.
First version of Istio networking in Kyma.
application-broker/pkg/apis/applicationconnector/v1alpha1
+groupName=applicationconnector.kyma-project.io
+groupName=applicationconnector.kyma-project.io
application-broker/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
application-broker/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
application-broker/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
application-broker/pkg/client/clientset/versioned/typed/applicationconnector/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
application-broker/platform/logger
Package logger is responsible for logging.
Package logger is responsible for logging.
application-broker/platform/logger/spy
Package spy provides an implementation of go-sdk.logger that helps test logging.
Package spy provides an implementation of go-sdk.logger that helps test logging.
application-broker/platform/time
Package time provide features which supplements standard time package.
Package time provide features which supplements standard time package.
application-connectivity-certs-setup-job/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
application-operator/pkg/apis/applicationconnector/v1alpha1
+groupName=applicationconnector.kyma-project.io
+groupName=applicationconnector.kyma-project.io
application-operator/pkg/application-controller/mocks
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.
application-operator/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
application-operator/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
application-operator/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
application-operator/pkg/client/clientset/versioned/typed/applicationconnector/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
+k8s:deepcopy-gen=package
application-registry/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
application-registry/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
application-registry/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
application-registry/pkg/client/clientset/versioned/typed/istio/v1alpha2
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
application-registry/pkg/client/clientset/versioned/typed/istio/v1alpha2/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
connection-token-handler/pkg/apis
Package apis contains Kubernetes API groups.
Package apis contains Kubernetes API groups.
connection-token-handler/pkg/apis/applicationconnector
Package applicationconnector contains applicationconnector API versions
Package applicationconnector contains applicationconnector API versions
connection-token-handler/pkg/apis/applicationconnector/v1alpha1
Package v1alpha1 contains API Schema definitions for the applicationconnector v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kyma-project/kyma/components/connection-token-handler/pkg/apis/applicationconnector +k8s:defaulter-gen=TypeMeta +groupName=applicationconnector.kyma-project.io Package v1alpha1 contains API Schema definitions for the applicationconnector v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kyma-project/kyma/components/connection-token-handler/pkg/apis/applicationconnector +k8s:defaulter-gen=TypeMeta +groupName=applicationconnector.kyma-project.io
Package v1alpha1 contains API Schema definitions for the applicationconnector v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kyma-project/kyma/components/connection-token-handler/pkg/apis/applicationconnector +k8s:defaulter-gen=TypeMeta +groupName=applicationconnector.kyma-project.io Package v1alpha1 contains API Schema definitions for the applicationconnector v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kyma-project/kyma/components/connection-token-handler/pkg/apis/applicationconnector +k8s:defaulter-gen=TypeMeta +groupName=applicationconnector.kyma-project.io
connection-token-handler/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
connection-token-handler/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
connection-token-handler/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
connection-token-handler/pkg/client/clientset/versioned/typed/applicationconnector/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
connectivity-certs-controller/pkg/apis
Package apis contains Kubernetes API groups.
Package apis contains Kubernetes API groups.
connectivity-certs-controller/pkg/apis/applicationconnector/v1alpha1
+groupName=applicationconnector.kyma-project.io
+groupName=applicationconnector.kyma-project.io
connectivity-certs-controller/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
connectivity-certs-controller/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
connectivity-certs-controller/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
console-backend-service/pkg/apis/ui/v1alpha1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
console-backend-service/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
console-backend-service/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
console-backend-service/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
console-backend-service/pkg/client/clientset/versioned/typed/ui/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
console-backend-service/pkg/tracing
Base on https://github.com/99designs/gqlgen-contrib/blob/master/gqlopentracing/tracer.go, contains the following modifications: - shortens the name of the span created in StartOperationExecution method - full graphQL query is stored in graphQL.query span tag
Base on https://github.com/99designs/gqlgen-contrib/blob/master/gqlopentracing/tracer.go, contains the following modifications: - shortens the name of the span created in StartOperationExecution method - full graphQL query is stored in graphQL.query span tag
event-sources/apis/sources/v1alpha1
Package v1alpha1 contains the definition of custom API objects.
Package v1alpha1 contains the definition of custom API objects.
event-sources/client/generated/clientset/internalclientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
event-sources/client/generated/clientset/internalclientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
event-sources/client/generated/clientset/internalclientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
event-sources/client/generated/clientset/internalclientset/typed/sources/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
event-sources/reconciler/errors
Package errors contains custom error types and error utilities for reconcilers.
Package errors contains custom error types and error utilities for reconcilers.
event-sources/reconciler/httpsource
Package httpsource implements a controller for the HTTPSource custom resource.
Package httpsource implements a controller for the HTTPSource custom resource.
event-sources/reconciler/object
Package object contains utilities for creating and comparing API objects.
Package object contains utilities for creating and comparing API objects.
idppreset/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
idppreset/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
idppreset/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
idppreset/pkg/client/clientset/versioned/typed/authentication/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
idppreset/pkg/client/clientset/versioned/typed/authentication/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
Package v1alpha1 .
kyma-operator/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
kyma-operator/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
kyma-operator/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
kyma-operator/pkg/client/clientset/versioned/typed/installer/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
kyma-operator/pkg/client/clientset/versioned/typed/installer/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
kyma-operator/pkg/steps
Package steps contains implementation for all installation steps.
Package steps contains implementation for all installation steps.
service-binding-usage-controller/pkg/apis/servicecatalog/v1alpha1
+groupName=servicecatalog.kyma-project.io
+groupName=servicecatalog.kyma-project.io
service-binding-usage-controller/pkg/apis/settings
Package settings contains settings API versions This is base on the types defined in this repository https://github.com/jpeeler/podpreset-crd/tree/f726860d9e545790c6487291af6f77de8f3b5812/pkg/apis/settings We need to define it here to be able to build the client.
Package settings contains settings API versions This is base on the types defined in this repository https://github.com/jpeeler/podpreset-crd/tree/f726860d9e545790c6487291af6f77de8f3b5812/pkg/apis/settings We need to define it here to be able to build the client.
service-binding-usage-controller/pkg/apis/settings/v1alpha1
Package v1alpha1 contains API Schema definitions for the settings v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/jpeeler/podpreset-crd/pkg/apis/settings +k8s:defaulter-gen=TypeMeta +groupName=settings.svcat.k8s.io
Package v1alpha1 contains API Schema definitions for the settings v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/jpeeler/podpreset-crd/pkg/apis/settings +k8s:defaulter-gen=TypeMeta +groupName=settings.svcat.k8s.io
service-binding-usage-controller/pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
service-binding-usage-controller/pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
service-binding-usage-controller/pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
service-binding-usage-controller/pkg/client/clientset/versioned/typed/servicecatalog/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
service-binding-usage-controller/pkg/client/clientset/versioned/typed/settings/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
tests
compass-runtime-agent/test/testkit/secrets
Package secrets contains components for accessing/modifying client secrets
Package secrets contains components for accessing/modifying client secrets
end-to-end/upgrade/pkg/injector
Copied from: https://github.com/kyma-project/kyma/tree/master/tests/console-backend-service/pkg/injector because right now it cannot be vendored because controller-runtime and kubernetes version does not match we need to wait until the Helm Broker and CBS will we both at the same k8s and controller-runtime version
Copied from: https://github.com/kyma-project/kyma/tree/master/tests/console-backend-service/pkg/injector because right now it cannot be vendored because controller-runtime and kubernetes version does not match we need to wait until the Helm Broker and CBS will we both at the same k8s and controller-runtime version
tools