devenv

package module
v1.57.0-rc.3 Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2023 License: Apache-2.0 Imports: 0 Imported by: 0

README

devenv

go.dev reference Generated via Bootstrap Coverage Status

Kubernetes Developer Environment Platform

Contributing

Please read the CONTRIBUTING.md document for guidelines on developing and contributing changes.

High-level Overview

System Requirements | Lifecycle | Interacting with Services |

Getting Started

  1. Download the latest release for your platform and install the devenv binary to /usr/local/bin/:
tar xvf devenv_**_**.tar.gz
mv devenv /usr/local/bin/

# Linux/WSL2 optional: allow your user to update the devenv
sudo chown $(id -u):$(id -g) $(command -v devenv)
  1. (macOS only) Ensure the devenv binary is authorized to run.
xattr -c $(command -v devenv)
  1. Follow the instructions for your platform in the detailed system requirements docs
Defining a Box

TODO. See gobox/pkg/box for the spec.

Creating the Developer Environment

To create a developer environment, run:

devenv provision

Next there's a manual step that you'll need to do. You'll need to add a KUBECONFIG environment variable, this can be done by adding the line below to your shellrc (generally ~/.zshrc or ~/.zsh_profile or ~/.bashrc):

NOTE: For Outreach developers this step is already completed by orc.

# Add the dev-environment to our kube config
export KUBECONFIG="$HOME/.kube/config:$HOME/.outreach/kubeconfig.yaml"

You now have a developer environment provisioned!

FAQ

Using different drivers

The devenv supports different kubernetes runtime drivers, below are the instructions for each driver

KinD

This should work out of the box!

storage:
  size: 50Gi

syncer:
  # Don't sync ingresses, our ingress controller will handle this, and get its own IP address
  # so we can address it via /etc/hosts
  extraArgs: ["--disable-sync-resources=ingresses"]

# This allows metrics-server to function properly
rbac:
  clusterRole:
    create: true

Documentation

Overview

Package devenv manages Outreach developer environment

Directories

Path Synopsis
cmd
devenv/apps
Package apps implements a 'devenv apps' command that allows developers to interact with apps in their developer environment.
Package apps implements a 'devenv apps' command that allows developers to interact with apps in their developer environment.
devenv/apps/delete
Package delete implements a 'devenv apps delete' command that allows developers to delete an application in their developer environment.
Package delete implements a 'devenv apps delete' command that allows developers to delete an application in their developer environment.
devenv/apps/deploy
Package deploy implements a 'devenv apps deploy' command that allows developers to deploy an application to the developer environment.
Package deploy implements a 'devenv apps deploy' command that allows developers to deploy an application to the developer environment.
devenv/apps/e2e
Package e2e implements a 'devenv apps e2e' command that allows developers to runs e2e test from source code.
Package e2e implements a 'devenv apps e2e' command that allows developers to runs e2e test from source code.
devenv/apps/list
Package list implements a 'devenv apps list' command that allows developers to list all deployed applications in your devenv.
Package list implements a 'devenv apps list' command that allows developers to list all deployed applications in your devenv.
devenv/apps/run
Package run implements a 'devenv apps run' command that allows developers to runs their applications from source code.
Package run implements a 'devenv apps run' command that allows developers to runs their applications from source code.
devenv/apps/run/stop
Package stop implements a 'devenv apps run stop' command that allows developers to stop the development mode for their application.
Package stop implements a 'devenv apps run stop' command that allows developers to stop the development mode for their application.
devenv/apps/shell
Package shell implements a 'devenv apps shell' command that allows developers to open a shell into running dev container.
Package shell implements a 'devenv apps shell' command that allows developers to open a shell into running dev container.
devenv/apps/update
Package update implements a 'devenv apps update' command that allows developers to interact with the built-in updater.
Package update implements a 'devenv apps update' command that allows developers to interact with the built-in updater.
devenv/auth
Package auth implements a 'devenv auth' command that allows developers to manage devenv auth state.
Package auth implements a 'devenv auth' command that allows developers to manage devenv auth state.
devenv/certs
Package certs implements a subcommand for the devenv named 'certs'.
Package certs implements a subcommand for the devenv named 'certs'.
devenv/certs/certimport
Package certimport implements the 'devenv certs import' command that allows developers to import certificate authorities into the devenv.
Package certimport implements the 'devenv certs import' command that allows developers to import certificate authorities into the devenv.
devenv/certs/delete
Package delete implements the 'devenv certs delete' command that allows developers to delete the certificate authorities that are trusted by the devenv.
Package delete implements the 'devenv certs delete' command that allows developers to delete the certificate authorities that are trusted by the devenv.
devenv/certs/export
Package export implements the 'devenv certs export' command that allows developers to export their devenv certificate authority into an archive.
Package export implements the 'devenv certs export' command that allows developers to export their devenv certificate authority into an archive.
devenv/certs/list
Package list implements the 'devenv certs list' command that allows developers to list the certificate authorities that are trusted by the devenv.
Package list implements the 'devenv certs list' command that allows developers to list the certificate authorities that are trusted by the devenv.
devenv/completion
Package completion implements a 'devenv completion' command that allows developers to generate shell completion.
Package completion implements a 'devenv completion' command that allows developers to generate shell completion.
devenv/context
Package context implements a 'devenv context' command that allows developers to change which devenv they're currently using.
Package context implements a 'devenv context' command that allows developers to change which devenv they're currently using.
devenv/debug
Package debug implements a 'devenv debug' command that allows developers to debug their devenv environment.
Package debug implements a 'devenv debug' command that allows developers to debug their devenv environment.
devenv/deprecated
Package deprecated houses all deprecated commands
Package deprecated houses all deprecated commands
devenv/deprecated/delete-app
Package deleteapp is a deprecated command
Package deleteapp is a deprecated command
devenv/deprecated/deploy-app
Package deployapp is a deprecated command
Package deployapp is a deprecated command
devenv/deprecated/top
Package top is a deprecated command
Package top is a deprecated command
devenv/deprecated/update-app
Package updateapp is a deprecated command
Package updateapp is a deprecated command
devenv/destroy
Package destroy implements a 'devenv destroy' command that allows developers to destroy the running developer environment.
Package destroy implements a 'devenv destroy' command that allows developers to destroy the running developer environment.
devenv/expose
Package expose implements a 'devenv expose' command that allows developers to expose a service to the outside world.
Package expose implements a 'devenv expose' command that allows developers to expose a service to the outside world.
devenv/kubectl
Package kubectl implements a 'devenv kubectl' command that allows developers to run kubectl commands in their developer environment.
Package kubectl implements a 'devenv kubectl' command that allows developers to run kubectl commands in their developer environment.
devenv/local-app
Package localapp implements a 'devenv local-app' command that allows developers to point a Kubernetes Service at a local-application.
Package localapp implements a 'devenv local-app' command that allows developers to point a Kubernetes Service at a local-application.
devenv/provision
Package provision implements a 'devenv provision' command that allows developers to provision a new development environment.
Package provision implements a 'devenv provision' command that allows developers to provision a new development environment.
devenv/prune
Package prune implements a 'devenv prune' command that allows developers to prune unused docker images from a running developer environment.
Package prune implements a 'devenv prune' command that allows developers to prune unused docker images from a running developer environment.
devenv/snapshot
Package snapshot This file is the entrypoint for the snapshot CLI command for devenv.
Package snapshot This file is the entrypoint for the snapshot CLI command for devenv.
devenv/start
Package start implements a 'devenv start' command that allows developers to start their developer environment.
Package start implements a 'devenv start' command that allows developers to start their developer environment.
devenv/status
Package status implements a 'devenv status' command that allows developers to status shows the status of their developer environment.
Package status implements a 'devenv status' command that allows developers to status shows the status of their developer environment.
devenv/stop
Package stop implements a 'devenv stop' command that allows developers to stop your running developer environment.
Package stop implements a 'devenv stop' command that allows developers to stop your running developer environment.
devenv/tunnel
Package tunnel implements a 'devenv tunnel' command that allows developers to tunnel their devenv environment.
Package tunnel implements a 'devenv tunnel' command that allows developers to tunnel their devenv environment.
internal
app
Package app creates new apps for interaction with in a devenv.
Package app creates new apps for interaction with in a devenv.
app/cmds
Package cmds contains logic for interacting with command line and environment variables
Package cmds contains logic for interacting with command line and environment variables
app/config
Package config contains logic for reading and parsing of devenv config
Package config contains logic for reading and parsing of devenv config
app/repository
Package repository contains logic for cloning remote repositories
Package repository contains logic for cloning remote repositories
app/resolvers
Package resolvers contains implementation of version resolver
Package resolvers contains implementation of version resolver
app/resolvers/github
Package github implements the VersionResolver interface using Github as the backing version store.
Package github implements the VersionResolver interface using Github as the backing version store.
app/resolvers/maestro
Package maestro contains a VersionResolver implementation using Maestro, and internal service in use at Outreach, as the source of truth for the latest version of applications.
Package maestro contains a VersionResolver implementation using Maestro, and internal service in use at Outreach, as the source of truth for the latest version of applications.
app/resolvers/maestro/client
Package client contains implementation for maestro client
Package client contains implementation for maestro client
app/resolvers/mock
Package mock implements a VersionResolver implementation for use in testing.
Package mock implements a VersionResolver implementation for use in testing.
app/resolvers/types
Package types contains the different data types used in versionresolver
Package types contains the different data types used in versionresolver
certs
Package certs contains logic for interacting with self-signed certificates and ensuring they are trusted by the operating system in use.
Package certs contains logic for interacting with self-signed certificates and ensuring they are trusted by the operating system in use.
cmdutil
Package cmdutil contains command line utilities.
Package cmdutil contains command line utilities.
config
Package config stores all devenv configuration
Package config stores all devenv configuration
containerruntime
Package containerruntime has container image utilities
Package containerruntime has container image utilities
devenvutil
Package devenvutil contains devenv utilities
Package devenvutil contains devenv utilities
e2e
Package e2e contains the E2E tests for the devenv
Package e2e contains the E2E tests for the devenv
e2e/devenv
Package devenv implements helpers for e2e tests in interacting with a devenv.
Package devenv implements helpers for e2e tests in interacting with a devenv.
kube
Package kube contains helpers for looking at pod logs
Package kube contains helpers for looking at pod logs
kubernetesruntime
Description: This file has the package kubernetesruntime.
Description: This file has the package kubernetesruntime.
kubernetestunnelruntime
Package kubernetestunnelruntime ensures that localizer exists
Package kubernetestunnelruntime ensures that localizer exists
shim
Package shim is used for creating devenv specific command replacements.
Package shim is used for creating devenv specific command replacements.
snapshot
Description: This file contains functions for provisioning from a snapshot.
Description: This file contains functions for provisioning from a snapshot.
store
Package store contains all logic for interacting with store of apps inside of a devenv.
Package store contains all logic for interacting with store of apps inside of a devenv.
vault
Package vault refreshes auth tokens
Package vault refreshes auth tokens
worker
Package worker spins up n goroutine worker
Package worker spins up n goroutine worker
pkg
embed
Package embed extracts embedded files
Package embed extracts embedded files
snapshoter
Package snapshoter has snapshot backend
Package snapshoter has snapshot backend
snapshotstaging
Package snapshotstaging
Package snapshotstaging

Jump to

Keyboard shortcuts

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