Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
tirumaraiselvan committed Apr 9, 2020
1 parent b82c335 commit ec3d067
Showing 1 changed file with 17 additions and 24 deletions.
41 changes: 17 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,31 +56,15 @@ kubectl --namespace kube-system expose deployment gitkubed --type=LoadBalancer -
gitkube install
```

#### Example
Follow this [example](https://github.com/hasura/gitkube-example) repo for a typical workflow of gitkube.


## How it works

Gitkube has three components:

1. Remote: Custom resource defined by a K8s CRD
2. gitkube-controller: Controller that manages Remote objects and propogates changes to gitkubed
3. gitkubed: Git host that builds docker image from the repo and rolls out deployment

### High-level architecture

![Architecture](https://raw.githubusercontent.com/hasura/gitkube/master/artifacts/gitkube-v0.1.png)

### Workflow
## Workflow
- Local dev: User creates a base git repo for the application with Dockerfile and K8s deployment
- Setting Remote: User defines a spec for Remote containing the rules for `git push`
- Deploying application: Once a Remote is setup, application can be deployed to K8s using `git push <remote> master`

#### Local dev
### Local dev
User should have a git repo with source code and a Dockerfile. User should also create a base K8s deployment for the application.

#### Setting Remote
### Setting Remote
A Remote resource consists of 3 parts:

1. authorizedKeys: List of ssh-keys for authorizing `git push`.
Expand Down Expand Up @@ -115,7 +99,7 @@ spec:
dockerfile: example/www/Dockerfile # Location of Dockerfile for the source code
```

#### Deploying application
### Deploying application

Once a Remote is created, it gets a git remote URL which you can find in its `status` spec

Expand All @@ -139,12 +123,21 @@ And finally, `git push`
$ git push sampleremote master
```

## Roadmap
### More examples
Follow this [example](https://github.com/hasura/gitkube-example) repo for more workflows with gitkube.

## How it works

Gitkube has three components:

1. Remote: Custom resource defined by a K8s CRD
2. gitkube-controller: Controller that manages Remote objects and propogates changes to gitkubed
3. gitkubed: Git host that builds docker image from the repo and rolls out deployment

Gitkube is open to evolution. Some of the features to be added in future include:
### High-level architecture

![Architecture](https://raw.githubusercontent.com/hasura/gitkube/master/artifacts/gitkube-v0.1.png)

- Allowing all apps (daemonset, statefulset) to be deployed using `git push`. Current support is limited to deployments. [#19](https://github.com/hasura/gitkube/issues/19)
- Allowing different git hooks to be integrated [#20](https://github.com/hasura/gitkube/issues/20)

## Contributing

Expand Down

0 comments on commit ec3d067

Please sign in to comment.