Git Product home page Git Product logo

app-operator's Introduction

App Operator

Kubernetes operator for GRPC or HTTP applications. Simplifies and reduces boilerplate by creating an ingress, service and deployment under the hood for you.

Are you tired of copying around complex Helm configuration for deployments? The app-operator is a Helm chart with best practices for deploying http based services to Kubernetes. This is born out of copying similar configuration around to make helm charts that look quite alike one another.

An added benefit of this approach is removing the dependency on a server side Tiller for applying charts.

STATUS: Experimental.

Example

Create's a deployment resource using the image myrepo:v1 to Kubernetes with a service and a corresponding ingress resource.

apiVersion: deliverybot.dev/v1alpha1
kind: Application
metadata:
  name: example-application
spec:
  app:
    name: example-application
    version: v1
  image:
    repository: myrepo
    tag: v1
  ingress:
    enabled: true
    hosts:
      - host: example.com
        paths: ["/"]

Installation

kubectl apply -k https://github.com/deliverybot/app-operator/deploy/

Spec

Key Type Default Description
affinity object {} Kubernetes affinity resource.
app.name string "nginx" Application name: Can be consistent between tracks. (required)
app.version string "v1" Application version: Unique tag for this release. (required)
env list [] Environment variables for the application.
image.pullPolicy string "IfNotPresent"
image.repository string "nginx" Docker image repository.
image.tag string "latest" Docker image tag.
imagePullSecrets list [] Defines secrets to use for pulling docker images.
ingress.annotations object {} Configures annotations for the ingress.
ingress.enabled bool false Enable ingress resource.
ingress.hosts[0].host string "chart-example.local" Host name for routing traffic.
ingress.hosts[0].paths list ["/"] Array of routable paths.
ingress.tls list [] Kubernetes ingress tls resource.
livenessProbe object {"httpGet":{"path":"/","port":"http"}} Customize the livenessProbe.
migrate.command string "rails db:migrate" Command to run on the migrate pod.
migrate.enabled bool false Run a pod before the application is released to migrate.
nodeSelector object {} Kubernetes node selectors for Deployment resources.
readinessProbe object {"httpGet":{"path":"/","port":"http"}} Customize the readiness probe.
replicaCount int 1 Replica count for deployments.
resources object {} Kubernetes resources for Deployment resources.
secret string nil If defined will pull all secrets from this resource using envFrom.
service.enabled bool true Enable service resource.
service.internalPort int 80 Deployment internal port.
service.port int 80 Kubernetes service port.
service.type string "ClusterIP" Kubernetes service type.
tolerations list [] Kubernetes tolerations for Deployment resources.
workers list [] Deploy background jobs with the same config as the main app.

app-operator's People

Contributors

colinjfw avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.