epinio

command module
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2022 License: Apache-2.0 Imports: 1 Imported by: 0

README

Epinio

Opinionated platform that runs on Kubernetes to take you from Code to URL in one step.

godoc CI AKS-CI AKS-LETSENCRYPT-CI EKS-CI GKE-CI GKE-LETSENCRYPT-CI RKE-CI golangci-lint UI-SCENARIO-1-CHROME UI-SCENARIO-2-FIREFOX

Contents

What problem does Epinio solve?

Epinio makes it easy for developers to iterate on their applications running in Kubernetes. Easy means:

  • No experience with Kubernetes is required
  • No steep learning curve
  • Quick local setup with minimal configuration
  • Deploying to production similar to development

Kubernetes is becoming the de-facto standard for container orchestration. Developers may want to use Kubernetes for all the benefits it provides or may have to do so because that's what their Ops team has chosen. Whatever the case, using Kubernetes is not simple. It has a steep learning curve and doing it right is a full time job. Developers should spend their time working on their applications, not doing operations.

Epinio is adding the needed abstractions and intelligence to allow Developers to use Kubernetes as a PaaS (Platform as a Service).

Documentation

Installation and user documentation is available at our main docs.epinio.io site.

Our developer documentation explains how to build and run Epinio from a source checkout.

Features

  • Security
    • mTLS: Epinio uses linkerd to secure all communication between epinio components inside the kubernetes cluster
    • Basic Authentication to access the API
  • Epinio Clients
    • Web UI
    • Epinio CLI
  • Apps
    • Push code directly without additional tools or steps
    • Basic operation of your application once pushed
    • Cloud Native Buildpacks build and containerize your code for you
  • Configurations
    • CRUD operations of your configuration. A configuration can be a database, SaaS etc. A configuration can be an external component or can be created using epinio configuration
    • Bind configurations to apps

Usage

  • QuickStart - Tutorial on how to create a namespace and push an application.

Buildpacks

Buildpacks convert your application source code into container images in which the buildpack provides the framework, dependencies and runtime support for your app based on it's programming language.

Epinio uses Paketo Buildpacks through kubernetes jobs to convert your source code into container images.

Epinio uses the Paketo's full Builder Image by default.

Using Custom Buildpack - Steps to create and use a custom builder image that includes a buildpack for Python (The paketo full Builder Image doesn't support python apps yet).

Example apps

Reach Us

Contributing

Epinio uses Github Project for tracking issues. You can also find the issues currently being worked on in the BackLog section.

Find more information in the Contribution Guide.

License

Copyright (c) 2020-2021 SUSE, LLC

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
acceptance
helpers/catalog
Package catalog contains objects and resources, which are used by multiple tests
Package catalog contains objects and resources, which are used by multiple tests
helpers/machine
Package machine provides a number of utility functions encapsulating often-used sequences.
Package machine provides a number of utility functions encapsulating often-used sequences.
authtoken
Package authtoken creates JWT tokens to secure the websockets connections
Package authtoken creates JWT tokens to secure the websockets connections
bytes
Package bytes is a helper to convert bytes to a human readable string
Package bytes is a helper to convert bytes to a human readable string
kubernetes/tailer
tailer manages objects which tail the logs of a collection of pods specified by a label selector.
tailer manages objects which tail the logs of a collection of pods specified by a label selector.
randstr
Package randstr provides functions for the generation of random strings.
Package randstr provides functions for the generation of random strings.
routes
Package routes implements registered urls and parameter substitution
Package routes implements registered urls and parameter substitution
tracelog
Package tracelog provides a logger for debugging and tracing This logger will not print anything, unless TRACE_LEVEL is at least 1
Package tracelog provides a logger for debugging and tracing This logger will not print anything, unless TRACE_LEVEL is at least 1
internal
api/v1
Package v1 is the implementation of Epinio's API v1 It has the router and controllers (handler funcs) for the API server.
Package v1 is the implementation of Epinio's API v1 It has the router and controllers (handler funcs) for the API server.
api/v1/application
Application contains the API handlers to manage applications.
Application contains the API handlers to manage applications.
api/v1/configuration
Configuration contains the API handlers to manage configurations.
Configuration contains the API handlers to manage configurations.
api/v1/configurationbinding
Configurationbinding contains the API handlers to manage configuration bindings.
Configurationbinding contains the API handlers to manage configuration bindings.
api/v1/deploy
Package deploy provides the functionality to deploy an application.
Package deploy provides the functionality to deploy an application.
api/v1/env
Env contains the API handlers to manage the application environment
Env contains the API handlers to manage the application environment
api/v1/namespace
Namespace contains the API handlers to manage namespaces.
Namespace contains the API handlers to manage namespaces.
api/v1/response
Package response is used by all actions to write their final result as JSON
Package response is used by all actions to write their final result as JSON
application
Package application collects the structures and functions that deal with application workloads on k8s
Package application collects the structures and functions that deal with application workloads on k8s
auth
Package auth collects structures and functions around the generation and processing of credentials.
Package auth collects structures and functions around the generation and processing of credentials.
cli
Package cli contains all definitions pertaining to the user-visible commands of the epinio client.
Package cli contains all definitions pertaining to the user-visible commands of the epinio client.
cli/admincmd
Package admincmd provides the commands of the admin CLI, which deals with installing and configurations
Package admincmd provides the commands of the admin CLI, which deals with installing and configurations
cli/logprinter
Package logprinter is used to print container log lines in color
Package logprinter is used to print container log lines in color
cli/server
Package server provides the Epinio http server
Package server provides the Epinio http server
cli/server/requestctx
Package requestctx provides access to special fields in the http request's context
Package requestctx provides access to special fields in the http request's context
cli/usercmd
Package usercmd provides Epinio CLI commands for users
Package usercmd provides Epinio CLI commands for users
configurations
Package configurations encapsulates all the functionality around Epinio configurations
Package configurations encapsulates all the functionality around Epinio configurations
domain
Package domain collects structures and functions around the domains the client works with.
Package domain collects structures and functions around the domains the client works with.
duration
Package duration defines the various durations used throughout Epinio, as timeouts, and other.
Package duration defines the various durations used throughout Epinio, as timeouts, and other.
errors
Package errors is a collection of various custom errors returned by Epinio methods.
Package errors is a collection of various custom errors returned by Epinio methods.
helm
Package helm contains the epinio-specific core to the helm client libraries.
Package helm contains the epinio-specific core to the helm client libraries.
names
Package names collects functions encapsulating the rules for constructing a variety of kube resource names
Package names collects functions encapsulating the rules for constructing a variety of kube resource names
namespaces
Package namespaces encapsulates all the functionality around Epinio-controlled namespaces TODO: Consider moving this + the applications + the configurations packages under "models".
Package namespaces encapsulates all the functionality around Epinio-controlled namespaces TODO: Consider moving this + the applications + the configurations packages under "models".
registry
Package registry implements the various functions needed to store and retrieve images from a container registry.
Package registry implements the various functions needed to store and retrieve images from a container registry.
s3manager
Package s3manager implements the various functions needed to store and retrieve files from an S3 API compatible endpoint (AWS S3, Minio, etc)
Package s3manager implements the various functions needed to store and retrieve files from an S3 API compatible endpoint (AWS S3, Minio, etc)
version
Package version contains the variable holding the client's version number.
Package version contains the variable holding the client's version number.
pkg
api/core/v1/client
Package client connects to the Epinio API's endpoints
Package client connects to the Epinio API's endpoints
api/core/v1/models
Package models contains the types (mostly structures) encapsulating the API requests and reponses used by the communication between epinio client and APIserver.
Package models contains the types (mostly structures) encapsulating the API requests and reponses used by the communication between epinio client and APIserver.

Jump to

Keyboard shortcuts

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