lib/

directory
v0.0.0-...-3bfe646 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2023 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
apis
cluster/v1beta1
Package v1beta1 is the v1beta1 version of the API.
Package v1beta1 is the v1beta1 version of the API.
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
package aws implements autoscaling integration for AWS cloud provider
package aws implements autoscaling integration for AWS cloud provider
fs
client
clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
clientset/versioned/typed/cluster/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/versioned/typed/cluster/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
cloudprovider
aws
gce
package constants contains global constants shared between packages
package constants contains global constants shared between packages
docker package is responsible for pushing container data (layers) from the offline storage into the regisitry running on-site
docker package is responsible for pushing container data (layers) from the offline storage into the regisitry running on-site
dispatcher/buffered
package buffered implements an event dispatcher with buffering semantics
package buffered implements an event dispatcher with buffering semantics
dispatcher/direct
package direct implements a synchronous event dispatcher
package direct implements a synchronous event dispatcher
engine/cli
package cli implements command line installer workflow
package cli implements command line installer workflow
engine/interactive
package interactive implements wizard-based installation workflow
package interactive implements wizard-based installation workflow
credentials
Package credentials provides interface for retrieving local user credentials.
Package credentials provides interface for retrieving local user credentials.
network
ipallocator
package ipallocator manages allocation of IP addresses from a network range.
package ipallocator manages allocation of IP addresses from a network range.
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
internal/inprocess
Package inprocess implements in-process network connections and corresponding dialing/listening.
Package inprocess implements in-process network connections and corresponding dialing/listening.
internal/proxy
Package proxy implements a simple network proxy for tests
Package proxy implements a simple network proxy for tests
This package implements compatibility layer to bridge previous provider/provisioner mismatch and as such is discouraged for future use.
This package implements compatibility 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.
allocator
package allocator manages allocation of resources.
package allocator manages allocation of resources.
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
auditlog
package auditlog implements support for manipulating kernel audit system
package auditlog implements support for manipulating kernel audit system
environ
Package environ implements utilities for managing host environment during an operation
Package environ implements utilities for managing host environment during an operation
service
package service implements helpers for working with systemd services
package service implements helpers for working with systemd services
signals
package signals implements support for managing interrupt signals
package signals implements support for managing interrupt signals
This file implements richer support for working with operation phases
This file implements richer support for working with operation phases
internal/builder
Package builder implements richer support for working with operation phases
Package builder implements richer support for working with operation phases
internal/rollingupdate
This file implements a rolling update FSM
This file implements a rolling update FSM
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
cli
fields
Package fields provides methods for making log fields from various objects.
Package fields provides methods for making log fields from various objects.
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