Skip to content

Commit

Permalink
docs: improve getting_started.md
Browse files Browse the repository at this point in the history
  • Loading branch information
siyul-park committed Oct 27, 2024
1 parent 04c9b81 commit d64d2a0
Show file tree
Hide file tree
Showing 4 changed files with 296 additions and 21 deletions.
114 changes: 104 additions & 10 deletions cmd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,110 @@

Effectively manage your workflows using the versatile Command Line Interface (CLI) designed for a variety of tasks. This CLI is provided as a base executable that includes [built-in extensions](../ext/README.md).

## Configuration
### Configuration

Before running commands, configure your system using environment variables. You can use either the `.uniflow.toml` file or system environment variables.
Settings can be modified using the `.uniflow.toml` file or system environment variables. The key configuration options are:

| TOML Key | Environment Variable Key | Example |
|-----------------------|----------------------------|----------------------------|
| `database.url` | `DATABASE.URL` | `mem://` or `mongodb://` |
| `database.name` | `DATABASE.NAME` | - |
| `collection.charts` | `COLLECTION.CHARTS` | `charts` |
| `collection.nodes` | `COLLECTION.NODES` | `nodes` |
| `collection.secrets` | `COLLECTION.SECRETS` | `secrets` |
| TOML Key | Environment Variable Key | Example |
|----------------------|--------------------------|-----------------------------|
| `database.url` | `DATABASE.URL` | `mem://` or `mongodb://` |
| `database.name` | `DATABASE.NAME` | - |
| `collection.charts` | `COLLECTION.CHARTS` | `charts` |
| `collection.nodes` | `COLLECTION.NODES` | `nodes` |
| `collection.secrets` | `COLLECTION.SECRETS` | `secrets` |

If using [MongoDB](https://www.mongodb.com/), ensure that [Change Streams](https://www.mongodb.com/docs/manual/changeStreams/) are enabled so that the engine can track changes to resources. To utilize Change Streams, set up a [Replica Set](https://www.mongodb.com/docs/manual/replication/#std-label-replication).
If you are using [MongoDB](https://www.mongodb.com/), enable [Change Streams](https://www.mongodb.com/docs/manual/changeStreams/) to track resource changes in real time. This requires setting up a [replica set](https://www.mongodb.com/docs/manual/replication/).

## Using Uniflow

`uniflow` is primarily used to start and manage the runtime environment.

### Start Command

The `start` command executes all node specifications in the specified namespace. If no namespace is provided, the default namespace (`default`) is used.

```sh
./dist/uniflow start --namespace default
```

If the namespace is empty, you can provide an initial node specification using the `--from-specs` flag:

```sh
./dist/uniflow start --namespace default --from-specs examples/nodes.yaml
```

You can specify an initial secrets file with the `--from-secrets` flag:

```sh
./dist/uniflow start --namespace default --from-secrets examples/secrets.yaml
```

Charts can be initialized using the `--from-charts` flag:

```sh
./dist/uniflow start --namespace default --from-charts examples/charts.yaml
```

## Using Uniflowctl

`uniflowctl` is a command used to manage resources within a namespace.

### Apply Command

The `apply` command applies the contents of a specified file to the namespace. If no namespace is specified, the `default` namespace is used.

```sh
./dist/uniflowctl apply nodes --namespace default --filename examples/nodes.yaml
```

To apply secrets:

```sh
./dist/uniflowctl apply secrets --namespace default --filename examples/secrets.yaml
```

To apply charts:

```sh
./dist/uniflowctl apply charts --namespace default --filename examples/charts.yaml
```

### Delete Command

The `delete` command removes all resources defined in the specified file. If no namespace is specified, the `default` namespace is used.

```sh
./dist/uniflowctl delete nodes --namespace default --filename examples/nodes.yaml
```

To delete secrets:

```sh
./dist/uniflowctl delete secrets --namespace default --filename examples/secrets.yaml
```

To delete charts:

```sh
./dist/uniflowctl delete charts --namespace default --filename examples/charts.yaml
```

### Get Command

The `get` command retrieves all resources in the specified namespace. If no namespace is specified, the `default` namespace is used.

```sh
./dist/uniflowctl get nodes --namespace default
```

To retrieve secrets:

```sh
./dist/uniflowctl get secrets --namespace default
```

To retrieve charts:

```sh
./dist/uniflowctl get charts --namespace default
```
113 changes: 103 additions & 10 deletions cmd/README_kr.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,109 @@

다양한 작업 흐름을 관리하기 위해 설계된 다목적 명령줄 인터페이스 (CLI)를 효과적으로 사용하세요. 이 CLI는 [내장 확장 기능](../ext/README.md)을 포함한 기본 실행 파일로 제공됩니다.

## 구성
### 설정

명령을 실행하기 전에 환경 변수를 사용하여 시스템을 구성해야 합니다. `.uniflow.toml` 파일이나 시스템 환경 변수를 활용할 수 있습니다.
설정은 `.uniflow.toml` 파일이나 시스템 환경 변수를 사용해 유연하게 변경할 수 있습니다. 주요 설정 항목은 다음과 같습니다:

| TOML 키 | 환경 변수 키 | 예시 |
|----------------------|--------------------------|----------------------------|
| `database.url` | `DATABASE.URL` | `mem://` 또는 `mongodb://` |
| `database.name` | `DATABASE.NAME` | - |
| `collection.charts` | `COLLECTION.CHARTS` | `charts` |
| `collection.nodes` | `COLLECTION.NODES` | `nodes` |
| `collection.secrets` | `COLLECTION.SECRETS` | `secrets` |

[MongoDB](https://www.mongodb.com/)를 사용할 경우, 엔진이 리소스의 변경을 추적할 수 있도록 [변경 스트림](https://www.mongodb.com/docs/manual/changeStreams/)을 활성화해야 합니다. 변경 스트림을 이용하려면 [복제본 세트](https://www.mongodb.com/ko-kr/docs/manual/replication/#std-label-replication)를 설정하세요.
|----------------------|-------------------------|----------------------------|
| `database.url` | `DATABASE.URL` | `mem://` 또는 `mongodb://` |
| `database.name` | `DATABASE.NAME` | - |
| `collection.charts` | `COLLECTION.CHARTS` | `charts` |
| `collection.nodes` | `COLLECTION.NODES` | `nodes` |
| `collection.secrets` | `COLLECTION.SECRETS` | `secrets` |

만약 [MongoDB](https://www.mongodb.com/)를 사용한다면, 리소스의 변경 사항을 실시간으로 추적하기 위해 [변경 스트림](https://www.mongodb.com/docs/manual/changeStreams/)을 활성화해야 합니다. 이를 위해서는 [복제 세트](https://www.mongodb.com/docs/manual/replication/) 설정이 필요합니다.

## Uniflow 사용하기

`uniflow`는 주로 런타임 환경을 시작하고 관리하는 명령어입니다.

### Start 명령어

`start` 명령어는 지정된 네임스페이스 내의 모든 노드 명세를 실행합니다. 네임스페이스가 지정되지 않으면 기본적으로 `default` 네임스페이스가 사용됩니다.

```sh
./dist/uniflow start --namespace default
```

네임스페이스가 비어 있을 경우, 초기 노드 명세를 `--from-specs` 플래그로 제공할 수 있습니다:

```sh
./dist/uniflow start --namespace default --from-specs examples/nodes.yaml
```

초기 시크릿 파일은 `--from-secrets` 플래그로 설정할 수 있습니다:
```sh
./dist/uniflow start --namespace default --from-secrets examples/secrets.yaml
```

초기 차트 파일은 `--from-charts` 플래그로 제공할 수 있습니다:

```sh
./dist/uniflow start --namespace default --from-charts examples/charts.yaml
```

## Uniflowctl 사용하기

`uniflowctl`는 네임스페이스 내에서 리소스를 관리하는 명령어입니다.

### Apply 명령어

`apply` 명령어는 지정된 파일 내용을 네임스페이스에 적용합니다. 네임스페이스를 지정하지 않으면 기본적으로 `default` 네임스페이스가 사용됩니다.

```sh
./dist/uniflowctl apply nodes --namespace default --filename examples/nodes.yaml
```

시크릿을 적용하려면:

```sh
./dist/uniflowctl apply secrets --namespace default --filename examples/secrets.yaml
```

차트를 적용하려면:

```sh
./dist/uniflowctl apply charts --namespace default --filename examples/charts.yaml
```

### Delete 명령어

`delete` 명령어는 지정된 파일에 정의된 모든 리소스를 삭제합니다. 네임스페이스를 지정하지 않으면 기본적으로 `default` 네임스페이스가 사용됩니다.

```sh
./dist/uniflowctl delete nodes --namespace default --filename examples/nodes.yaml
```

시크릿을 삭제하려면:

```sh
./dist/uniflowctl delete secrets --namespace default --filename examples/secrets.yaml
```

차트를 삭제하려면:

```sh
./dist/uniflowctl delete charts --namespace default --filename examples/charts.yaml
```

### Get 명령어

`get` 명령어는 지정된 네임스페이스 내 모든 리소스를 조회합니다. 네임스페이스가 지정되지 않으면 기본적으로 `default` 네임스페이스가 사용됩니다.

```sh
./dist/uniflowctl get nodes --namespace default
```

시크릿을 조회하려면:

```sh
./dist/uniflowctl get secrets --namespace default
```

차트를 조회하려면:

```sh
./dist/uniflowctl get charts --namespace default
```
44 changes: 44 additions & 0 deletions docs/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,50 @@ Settings can be modified using the `.uniflow.toml` file or system environment va

If you are using [MongoDB](https://www.mongodb.com/), enable [Change Streams](https://www.mongodb.com/docs/manual/changeStreams/) to track resource changes in real time. This requires setting up a [replica set](https://www.mongodb.com/docs/manual/replication/).

## Running an Example

To run a basic HTTP request handler example using [ping.yaml](./examples/ping.yaml):

```yaml
- kind: listener
name: listener
protocol: http
port: 8000
ports:
out:
- name: router
port: in

- kind: router
name: router
routes:
- method: GET
path: /ping
port: out[0]
ports:
out[0]:
- name: pong
port: in

- kind: snippet
name: pong
language: text
code: pong
```
To start the workflow, run:
```sh
uniflow start --from-specs example/ping.yaml
```

Verify it's running by calling the HTTP endpoint:

```sh
curl localhost:8000/ping
pong#
```

## Using Uniflow

`uniflow` is primarily used to start and manage the runtime environment.
Expand Down
46 changes: 45 additions & 1 deletion docs/getting_started_kr.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,51 @@ make build

만약 [MongoDB](https://www.mongodb.com/)를 사용한다면, 리소스의 변경 사항을 실시간으로 추적하기 위해 [변경 스트림](https://www.mongodb.com/docs/manual/changeStreams/)을 활성화해야 합니다. 이를 위해서는 [복제 세트](https://www.mongodb.com/docs/manual/replication/) 설정이 필요합니다.

## 예제 실행

다음은 HTTP 요청 처리 예제인 [ping.yaml](./examples/ping.yaml)을 실행하는 방법입니다:

```yaml
- kind: listener
name: listener
protocol: http
port: 8000
ports:
out:
- name: router
port: in

- kind: router
name: router
routes:
- method: GET
path: /ping
port: out[0]
ports:
out[0]:
- name: pong
port: in

- kind: snippet
name: pong
language: text
code: pong
```
다음 명령어로 워크플로우를 실행합니다:
```sh
uniflow start --from-specs example/ping.yaml
```

정상 작동 여부를 확인하려면 HTTP 엔드포인트를 호출하세요:

```sh
curl localhost:8000/ping
pong#
```


## Uniflow 사용하기

`uniflow`는 주로 런타임 환경을 시작하고 관리하는 명령어입니다.
Expand All @@ -64,7 +109,6 @@ make build
```

초기 시크릿 파일은 `--from-secrets` 플래그로 설정할 수 있습니다:

```sh
./dist/uniflow start --namespace default --from-secrets examples/secrets.yaml
```
Expand Down

0 comments on commit d64d2a0

Please sign in to comment.