epinio

command module
v1.9.0-rc5 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2023 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 Go Report Card CI golangci-lint AKS-CI EKS-CI GKE-CI RKE-CI
RKE2-EC2-CI AKS-LETSENCRYPT-CI GKE-LETSENCRYPT-CI GKE-UPGRADE-CI RKE-UPGRADE-CI

E2E tests:

Rancher-UI-1-Chrome Rancher-UI-1-Firefox Standalone UI Chrome Standalone UI Firefox

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

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

Installation

The basic boilerplate requires a Kubernetes cluster, an Ingress Controller and a Cert Manager as detailed in the documentation. Once this is in place, and leaving out DNS setup, in the most trivial case the main installation boils down to

helm repo add epinio https://epinio.github.io/helm-charts
helm repo update

helm install --namespace epinio --create-namespace epinio epinio/epinio \                                               --set global.domain=mydomain.example.com

For the details glossed over here see the documentation.

Client installation

Installation of the Epinio CLI can be as simple as downloading a binary from the release page, or usage of brew, i.e.

brew install epinio

For the details glossed over here see the documentation.

Quick Start Tutorial
Reach Us
Contributing

Epinio uses Github Project for tracking issues.

Find more information in the Contribution Guide.

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

Features

  • Security
    • TLS secured API server
    • Basic Authentication to access the API
    • or OIDC-based token
  • 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

Example apps

License

Copyright (c) 2020-2023 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/deploy
Package deploy provides the functionality to deploy an application.
Package deploy provides the functionality to deploy an application.
api/v1/docs
Epinio API
Epinio API
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
appchart
Package appchart collects the structures and functions that deal with epinio's app chart CR
Package appchart collects the structures and functions that deal with epinio's app chart CR
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
application/applicationfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
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.
auth/authfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
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
cli/usercmd/usercmdfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
configurations
Package configurations encapsulates all the functionality around Epinio configurations A Configuration is essentially a Secret with some Epinio specific labels.
Package configurations encapsulates all the functionality around Epinio configurations A Configuration is essentially a Secret with some Epinio specific labels.
dex
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)
selfupdater
Package selfupdater is used to replace the current running binary, with a given version.
Package selfupdater is used to replace the current running binary, with a given version.
selfupdater/selfupdaterfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
services/servicesfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
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