epinio

command module
v1.11.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 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 develop their applications running in Kubernetes clusters. Easy means:

  • No experience with Kubernetes is needed
  • No steep learning curve
  • Quick local setup with minimal configuration
  • Deploying to production the same as deploying in development

Kubernetes is the standard for container orchestration. Developers may want to use Kubernetes for its benefits or because their Ops team has chosen it. In either case, working with Kubernetes can be complex depending on the environment. 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 adds the needed abstractions and tools to allow developers to use Kubernetes as a PaaS.

Documentation

Documentation is available at docs.epinio.io.

Installation

Requires a Kubernetes cluster, an Ingress Controller and a Cert Manager as explained in the installation documentation. Once this is in place, and leaving out DNS setup, an installation reduces 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
CLI installation

Installation of the Epinio CLI is by downloading a binary from the release page, or usage of brew, i.e.

brew install epinio

There is further documentation here.

Quick Start Tutorial

Our QuickStart Tutorial works through how to create a namespace and push an application.

Reach Us
Contributing

Epinio uses Github Project for tracking issues.

Find more information in the Contribution Guide.

The developer documentation explains how to build and run Epinio from a git 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 further tools or steps
    • Basic operation of your application once pushed
    • Cloud Native Buildpacks build and containerize your code for you
  • Configurations
    • CRUD operations on 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/cmd/cmdfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
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.
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.
urlcache
Package urlcache maintains a local cache of files for external urls.
Package urlcache maintains a local cache of files for external urls.
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