Skip to content

Commit

Permalink
Add support for deploying on existing cluster
Browse files Browse the repository at this point in the history
Signed-off-by: adrianc <[email protected]>
  • Loading branch information
adrianchiris committed Aug 16, 2023
1 parent 4973441 commit aa28dea
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 10 deletions.
42 changes: 32 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@
- [Build and Run Locally](#build-and-run-locally)
- [Prerequisites](#prerequisites-1)
- [Build \& Run](#build--run)
- [Build \& Run in local K8s cluster](#build--run-in-local-k8s-cluster)
- [Build \& Run In K8s Cluster For Development](#build--run-in-k8s-cluster-for-development)
- [Install Prerequisites](#install-prerequisites)
- [Create local k8s development environment](#create-local-k8s-development-environment)
- [Cleanup local k8s development environment](#cleanup-local-k8s-development-environment)
- [Local Cluster](#local-cluster)
- [Create Local K8s Development Environment](#create-local-k8s-development-environment)
- [Cleanup Local K8s Development Environment](#cleanup-local-k8s-development-environment)
- [Remote K8s Cluster (existing cluster)](#remote-k8s-cluster-existing-cluster)

## Overview

Expand Down Expand Up @@ -198,27 +200,47 @@ task build
> own image registry, then create an overlay for exsiting deployment which overrides the image name with your own image path.

### Build & Run in local K8s cluster
### Build & Run In K8s Cluster For Development

For local development it is possible to use [skaffold](https://skaffold.dev/) to deploy
local changes onto a local k8s cluster.
For development [skaffold](https://skaffold.dev/) is used to deploy
local changes onto a K8s cluster.

#### Install Prerequisites

1. [install Docker](https://docs.docker.com/engine/install/)
2. [install minikube](https://minikube.sigs.k8s.io/docs/start/)
3. [install skaffold](https://skaffold.dev/docs/install/#standalone-binary)
2. [install kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)
3. [install minikube](https://minikube.sigs.k8s.io/docs/start/)
4. [install skaffold](https://skaffold.dev/docs/install/#standalone-binary)

#### Create local k8s development environment
#### Local Cluster

##### Create Local K8s Development Environment

```shell
task -o interleaved localdev:start
```

To trigger a rebuild, press any key in the current shell.

#### Cleanup local k8s development environment
##### Cleanup Local K8s Development Environment

```shell
task -o interleaved localdev:clean
```

#### Remote K8s Cluster (existing cluster)

For this deployment option you should provide the following environment variables

- `LOCALDEV_IMAGE_REPO`: image repository which skaffold will use.
- `LOCALDEV_KUBECONFIG`: optional, path to kubeconfig file which will be used by skaffold to access k8s cluster.
- `LOCALDEV_KUBECONTEXT`: optional. name of kube context which will be used by skaffold to access k8s cluster.

```shell
LOCALDEV_IMAGE_REPO=quay.io/myuser LOCALDEV_KUBECONTEXT=my-remote-cluster task -o interleaved localdev:deploy
```

To trigger a rebuild, press any key in the current shell.

>__NOTE__: if `LOCALDEV_KUBECONFIG` and `LOCALDEV_KUBECONTEXT` are not provided, the current context pointed by
> kubectl will be used.
10 changes: 10 additions & 0 deletions taskfiles/LocalDev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,13 @@
clean:
desc: clean local k8s dev cluster
cmd: minikube --profile nfd-dev delete

deploy:
desc: deploy on pre-created cluster
vars:
LOCALDEV_IMAGE_REPO: '{{.LOCALDEV_IMAGE_REPO | default "harbor.mellanox.com/cloud-orchestration-dev"}}'
#LOCALDEV_KUBECONFIG: "/path/to/kubeconfig" <- optional, pass in via env var
#LOCALDEV_KUBECONTEXT: "kube-context-name" <- optional, pass in via env var
cmd: |
export SK_FLAGS="{{if .LOCALDEV_KUBECONFIG}}--kubeconfig={{.LOCALDEV_KUBECONFIG}}{{else}}{{if .LOCALDEV_KUBECONTEXT}}--kube-context={{.LOCALDEV_KUBECONTEXT}}{{end}}{{end}}"
skaffold dev --trigger=manual --default-repo={{.LOCALDEV_IMAGE_REPO}} $SK_FLAGS

0 comments on commit aa28dea

Please sign in to comment.