Giter VIP home page Giter VIP logo

argo-ci's Introduction

THIS PROJECT IS NO LONGER MAINTAINED. PLEASE TAKE A LOOK AT ARGO EVENTS INSTEAD (https://github.com/argoproj/argo-events)

Argo CI

Argo CI is a continuous integration and deployment system powered by Argo workflow engine for Kubernetes. Argo CI provides integration with SCM ( currently only Github is supported) and automatically triggers CI workflow defined using Argo YAML DSL.

Deploy Argo CI to your kubernetes cluster

Argo CI might be installed using Helm:

helm repo add argo https://argoproj.github.io/argo-helm/
helm install argo/argo-ci --name argo-ci

The argo-ci helm chart installs three deployments:

  • Argo workflow controller
  • Argo UI deployment
  • Argo CI deployment

Argo UI and Argo CI are available externally via load balancer kubernetes services.

Configure integration with Github

Following steps are required to configure integration:

  • For security reasons Argo CI configuration UI is not available externally. Easiest way to access it is to use port forwarding: kubectl port-forward <argo-ci-pod> 8002:8002. UI should be available via http://localhost:8002.
  • Configure external Argo UI URL using Argo CI configuration UI.
  • Add required repositories using Argo UI:

Configuration UI

  • Create webhook using Github UI:
    • set Payload URL to http<ArgoCiDomain>/api/webhook/github
    • set Content Type to application/json
    • set your Secret token values
  • Create build workflow and save at .argo-ci/ci.yaml inside of your project repository. If workflow has parameters named revision and repo then Argo CI will automatically set values for these parameters.

Build and debug

To build project locally install nodejs and yarn. Once you install npm dependencies using yarn install you are ready to build and debug project locally:

  • Execute yarn build to build project. Command stores build results in ./dist directory.
  • Execute yarn start to start service locally.

argo-ci's People

Contributors

alexmt avatar edlee2121 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

argo-ci's Issues

Helm Install Error

Environments:

helm version :
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"}

helm repo :
argo https://argoproj.github.io/argo-helm/

install command:
helm install argo-ci argo/argo-ci --version 0.1.6

Result:
Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(ServiceAccount.metadata): unknown field "namspace" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta

Helm Debug Message:
helm install argo-ci argo/argo-ci --version 0.1.6 --dry-run --debug

install.go:159: [debug] Original chart version: "0.1.6"
install.go:176: [debug] CHART PATH: /root/.cache/helm/repository/argo-ci-0.1.6.tgz

Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(ServiceAccount.metadata): unknown field "namspace" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta
helm.go:84: [debug] error validating "": error validating data: ValidationError(ServiceAccount.metadata): unknown field "namspace" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta
helm.sh/helm/v3/pkg/kube.scrubValidationError
/home/circleci/helm.sh/helm/pkg/kube/client.go:570
helm.sh/helm/v3/pkg/kube.(*Client).Build
/home/circleci/helm.sh/helm/pkg/kube/client.go:159
helm.sh/helm/v3/pkg/action.(*Install).Run
/home/circleci/helm.sh/helm/pkg/action/install.go:254
main.runInstall
/home/circleci/helm.sh/helm/cmd/helm/install.go:229
main.newInstallCmd.func1
/home/circleci/helm.sh/helm/cmd/helm/install.go:117
github.com/spf13/cobra.(*Command).execute
/go/pkg/mod/github.com/spf13/[email protected]/command.go:842
github.com/spf13/cobra.(*Command).ExecuteC
/go/pkg/mod/github.com/spf13/[email protected]/command.go:950
github.com/spf13/cobra.(*Command).Execute
/go/pkg/mod/github.com/spf13/[email protected]/command.go:887
main.main
/home/circleci/helm.sh/helm/cmd/helm/helm.go:83
runtime.main
/usr/local/go/src/runtime/proc.go:203
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1357
unable to build kubernetes objects from release manifest
helm.sh/helm/v3/pkg/action.(*Install).Run
/home/circleci/helm.sh/helm/pkg/action/install.go:256
main.runInstall
/home/circleci/helm.sh/helm/cmd/helm/install.go:229
main.newInstallCmd.func1
/home/circleci/helm.sh/helm/cmd/helm/install.go:117
github.com/spf13/cobra.(*Command).execute
/go/pkg/mod/github.com/spf13/[email protected]/command.go:842
github.com/spf13/cobra.(*Command).ExecuteC
/go/pkg/mod/github.com/spf13/[email protected]/command.go:950
github.com/spf13/cobra.(*Command).Execute
/go/pkg/mod/github.com/spf13/[email protected]/command.go:887
main.main
/home/circleci/helm.sh/helm/cmd/helm/helm.go:83
runtime.main
/usr/local/go/src/runtime/proc.go:203
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1357


Please help me to find out some clues!

Error in helm install

Helm install is failing with error

k8smaster@k8smaster:~$ helm install argo/argo-ci --name argo-ci
Error: Job failed: DeadlineExceeded

Here are pod logs,

Error from server (Forbidden): error when retrieving current configuration of:
Resource: "apiextensions.k8s.io/v1beta1, Resource=customresourcedefinitions", GroupVersionKind: "apiextensions.k8s.io/v1beta1, Kind=CustomResourceDefinition"
Name: "workflows.argoproj.io", Namespace: ""
Object: &{map["apiVersion":"apiextensions.k8s.io/v1beta1" "kind":"CustomResourceDefinition" "metadata":map["name":"workflows.argoproj.io" "annotations":map["kubectl.kubernetes.io/last-applied-configuration":""]] "spec":map["group":"argoproj.io" "names":map["plural":"workflows" "shortNames":["wf"] "kind":"Workflow"] "scope":"Namespaced" "version":"v1alpha1"]]}
from server for: "STDIN": customresourcedefinitions.apiextensions.k8s.io "workflows.argoproj.io" is forbidden: User "system:serviceaccount:default:default" cannot get resource "customresourcedefinitions" in API group "apiextensions.k8s.io" at the cluster scope

Looks like issue with the roles. I just followed the instructions present in README file. Are there any steps missing, before hitting helm installation? Please help!

getting started refresh

I'd love to give argo-ci a try, but the instructions on https://argoproj.github.io/argo-ci rely on an outdated helm chart so I'm requesting a refresh for the "try-it-out" instructions.

Of course, I'd love to see more docs in general, but this could get me at least past the initial hurdle.

Transport error on Login attempt using CLI

After entering username and password, I am receiving this error when trying to login with the CLI after initial install:

rpc error: code = FailedPrecondition desc = transport: received the unexpected content-type "text/plain; charset=utf-8"

Please Add Deprecation Notice

As I read somewhere, Argo CI has been deprecated and superseded by Argo Events which can be used together with Argo Workflows to achieve CI.

The first time I stumbled over Argo CI, I was very confused. It would be helpful if you could write a deprecation notice in the readme and point to Argo Events as replacement.

webhook result post container can take 1 hour to complete

I have noticed argo-ci job webhook posting can take extremely long to complete. In the following case, it takes 1 hour:

$ argo get argo-ci-ctfws -o wide
Name:             argo-ci-ctfws
Namespace:        default
ServiceAccount:   default
Status:           Succeeded
Created:          Tue Jan 16 14:48:10 -0800 (1 hour ago)
Started:          Tue Jan 16 14:48:10 -0800 (1 hour ago)
Finished:         Tue Jan 16 15:55:41 -0800 (7 minutes ago)
Duration:         1 hours 7 minutes 31 seconds
Parameters:
  revision:       f2b8f248ab8d483e0ba41a287611393500c7b507
  repo:           https://github.com/argoproj/argo.git

STEP                                               PODNAME                   DURATION  ARTIFACTS  MESSAGE
 ✔ argo-ci-ctfws                                                             8m
 └-·-✔ ci(make controller-image)                   argo-ci-ctfws-1082140864  7m
   ├-✔ ci(make executor-image)                     argo-ci-ctfws-3448139115  8m
   ├-✔ ci(make cli-linux)                          argo-ci-ctfws-2033759993  2m
   ├-✔ ci(make cli-darwin)                         argo-ci-ctfws-172564014   4m
   ├-✔ ci(make ui-image)                           argo-ci-ctfws-3026041666  7m
   ├-✔ ci(dep ensure && make lint)                 argo-ci-ctfws-4148832474  1m
   ├-✔ ci(dep ensure && make test)                 argo-ci-ctfws-3336451261  3m
   └-✔ ci(dep ensure && ./hack/verify-codegen.sh)  argo-ci-ctfws-1510344862  53s

 ✔ onExit                                                                    59m
 └---✔ dc131471-8e47-41c9-99a4-fca7bf1ca0f3        argo-ci-ctfws-250292847   59m

When I run argo logs against the pod, it returns no output.

Why is there a UI at all?

Why are repos configured via the UI? Why not another CRD or CRD+Secret?

I am very interested in Argo for declarative workflows, and it seems like it's opinionated in the interest of being declarative and repeatable, so I'm quite curious why argo-ci seems to take a slightly different approach.

Thanks!

Gitlab support

Gitlab support could be integrated by ignoring the gitlab-ci.yml. We could use the same polling method and authentication as gitlab and provide the same level of integration that gitlab-ci does with the UI.

Add polling mode

It'd be great to have a polling mode instead of webhook notification mode for more generic implementation scenarios (without GitHub).

Support historical builds data

Tracking issue for historical builds data support. Argo CI should automatically remove completed workflows from kubernetes and move to persistent data storage.

  • Prepare design document

no such file or directory, open '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt'

Hi,

I would like to know if argo-ci does support kubernetes 1.9 or later?
After installed argo-ci I'm getting the error below in the argo-ci-ci pod.

no such file or directory, open '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt'

I think the path has been changed last year to /var/lib/kubelet/pki .

Full log:
kubectl logs -n argoproj argo-ci-ci-74c8cc8859-c758h {"name":"add-status","hostname":"argo-ci-ci-74c8cc8859-c758h","pid":6,"level":50,"err":{"message":"ENOENT: no such file or directory, open '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt'","name":"Error","stack":"Error: ENOENT: no such file or directory, open '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt'\n at Error (native)\n at Object.fs.openSync (fs.js:640:18)\n at Object.fs.readFileSync (fs.js:508:33)\n at Object.getInCluster (/app/node_modules/kubernetes-client/lib/config.js:35:17)\n at Object.createKubeCrdClient (/app/util.js:48:62)\n at Object.<anonymous> (/app/app.js:37:36)\n at next (native)\n at /app/app.js:7:71\n at __awaiter (/app/app.js:3:12)\n at Object.createServers (/app/app.js:36:12)","code":"ENOENT"},"msg":"ENOENT: no such file or directory, open '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt'","time":"2019-01-24T04:48:23.231Z","v":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.