api_controller

package
v0.0.0-...-a52e8f6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 30, 2020 License: Apache-2.0 Imports: 0 Imported by: 0

README

API Controller

Overview

The Kyma API Controller is a core component that manages Istio authentication policies and VirtualServices, and allows to expose services using the Kyma Console or API resources. It is implemented according to the Kubernetes Operator principles and operates on api.gateway.kyma-project.io CustomResourceDefinition (CRD) resources.

This Helm chart defines the component's installation.

Prerequisites

You need these tools to work with the API Controller:

Details

This section describes how to run the controller locally, how to build the Docker image for the production environment, how to use the environment variables, and how to test the Kyma API Controller.

Run the component locally

Run Minikube with Istio to use the API Controller locally. Run this command to run the application without building the binary:

go run cmd/controller/main.go
Use environment variables

Use these environment variables to configure the application:

Name Required Default Description Possible values
API_CONTROLLER_LOG_LEVEL No info Show detailed logs in the application. info, debug
DEFAULT_ISSUER Yes None Used to set default issuer in the Policy. any string
DEFAULT_JWKS_URI Yes None Used to set default jwksUri in the Policy. any string
GATEWAY_FQDN Yes None Used to set gateway in the Virtual Service specification. any string
DOMAIN_NAME Yes None Used to set a hostname in the Virtual Service specification if a short version of the hostname is provided. any string
CORS_ALLOW_ORIGIN No "" Used to set the corsPolicy.allowOrigin field in the specification of the Virtual Service. "*" or comma-separated list of origins
CORS_ALLOW_METHODS No "" Used to set the corsPolicy.allowMethods field in the specification of the Virtual Service. comma-separated list of methods
CORS_ALLOW_HEADERS No "" Used to set the corsPolicy.allowHeaders field in the specification of the Virtual Service. "*" or comma-separated list of headers
BLACKLISTED_SERVICES No "" Used to defined a list of services for which the API Controller doesn't create Virtual Services or Policies. Comma-separated list of services and their source Namespace in the {SERVICE_NAME}.{NAMESPACE} format.
Blacklisted services

The API Controller doesn't create a Virtual Service or Authentication Policies for these services:

  • kubernetes.default
  • istio-citadel.istio-system
  • istio-galley.istio-system
  • istio-ingressgateway.istio-system
  • istio-pilot.istio-system
  • istio-policy.istio-system
  • istio-sidecar-injector.istio-system
  • istio-telemetry.istio-system
  • apiserver-proxy.kyma-system
  • apiserver-proxy-ssl.kyma-system
Test

Run all tests:

go test -v ./...

Run all tests with coverage:

go test -coverprofile=coverage_report.out -v ./...

Run unit tests only:

go test -short -v ./...

Run unit tests with coverage:

go test -short -coverprofile=coverage_report.out -v ./...

Run integration tests only:

go test -run Integration -v ./...

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
pkg
apis/authentication.istio.io/v1alpha1
+k8s:deepcopy-gen=package
+k8s:deepcopy-gen=package
apis/gateway.kyma-project.io/v1alpha2
+k8s:deepcopy-gen=package
+k8s:deepcopy-gen=package
apis/networking.istio.io/v1alpha3
+k8s:deepcopy-gen=package
+k8s:deepcopy-gen=package
clients/authentication.istio.io/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
clients/authentication.istio.io/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
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.
clients/authentication.istio.io/clientset/versioned/typed/authentication.istio.io/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
clients/gateway.kyma-project.io/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
clients/gateway.kyma-project.io/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
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.
clients/gateway.kyma-project.io/clientset/versioned/typed/gateway.kyma-project.io/v1alpha2
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
clients/networking.istio.io/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
clients/networking.istio.io/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
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.
clients/networking.istio.io/clientset/versioned/typed/networking.istio.io/v1alpha3
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
controller/authentication/v2
Second version of authentication in Kyma.
Second version of authentication in Kyma.
controller/ingress/v1
First version of ingress support in Kyma.
First version of ingress support in Kyma.
controller/networking/v1
First version of Istio networking in Kyma.
First version of Istio networking in Kyma.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL