lib/

directory
v0.0.0-...-0755659 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2019 License: Apache-2.0

README

lib

Lib implements a set of disjointed services that can work in one process or several processes on remote machine based on deployment type.

Every service is organized int the same way:

<name>/            // service interfaces and structs, access control wrappers
   <nameservice>   // actual implementation of the service
   <namehandler>   // HTTP server web handlers
   <nameclient>    // HTTP thin client
   <suite>         // test suite that is used to test client and service using interfaces

for example,

ops
  opsservice
  opsclient
  opshandler
  suite

Here are key services we have:

  • ops - operations service is responsible for creating, deleting and updating sites.
  • pack - responsible for application and low level system packages distribution and updates
  • app - responsible for K8s specific application management once it is in K8s
  • users - manages users and permissions, roles and access control

Other packages that are not services

  • systemservice - utility methods for intergration with systemd
  • httplib - gravity specific HTTP wrappers
  • schema - defines app.yaml schema and manifest
  • storage - abstraction for storage backends, implements SQLite for development. All business logic is in services, storage is dumb
  • virsh - tools for working with virsh
  • portal - is a thin layer that starts (ops, pack, app, users) and teleport services, has no actual logic

Directories

Path Synopsis
app
Package app implements gravity application support for import and configuration and management
Package app implements gravity application support for import and configuration and management
api
resources
+groupName=gravitational.io
+groupName=gravitational.io
suite
package suite contains a backend-independent application service acceptance test suite
package suite contains a backend-independent application service acceptance test suite
autoscale
aws
fs
cloudprovider
aws
gce
package constants contains global constants shared between packages
package constants contains global constants shared between packages
validation/proto
Package proto is a generated protocol buffer package.
Package proto is a generated protocol buffer package.
ops
Site state transitions ----------------------
Site state transitions ----------------------
suite
package suite contains a ops service acceptance test suite that is backend implementation independent, used both for services and clients
package suite contains a ops service acceptance test suite that is backend implementation independent, used both for services and clients
package pack defines packaging format used by gravity
package pack defines packaging format used by gravity
suite
Package suite contains a package service acceptance test suite that is backend implementation independent each storage will use the suite to test itself
Package suite contains a package service acceptance test suite that is backend implementation independent each storage will use the suite to test itself
handler introduces new way to access site API:
handler introduces new way to access site API:
rpc
inprocess
Package inprocess implements in-process network connections and corresponding dialing/listening.
Package inprocess implements in-process network connections and corresponding dialing/listening.
proto
Package proto is a generated protocol buffer package.
Package proto is a generated protocol buffer package.
proxy
Package proxy implements a simple network proxy for tests
Package proxy implements a simple network proxy for tests
This package implements compatibilty layer to bridge previous provider/provisioner mismatch and as such is discouraged for future use.
This package implements compatibilty layer to bridge previous provider/provisioner mismatch and as such is discouraged for future use.
v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
Package storage implements storage backends for objects in portal - Accounts, Sites and others these implementations are supposed to be dumb - no business logic just storage logic should be handled to keep the backend implementations small.
Package storage implements storage backends for objects in portal - Accounts, Sites and others these implementations are supposed to be dumb - no business logic just storage logic should be handled to keep the backend implementations small.
keyval
Package keyval implements Etcd and BoltDB powered storage
Package keyval implements Etcd and BoltDB powered storage
suite
package suite contains a storage acceptance test suite that is backend implementation independent each storage will use the suite to test itself
package suite contains a storage acceptance test suite that is backend implementation independent each storage will use the suite to test itself
terraform
suite
package credssuite contains a storage acceptance test suite that is service implementation independent
package credssuite contains a storage acceptance test suite that is service implementation independent
Package webapi implements web proxy handler that provides various helpers for web UI, so it's OK to put UI specific stuff here
Package webapi implements web proxy handler that provides various helpers for web UI, so it's OK to put UI specific stuff here
ui

Jump to

Keyboard shortcuts

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