cloud native application deploy flow

Overview

Triton-io/Triton

License CII Best Practices Contributor Covenant

English | 简体中文

Introduction

Triton provides a cloud-native DeployFlow, which is safe, controllable, and policy-rich.

For more introduction details, see Overview docs

Key Features

  • Canary Deploy

    Triton support Canary deploy strategy and provide a k8s service-based traffic pull-in and pull-out solution.

  • Deploy in batches

    Triton can deploy your application in several batches and you can pause/resume in deploy process.

  • REST && GRPC API

    Triton provides many APIs to make deploy easy, such as Next, Cancel,Pause,Resume,Scale, Gets,Restart etc.

  • Selective pods to scale/restart

    User can scale selective pods or restart these pods.

  • Base on OpenKruise

    Triton use OpenKruise as workloads which have more powerful capabilities

  • ...

Quick Start

For a Kubernetes cluster with its version higher than v1.13, you can simply install Triton with helm v3.1.0+: // TODO

Note that installing this chart directly means it will use the default template values for the triton-manager.

For more details, see installation doc.

Documentation

We provide tutorials for Triton controllers to demonstrate how to use them.

We also provide debug guide for Triton developers to help to debug.

Users

Contributing

You are warmly welcome to hack on Triton. We have prepared a detailed guide CONTRIBUTING.md.

Community

Active communication channels:

  • WeChat Group:

RoadMap

  • Support custom traffic pull-in
  • Provide helm to install DeployFlow
  • REST & GRPC API doc
  • .......

License

Triton is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Comments
  • [BUG] make install failed ,

    [BUG] make install failed ,"make: *** No rule to make target 'bin/controller-gen', needed by 'manifests'. Stop."

    What happened: 1.make install failed make: *** No rule to make target 'bin/controller-gen', needed by 'manifests'. Stop.

    What you expected to happen: make install success

    How to reproduce it (as minimally and precisely as possible): 1.git clone https://github.com/triton-io/triton.git 2.helm install kruise https://github.com/openkruise/kruise/releases/download/v0.10.0/kruise-chart.tgz 3.make install

    Anything else we need to know?:

    Environment:

    • triton version: 0.1.0

    • Kubernetes version (use kubectl version): kubernetes v1.18.8

    • OS (e.g: cat /etc/os-release): centos7.6

    • Kernel (e.g. uname -a):

    • Linux master1 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux


    • Install tools:
    • Others:
    good first issue 
    opened by wangzhilin90 4
  • [BUG]  make run  failed,提示“recipe for target 'run' failed”

    [BUG] make run failed,提示“recipe for target 'run' failed”

    What happened: 1.deployflow 副本数不正常,没有达到期望值,报错如下图: image 因为没有执行make run, 2.执行make run 后,报错“recipe for target 'run' failed” image

    3.查找/var/log/localhost日志报错如下 time="2021-10-08T17:43:39.227584+08:00" level=info msg="NumCPU: 4, GOMAXPROCS: 4\n" func=Infof file="log/log.go:117" time="2021-10-08T17:43:39.229314+08:00" level=error msg="failed to get filed indexer" func=newReconciler file="deployflow/deployflow_controller.go:91" controller=DeployFlow image

    What you expected to happen: deployflow 副本数正常

    How to reproduce it (as minimally and precisely as possible):

    Anything else we need to know?:

    Environment:

    • triton version:
    • Kubernetes version (use kubectl version):
    • OS (e.g: cat /etc/os-release):
    • Kernel (e.g. uname -a):
    • Install tools:
    • Others:
    opened by wangzhilin90 1
  • Bump k8s.io/kubernetes from 1.18.6 to 1.18.19

    Bump k8s.io/kubernetes from 1.18.6 to 1.18.19

    Bumps k8s.io/kubernetes from 1.18.6 to 1.18.19.

    Release notes

    Sourced from k8s.io/kubernetes's releases.

    Kubernetes v1.18.19

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Release Assets

    Kubernetes v1.18.18

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Release Assets

    Kubernetes v1.18.17

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    Release Assets

    Kubernetes v1.18.16

    See kubernetes-announce@. Additional binary downloads are linked in the CHANGELOG.

    See the CHANGELOG for more details.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump github.com/gin-gonic/gin from 1.6.3 to 1.7.0

    Bump github.com/gin-gonic/gin from 1.6.3 to 1.7.0

    Bumps github.com/gin-gonic/gin from 1.6.3 to 1.7.0.

    Release notes

    Sourced from github.com/gin-gonic/gin's releases.

    Release v1.7.0

    BUGFIXES

    • fix compile error from #2572 (#2600)
    • fix: print headers without Authorization header on broken pipe (#2528)
    • fix(tree): reassign fullpath when register new node (#2366)

    ENHANCEMENTS

    • Support params and exact routes without creating conflicts (#2663)
    • chore: improve render string performance (#2365)
    • Sync route tree to httprouter latest code (#2368)
    • chore: rename getQueryCache/getFormCache to initQueryCache/initFormCa (#2375)
    • chore(performance): improve countParams (#2378)
    • Remove some functions that have the same effect as the bytes package (#2387)
    • update:SetMode function (#2321)
    • remove a unused type SecureJSONPrefix (#2391)
    • Add a redirect sample for POST method (#2389)
    • Add CustomRecovery builtin middleware (#2322)
    • binding: avoid 2038 problem on 32-bit architectures (#2450)
    • Prevent panic in Context.GetQuery() when there is no Request (#2412)
    • Add GetUint and GetUint64 method on gin.context (#2487)
    • update content-disposition header to MIME-style (#2512)
    • reduce allocs and improve the render WriteString (#2508)
    • implement ".Unwrap() error" on Error type (#2525) (#2526)
    • Allow bind with a map[string]string (#2484)
    • chore: update tree (#2371)
    • Support binding for slice/array obj [Rewrite] (#2302)
    • basic auth: fix timing oracle (#2609)
    • Add mixed param and non-param paths (port of httprouter#329) (#2663)
    • feat(engine): add trustedproxies and remoteIP (#2632)
    Changelog

    Sourced from github.com/gin-gonic/gin's changelog.

    Gin v1.7.0

    BUGFIXES

    • fix compile error from #2572 (#2600)
    • fix: print headers without Authorization header on broken pipe (#2528)
    • fix(tree): reassign fullpath when register new node (#2366)

    ENHANCEMENTS

    • Support params and exact routes without creating conflicts (#2663)
    • chore: improve render string performance (#2365)
    • Sync route tree to httprouter latest code (#2368)
    • chore: rename getQueryCache/getFormCache to initQueryCache/initFormCa (#2375)
    • chore(performance): improve countParams (#2378)
    • Remove some functions that have the same effect as the bytes package (#2387)
    • update:SetMode function (#2321)
    • remove a unused type SecureJSONPrefix (#2391)
    • Add a redirect sample for POST method (#2389)
    • Add CustomRecovery builtin middleware (#2322)
    • binding: avoid 2038 problem on 32-bit architectures (#2450)
    • Prevent panic in Context.GetQuery() when there is no Request (#2412)
    • Add GetUint and GetUint64 method on gin.context (#2487)
    • update content-disposition header to MIME-style (#2512)
    • reduce allocs and improve the render WriteString (#2508)
    • implement ".Unwrap() error" on Error type (#2525) (#2526)
    • Allow bind with a map[string]string (#2484)
    • chore: update tree (#2371)
    • Support binding for slice/array obj [Rewrite] (#2302)
    • basic auth: fix timing oracle (#2609)
    • Add mixed param and non-param paths (port of httprouter#329) (#2663)
    • feat(engine): add trustedproxies and remoteIP (#2632)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • fix helm chart and add docs

    fix helm chart and add docs

    Signed-off-by: hantmac [email protected]

    Ⅰ. Describe what this PR does

    • Fix helm install charts
    • Add helm install docs

    Ⅱ. Does this pull request fix one issue?

    https://github.com/triton-io/triton/issues/15

    Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.

    Ⅳ. Describe how to verify it

    helm install triton.io https://github.com/triton-io/triton/releases/download/v0.1.1/triton-0.1.1.tgz

    opened by hantmac 0
  • add helm install package

    add helm install package

    Ⅰ. Describe what this PR does

    Ⅱ. Does this pull request fix one issue?

    add helm install for triton v0.1.0

    Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.

    opened by hantmac 0
  • fix generate cloneset replicas bug

    fix generate cloneset replicas bug

    Signed-off-by: hantmac [email protected]

    Ⅰ. Describe what this PR does

    fix generate cloneset replicas bug

    Ⅱ. Does this pull request fix one issue?

    NONE

    opened by hantmac 0
  • fix scale action and add more docs

    fix scale action and add more docs

    Signed-off-by: hantmac [email protected]

    Ⅰ. Describe what this PR does

    fix scale action and add more docs

    Ⅱ. Does this pull request fix one issue?

    NONE

    opened by hantmac 0
  • complete makefile

    complete makefile

    Signed-off-by: hantmac [email protected]

    Ⅰ. Describe what this PR does

    • complete Makefile
    • add kustomization.yaml

    Ⅱ. Does this pull request fix one issue?

    NONE

    opened by hantmac 0
  • add grpc api for deployflow action

    add grpc api for deployflow action

    Signed-off-by: hantmac [email protected]

    Ⅰ. Describe what this PR does

    • support create deployflow by yaml
    • add grpc api for deployflow action, such as Next, Cancel...etc.
    • add additional print columns

    Ⅱ. Does this pull request fix one issue?

    NONE

    Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.

    opened by hantmac 0
  • impl deployflow controller

    impl deployflow controller

    Signed-off-by: hantmac [email protected]

    Ⅰ. Describe what this PR does

    Implete deployflow controller and cloneset controller.

    Ⅱ. Does this pull request fix one issue?

    NONE

    Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.

    NONE

    opened by hantmac 0
Owner
triton-io
triton-io
Natural-deploy - A natural and simple way to deploy workloads or anything on other machines.

Natural Deploy Its Go way of doing Ansibles: Motivation: Have you ever felt when using ansible or any declarative type of program that is used for dep

Akilan Selvacoumar 0 Jan 3, 2022
provide api for cloud service like aliyun, aws, google cloud, tencent cloud, huawei cloud and so on

cloud-fitter 云适配 Communicate with public and private clouds conveniently by a set of apis. 用一套接口,便捷地访问各类公有云和私有云 对接计划 内部筹备中,后续开放,有需求欢迎联系。 开发者社区 开发者社区文档

null 24 Dec 20, 2022
Christmas Hack Day Project: Build an Kubernetes Operator to deploy Camunda Cloud services

Camunda Cloud Operator Christmas Hack Day Project (2021): Build an Kubernetes Operator to deploy Camunda Cloud services Motiviation / Idea We currentl

Camunda Community Hub 0 May 18, 2022
The Cloud Native Application Proxy

Traefik (pronounced traffic) is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy. Traefik integrates with your ex

Traefik Labs 41k Jan 9, 2023
This is a cloud-native application that focuses on the DevOps area.

Get started Install KubeSphere via kk (or other ways). This is an optional step, basically we need a Kubernetes Cluster and the front-end of DevOps. I

KubeSphere SIGs 123 Jan 5, 2023
The OCI Service Operator for Kubernetes (OSOK) makes it easy to connect and manage OCI services from a cloud native application running in a Kubernetes environment.

OCI Service Operator for Kubernetes Introduction The OCI Service Operator for Kubernetes (OSOK) makes it easy to create, manage, and connect to Oracle

Oracle 24 Sep 27, 2022
This is a cloud-native application that focuses on the DevOps area.

KubeSphere DevOps integrates popular CI/CD tools, provides CI/CD Pipelines based on Jenkins, offers automation toolkits including Binary-to-Image (B2I

KubeSphere 123 Jan 5, 2023
A cloud-native application simulator for golang

Build and upload Docker images Build docker images for main application and work

Ericsson Research 6 Aug 10, 2022
Cloud-Z gathers information and perform benchmarks on cloud instances in multiple cloud providers.

Cloud-Z Cloud-Z gathers information and perform benchmarks on cloud instances in multiple cloud providers. Cloud type, instance id, and type CPU infor

CloudSnorkel 16 Jun 8, 2022
A tool to build, deploy, and release any application on any platform.

Waypoint Website: https://www.waypointproject.io Tutorials: HashiCorp Learn Forum: Discuss Waypoint allows developers to define their application buil

HashiCorp 4.6k Dec 28, 2022
A Go based deployment tool that allows the users to deploy the web application on the server using SSH information and pem file.

A Go based deployment tool that allows the users to deploy the web application on the server using SSH information and pem file. This application is intend for non tecnhincal users they can just open the GUI and given the server details just deploy.

Jobin Jose 1 Oct 16, 2021
Flowlogs2metrics - Transform flow logs into metrics

Overview Flow-Logs to Metrics (a.k.a. FL2M) is an observability tool that consum

null 26 Jan 3, 2023
Kubernetes Operator for a Cloud-Native OpenVPN Deployment.

Meerkat is a Kubernetes Operator that facilitates the deployment of OpenVPN in a Kubernetes cluster. By leveraging Hashicorp Vault, Meerkat securely manages the underlying PKI.

Oliver Borchert 32 Jan 4, 2023
Open Service Mesh (OSM) is a lightweight, extensible, cloud native service mesh that allows users to uniformly manage, secure, and get out-of-the-box observability features for highly dynamic microservice environments.

Open Service Mesh (OSM) Open Service Mesh (OSM) is a lightweight, extensible, Cloud Native service mesh that allows users to uniformly manage, secure,

Open Service Mesh 2.5k Jan 2, 2023
Zadig is a cloud native, distributed, developer-oriented continuous delivery product.

Zadig Developer-oriented Continuous Delivery Product English | 简体中文 Table of Contents Zadig Table of Contents What is Zadig Quick start How to use? Ho

KodeRover 1.9k Jan 8, 2023
Zadig is a cloud native, distributed, developer-oriented continuous delivery product.

Zadig Developer-oriented Continuous Delivery Product ⁣ English | 简体中文 Table of Contents Zadig Table of Contents What is Zadig Quick start How to use?

KodeRover 30 May 12, 2021
Interactive Cloud-Native Environment Client

Fenix-CLI:Interactive Cloud-Native Environment Client English | 简体中文 Fenix-CLI is an interactive cloud-native operating environment client. The goal i

IcyFenix 86 Dec 15, 2022
Polaris is a cloud-native service discovery and governance center

It can be used to solve the problem of service connection, fault tolerance, traffic control and secure in distributed and microservice architecture.

PolarisMesh 1.8k Dec 26, 2022
Cloud Native Configurations for Kubernetes

CNCK CNCK = Cloud Native Configurations for Kubernetes Make your Kubernetes applications more cloud native by injecting runtime cluster information in

Tal Liron 5 Nov 4, 2021