diego-release

module
v2.50.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Apr 29, 2021 License: Apache-2.0

README

Cloud Foundry Diego (BOSH release) slack.cloudfoundry.org


This repository is a BOSH release for deploying Diego and associated tasks for testing a Diego deployment. Diego is the new container runtime system for Cloud Foundry, replacing the DEAs and Health Manager.

This release depends on external services such as a relational database (either MySQL or Postgres) for data storage and Consul or BOSH DNS for inter-component service discovery. It also integrates with NATS to register routes to applications and Loggregator to emit application logs and Diego component metrics. In practice, these dependencies typically come from cf-deployment.

The Diego Design Notes present an overview of Diego, and links to the various Diego components.

Table of Contents

  1. Diego Operator Resources
    1. Deploying Diego-Backed Cloud Foundry
    2. Deployment Examples
    3. Deployment Requirements and Constraints
    4. Configuration at Scale
    5. Security Configuration
    6. Data Store Configuration
    7. Component Coordination
    8. Monitoring and Inspection
  2. CF App Developer Resources
  3. Diego Contributor Resources

Diego Operator Resources

Deploying Diego-Backed Cloud Foundry

Diego is typically deployed as part of a Cloud Foundry Application Runtime deployment to serve as its container runtime. The cf-deployment repository contains the latest recommended way to use BOSH to deploy a Cloud Foundry cluster to infrastructure platforms such as AWS, GCP, and Azure.

  • Release Compatibility illustrates how to select versions of CF and other BOSH releases to deploy alongside Diego.
Deployment Examples
Deploying to BOSH-Lite
  • Create a BOSH-Lite VM using either the v2 BOSH CLI or bosh-bootloader. Note that to create a BOSH-Lite VM in your local VirtualBox, you must use the BOSH CLI.
  • Follow the instructions in CF-Deployment to deploy CF to the BOSH-Lite VM.
Deployment Requirements and Constraints
  • Required Dependency Versions details the minimum versions of the BOSH director, stemcell, and dependency releases required to deploy Diego correctly.
  • Deployment Constraints describes the dependencies that must be deployed before deploying the Diego cluster and restrictions on Diego instance update order and rates to ensure correct cluster operation.
  • Deprecations lists deprecated BOSH job properties, component metrics, and endpoints and fields for Diego component APIs.
Configuration at Scale
Security Configuration
  • TLS Configuration describes how to generate TLS certificates for secure communication amongst the Diego and greater CF components.
  • Enabling Instance Identity explains how to enable the Diego cell reps to provide per-instance identity credentials.
  • Envoy Proxy Configuration explains how to enable the per-instance Envoy proxy to support improved route integrity, as well as some guidelines for operators to account for its additional memory overhead.
Data Store Configuration
Component Coordination
  • Migrating from Consul to SQL Locks explains how to migrate the BBS and auctioneer from coordinating around a lock in Consul to coordinating around one stored in the Diego relational database.
Monitoring and Inspection
  • Diego Metrics lists the various component metrics that Diego emits through the Loggregator system.
  • Container Metrics lists the various container metrics that Diego emits through the Loggregator system.
  • cfdot Setup shows how to set up the cfdot CF Diego Operator Tool CLI for use in inspecting and interacting with a Diego deployment.
  • Logging format shows how to configure the logging format for Diego components.

CF App Developer Resources

  • Migrating to Diego describes how developers can switch from the DEAs to Diego and details various operational differences between the DEAs and Diego.
  • The Docker Support Notes describe how Diego runs Docker-image-based apps in Cloud Foundry.

Diego Contributor Resources

  • The Contribution Guidelines describes the developer workflow for making changes to Diego.
  • The CF Runtime Diego Pivotal Tracker project shows active areas of work for the Diego team in the backlog section.
  • The Diego Dev Notes provide a detailed explanation of how the Diego components and internal state machine interact, as well as information on development workstation setup.
  • The BBS Benchmarks provides information about results from the BBS benchmark tests that run in the Diego team's continuous integration testing pipeline.

Directories

Path Synopsis
src
github.com/docker/docker/api/errdefs
Package errdefs defines a set of error interfaces that packages should use for communicating classes of errors.
Package errdefs defines a set of error interfaces that packages should use for communicating classes of errors.
github.com/docker/docker/api/types
Package types is used for API stability in the types and response to the consumers of the API stats endpoint.
Package types is used for API stability in the types and response to the consumers of the API stats endpoint.
github.com/docker/docker/api/types/backend
Package backend includes types to send information to server backends.
Package backend includes types to send information to server backends.
github.com/docker/docker/api/types/filters
Package filters provides tools for encoding a mapping of keys to a set of multiple values.
Package filters provides tools for encoding a mapping of keys to a set of multiple values.
github.com/docker/docker/api/types/plugins/logdriver
Package logdriver is a generated protocol buffer package.
Package logdriver is a generated protocol buffer package.
github.com/docker/docker/api/types/swarm/runtime
Package runtime is a generated protocol buffer package.
Package runtime is a generated protocol buffer package.
github.com/docker/docker/api/types/versions/v1p19
Package v1p19 provides specific API types for the API version 1, patch 19.
Package v1p19 provides specific API types for the API version 1, patch 19.
github.com/docker/docker/api/types/versions/v1p20
Package v1p20 provides specific API types for the API version 1, patch 20.
Package v1p20 provides specific API types for the API version 1, patch 20.
github.com/docker/docker/builder
Package builder defines interfaces for any Docker builder to implement.
Package builder defines interfaces for any Docker builder to implement.
github.com/docker/docker/builder/dockerfile
Package dockerfile is the evaluation step in the Dockerfile parse/evaluate pipeline.
Package dockerfile is the evaluation step in the Dockerfile parse/evaluate pipeline.
github.com/docker/docker/builder/dockerfile/command
Package command contains the set of Dockerfile commands.
Package command contains the set of Dockerfile commands.
github.com/docker/docker/builder/dockerfile/parser
Package parser implements a parser and parse tree dumper for Dockerfiles.
Package parser implements a parser and parse tree dumper for Dockerfiles.
github.com/docker/docker/builder/remotecontext
Package remotecontext is a generated protocol buffer package.
Package remotecontext is a generated protocol buffer package.
github.com/docker/docker/client
Package client is a Go client for the Docker Engine API.
Package client is a Go client for the Docker Engine API.
github.com/docker/docker/daemon
Package daemon exposes the functions that occur on the host server that the Docker daemon is running.
Package daemon exposes the functions that occur on the host server that the Docker daemon is running.
github.com/docker/docker/daemon/logger
Package logger defines interfaces that logger drivers implement to log messages.
Package logger defines interfaces that logger drivers implement to log messages.
github.com/docker/docker/daemon/logger/awslogs
Package awslogs provides the logdriver for forwarding container logs to Amazon CloudWatch Logs
Package awslogs provides the logdriver for forwarding container logs to Amazon CloudWatch Logs
github.com/docker/docker/daemon/logger/etwlogs
Package etwlogs provides a log driver for forwarding container logs as ETW events.(ETW stands for Event Tracing for Windows) A client can then create an ETW listener to listen for events that are sent by the ETW provider that we register, using the provider's GUID "a3693192-9ed6-46d2-a981-f8226c8363bd".
Package etwlogs provides a log driver for forwarding container logs as ETW events.(ETW stands for Event Tracing for Windows) A client can then create an ETW listener to listen for events that are sent by the ETW provider that we register, using the provider's GUID "a3693192-9ed6-46d2-a981-f8226c8363bd".
github.com/docker/docker/daemon/logger/fluentd
Package fluentd provides the log driver for forwarding server logs to fluentd endpoints.
Package fluentd provides the log driver for forwarding server logs to fluentd endpoints.
github.com/docker/docker/daemon/logger/gelf
Package gelf provides the log driver for forwarding server logs to endpoints that support the Graylog Extended Log Format.
Package gelf provides the log driver for forwarding server logs to endpoints that support the Graylog Extended Log Format.
github.com/docker/docker/daemon/logger/journald
Package journald provides the log driver for forwarding server logs to endpoints that receive the systemd format.
Package journald provides the log driver for forwarding server logs to endpoints that receive the systemd format.
github.com/docker/docker/daemon/logger/jsonfilelog
Package jsonfilelog provides the default Logger implementation for Docker logging.
Package jsonfilelog provides the default Logger implementation for Docker logging.
github.com/docker/docker/daemon/logger/logentries
Package logentries provides the log driver for forwarding server logs to logentries endpoints.
Package logentries provides the log driver for forwarding server logs to logentries endpoints.
github.com/docker/docker/daemon/logger/splunk
Package splunk provides the log driver for forwarding server logs to Splunk HTTP Event Collector endpoint.
Package splunk provides the log driver for forwarding server logs to Splunk HTTP Event Collector endpoint.
github.com/docker/docker/daemon/logger/syslog
Package syslog provides the logdriver for forwarding server logs to syslog endpoints.
Package syslog provides the logdriver for forwarding server logs to syslog endpoints.
github.com/docker/docker/dockerversion
Package dockerversion is auto-generated at build-time
Package dockerversion is auto-generated at build-time
github.com/docker/docker/integration
Package integration provides integrations tests for Moby (API).
Package integration provides integrations tests for Moby (API).
github.com/docker/docker/integration-cli/checker
Package checker provides Docker specific implementations of the go-check.Checker interface.
Package checker provides Docker specific implementations of the go-check.Checker interface.
github.com/docker/docker/layer
Package layer is package for managing read-only and read-write mounts on the union file system driver.
Package layer is package for managing read-only and read-write mounts on the union file system driver.
github.com/docker/docker/pkg/aaparser
Package aaparser is a convenience package interacting with `apparmor_parser`.
Package aaparser is a convenience package interacting with `apparmor_parser`.
github.com/docker/docker/pkg/filenotify
Package filenotify provides a mechanism for watching file(s) for changes.
Package filenotify provides a mechanism for watching file(s) for changes.
github.com/docker/docker/pkg/locker
Package locker provides a mechanism for creating finer-grained locking to help free up more global locks to handle other tasks.
Package locker provides a mechanism for creating finer-grained locking to help free up more global locks to handle other tasks.
github.com/docker/docker/pkg/parsers
Package parsers provides helper functions to parse and validate different type of string.
Package parsers provides helper functions to parse and validate different type of string.
github.com/docker/docker/pkg/parsers/kernel
Package kernel provides helper function to get, parse and compare kernel versions for different platforms.
Package kernel provides helper function to get, parse and compare kernel versions for different platforms.
github.com/docker/docker/pkg/parsers/operatingsystem
Package operatingsystem provides helper function to get the operating system name for different platforms.
Package operatingsystem provides helper function to get the operating system name for different platforms.
github.com/docker/docker/pkg/pidfile
Package pidfile provides structure and helper functions to create and remove PID file.
Package pidfile provides structure and helper functions to create and remove PID file.
github.com/docker/docker/pkg/platform
Package platform provides helper function to get the runtime architecture for different platforms.
Package platform provides helper function to get the runtime architecture for different platforms.
github.com/docker/docker/pkg/plugins
Package plugins provides structures and helper functions to manage Docker plugins.
Package plugins provides structures and helper functions to manage Docker plugins.
github.com/docker/docker/pkg/pools
Package pools provides a collection of pools which provide various data types with buffers.
Package pools provides a collection of pools which provide various data types with buffers.
github.com/docker/docker/pkg/signal
Package signal provides helper functions for dealing with signals across various operating systems.
Package signal provides helper functions for dealing with signals across various operating systems.
github.com/docker/docker/pkg/streamformatter
Package streamformatter provides helper functions to format a stream.
Package streamformatter provides helper functions to format a stream.
github.com/docker/docker/pkg/stringid
Package stringid provides helper functions for dealing with string identifiers
Package stringid provides helper functions for dealing with string identifiers
github.com/docker/docker/pkg/tailfile
Package tailfile provides helper functions to read the nth lines of any ReadSeeker.
Package tailfile provides helper functions to read the nth lines of any ReadSeeker.
github.com/docker/docker/pkg/tarsum
Package tarsum provides algorithms to perform checksum calculation on filesystem layers.
Package tarsum provides algorithms to perform checksum calculation on filesystem layers.
github.com/docker/docker/pkg/term
Package term provides structures and helper functions to work with terminal (state, sizes).
Package term provides structures and helper functions to work with terminal (state, sizes).
github.com/docker/docker/pkg/truncindex
Package truncindex provides a general 'index tree', used by Docker in order to be able to reference containers by only a few unambiguous characters of their id.
Package truncindex provides a general 'index tree', used by Docker in order to be able to reference containers by only a few unambiguous characters of their id.
github.com/docker/docker/pkg/urlutil
Package urlutil provides helper function to check urls kind.
Package urlutil provides helper function to check urls kind.
github.com/docker/docker/pkg/useragent
Package useragent provides helper functions to pack version information into a single User-Agent header.
Package useragent provides helper functions to pack version information into a single User-Agent header.
github.com/docker/docker/registry
Package registry contains client primitives to interact with a remote Docker registry.
Package registry contains client primitives to interact with a remote Docker registry.
github.com/docker/docker/volume/local
Package local provides the default implementation for volumes.
Package local provides the default implementation for volumes.

Jump to

Keyboard shortcuts

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