Coder Social home page Coder Social logo

theketchio / ketch Goto Github PK

View Code? Open in Web Editor NEW
655.0 655.0 104.0 2.12 MB

Ketch is an application delivery framework that facilitates the deployment and management of applications on Kubernetes using a simple command line interface

License: Apache License 2.0

Dockerfile 0.17% Makefile 0.64% Go 96.01% Shell 2.54% Smarty 0.64%

ketch's People

Contributors

aleksej-paschenko avatar c12o16h1 avatar davisfrench avatar fnovikov avatar ghkadim avatar itsksaurabh avatar kavinaravind avatar koncar avatar murphybytes avatar parkerduckworth avatar ravilach avatar saiyam1814 avatar stinkyfingers avatar vivek avatar zchee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ketch's Issues

Test Ketch on Windows

Test Ketch CLI on the Windows OS. If there are any issues running the Ketch CLI on Windows, fix them.

Migrate away from deprecated `heroku/buildpacks:20` CNB builder image

Hi ๐Ÿ‘‹

This project uses Heroku's heroku/buildpacks:20 CNB builder images:
https://github.com/search?q=repo%3Atheketchio%2Fketch+%22heroku%2Fbuildpacks%3A20%22&type=code

We have deprecated this builder image as of heroku/cnb-builder-images#429.

Please migrate to heroku/builder:22 or heroku/builder:20, to continue to receive security updates, and to avoid disruption when the build time deprecation warning is upgraded to an error in the future.

More information on the difference between the various builder images can be seen here:
https://github.com/heroku/cnb-builder-images#heroku-cnb-builder-images

I also see there are references to the even older (and EOL/insecure) heroku/buildpacks:18 - these need to be migrated too:
https://github.com/search?q=repo%3Atheketchio%2Fketch+%22heroku%2Fbuildpacks%3A18%22&type=code

Improve Logging

Add clear log levels. Specifically, add a verbose or debug log level. It would be good to add colored logging as well.

Add different output formats

Similar to kubectl -o json/yaml. For example, enable commands like ketch pool list -o json to pretty print json.

Application not getting deployed via Ketch 0.2.0 with traefik 1.x

I have a cluster running with cert-manager and ketch controller

kubectl get pods -A
NAMESPACE      NAME                                       READY   STATUS      RESTARTS   AGE
kube-system    local-path-provisioner-7c458769fb-tkxk6    1/1     Running     0          163m
kube-system    metrics-server-86cbb8457f-qp958            1/1     Running     0          163m
kube-system    coredns-854c77959c-w985f                   1/1     Running     0          163m
kube-system    helm-install-traefik-5mfzm                 0/1     Completed   0          163m
kube-system    svclb-traefik-h4trp                        2/2     Running     0          163m
kube-system    svclb-traefik-mdrp4                        2/2     Running     0          163m
kube-system    traefik-6f9cbd9bd4-l28rg                   1/1     Running     0          163m
kube-system    tiller-deploy-7f6474cd78-v9d4p             1/1     Running     0          157m
cert-manager   cert-manager-cainjector-597859f766-2l72l   1/1     Running     0          150m
cert-manager   cert-manager-64cdb5b965-k69wk              1/1     Running     0          150m
cert-manager   cert-manager-webhook-7d749b578f-tdg85      1/1     Running     0          150m
ketch-system   ketch-controller-manager-f4db84d99-rhbtp   2/2     Running     0          153m

I create a pool and deploy the app, the pool reflects in the cluster but the app doesn't get deployed

ketch pool add saiyam2  --ingress-service-endpoint 212.2.242.177 --ingress-type traefik
#namespace gets created
ketch-saiyam2     Active   3s

Deploy app

ketch app deploy demo2 -i docker.io/saiyam911/ketch-demo
ketch app info demo2                                    
Application: demo2
Pool: saiyam2
Address: http://demo2.212.2.242.177.shipa.cloud

No environment variables.

DEPLOYMENT VERSION    IMAGE                             PROCESS NAME    WEIGHT    STATE      CMD
1                     docker.io/saiyam911/ketch-demo    web             100%      created    /entrypoint.sh python name.py

But nothing is there in the namespace

kubectl get all -n ketch-saiyam2
No resources found in ketch-saiyam2 namespace.

Error from controller

E0223 15:32:09.019741       1 event.go:260] Server rejected event '&v1.Event{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"demo4.16666a314dafd6ff", GenerateName:"", Namespace:"default", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, InvolvedObject:v1.ObjectReference{Kind:"App", Namespace:"", Name:"demo4", UID:"9b420d79-c582-4566-bf33-f9aec619c269", APIVersion:"theketch.io/v1beta1", ResourceVersion:"23792", FieldPath:""}, Reason:"app demo4 1 reconcile", Message:"failed to update helm chart: unable to recognize \"\": no matches for kind \"IngressRoute\" in version \"traefik.containo.us/v1alpha1\"", Source:v1.EventSource{Component:"App", Host:""}, FirstTimestamp:v1.Time{Time:time.Time{wall:0xc00565d11ab72eff, ext:9333954757918, loc:(*time.Location)(0x28ad740)}}, LastTimestamp:v1.Time{Time:time.Time{wall:0xc00565de40dd1840, ext:9386521034873, loc:(*time.Location)(0x28ad740)}}, Count:12, Type:"Warning", EventTime:v1.MicroTime{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, Series:(*v1.EventSeries)(nil), Action:"", Related:(*v1.ObjectReference)(nil), ReportingController:"", ReportingInstance:""}': 'events "demo4.16666a314dafd6ff" is forbidden: User "system:serviceaccount:ketch-system:default" cannot patch resource "events" in API group "" in the namespace "default"' (will not retry!)
2021-02-23T15:32:09.028Z	ERROR	controller	Reconciler error	{"reconcilerGroup": "theketch.io", "reconcilerKind": "App", "controller": "app", "name": "demo4", "namespace": "", "error": "failed to update helm chart: unable to recognize \"\": no matches for kind \"IngressRoute\" in version \"traefik.containo.us/v1alpha1\""}

Add Acceptance / Integration Tests

Add integration tests that will run tests running the Ketch CLI against Ketch installed on a k8s cluster. These should be automated so that they will run as part of CI.

Ketch app is create even if pool does not exist

ketch pool list
NAME      STATUS     NAMESPACE       INGRESS TYPE    INGRESS CLASS NAME    CLUSTER ISSUER    APPS
saiyam    Created    ketch-saiyam    traefik                                                 0
ketch app list
NAME    POOL      UNITS    ADDRESSES    DESCRIPTION
demo    siayam    0                     

I mistakenly gave a wrong pool name while creating the app but the app still got created

Embed Go Templates in Ketch Binaries

Ketch uses quite a few Go templates that are declared in source files. It would be nice to update Ketch to use Go 1.16, and use the new embed feature to move the templates into separate files in the source tree and embed them in the Ketch/Ketch Controller binaries.

The documentation lists non-existent "unit" command

Problem

I am a new user evaluating ketch. The documentation lists non-existent "unit" command

https://learn.theketch.io/docs/unit-management

Questions

  1. How does one scale a deployment?
  2. Is there a feature to generate a HPA?

Example

$ ketch app list
NAME             FRAMEWORK    STATE        ADDRESSES                                                                                         BUILDER    DESCRIPTION
bulletinboard    dev          3 running    http://bulletinboard.X.X.X.X.shipa.cloud https://bulletinboard.xxx.duckdns.org    

$ ketch unit add 5 --app bulletinboard
Error: unknown command "unit" for "ketch"
Run 'ketch --help' for usage.
2023/01/03 18:35:12 execution failed "unknown command \"unit\" for \"ketch\""

Versions

Running latest version of ketch

$ ketch --version
ketch version 0.7.0

$ kubectl -n ketch-system get deployment ketch-controller-manager -oyaml | yq .spec.template.spec.containers[0].image
shipasoftware/ketch:v0.7.0

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.