Compare commits

..

33 Commits

Author SHA1 Message Date
Gaius 1f55fc587a
chore: bump dragonfly to v2.3.1-rc.2 and bump client to v1.0.9 (#405)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-08-05 21:36:44 +08:00
dependabot[bot] 7589dfc9a6
chore(deps): bump kentaro-m/auto-assign-action from db77befe126df3163e8ee988af621569f7f2b82f to 9f6dbe84a80c6e7639d1b9698048b201052a2a94 (#404)
chore(deps): bump kentaro-m/auto-assign-action

Bumps [kentaro-m/auto-assign-action](https://github.com/kentaro-m/auto-assign-action) from db77befe126df3163e8ee988af621569f7f2b82f to 9f6dbe84a80c6e7639d1b9698048b201052a2a94.
- [Release notes](https://github.com/kentaro-m/auto-assign-action/releases)
- [Commits](db77befe12...9f6dbe84a8)

---
updated-dependencies:
- dependency-name: kentaro-m/auto-assign-action
  dependency-version: 9f6dbe84a80c6e7639d1b9698048b201052a2a94
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-05 17:49:51 +08:00
Gaius f36a6f9315
feat: add path for tracing configurations (#397)
* feat: add path for tracing configurations

Signed-off-by: Gaius <gaius.qi@gmail.com>

* feat: bump manager and scheduler to v2.2.4-rc.2

Signed-off-by: Gaius <gaius.qi@gmail.com>

---------

Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-07-17 15:41:21 +08:00
Gaius 7799a87578
feat: update plugin dir for client (#401)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-07-17 06:06:08 +00:00
dependabot[bot] 62969f3fea
chore(deps): bump kentaro-m/auto-assign-action from a558e3a7a389eae6d782d4f5ad0aaa5e36ec2e39 to db77befe126df3163e8ee988af621569f7f2b82f (#400)
chore(deps): bump kentaro-m/auto-assign-action

Bumps [kentaro-m/auto-assign-action](https://github.com/kentaro-m/auto-assign-action) from a558e3a7a389eae6d782d4f5ad0aaa5e36ec2e39 to db77befe126df3163e8ee988af621569f7f2b82f.
- [Release notes](https://github.com/kentaro-m/auto-assign-action/releases)
- [Commits](a558e3a7a3...db77befe12)

---
updated-dependencies:
- dependency-name: kentaro-m/auto-assign-action
  dependency-version: db77befe126df3163e8ee988af621569f7f2b82f
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-13 23:45:36 +08:00
Gaius bab9530d46
chore: bump client to v1.0.1 (#399)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-07-03 10:38:04 +08:00
Gaius 5832e5018f
chore: bump client to v1.0.0 and dragonfly to v2.3.0 (#398)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-07-01 18:10:37 +08:00
Gaius 7afe3b697e
feat: Added collectedPieceTimeout option for dfdaemon and seedClient (default: 10s) (#396)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-06-24 06:44:53 +00:00
Gaius d0feef12e6
chore: Bump client to v0.2.38 (#395)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-06-23 08:02:56 +00:00
dlut_xz 05f5ff0fab
fix: correct metrics labels path to use specific config (#394)
* fix: correct metrics labels path to use specific config

Signed-off-by: fcgxz2003 <834756128@qq.com>

* update chart version and add changelog

Signed-off-by: fcgxz2003 <834756128@qq.com>

---------

Signed-off-by: fcgxz2003 <834756128@qq.com>
2025-06-23 15:56:27 +08:00
dependabot[bot] cac34d36b5
chore(deps): bump mheap/github-action-required-labels from 5.5.0 to 5.5.1 (#392)
chore(deps): bump mheap/github-action-required-labels

Bumps [mheap/github-action-required-labels](https://github.com/mheap/github-action-required-labels) from 5.5.0 to 5.5.1.
- [Release notes](https://github.com/mheap/github-action-required-labels/releases)
- [Commits](388fd6af37...8afbe8ae6a)

---
updated-dependencies:
- dependency-name: mheap/github-action-required-labels
  dependency-version: 5.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 15:43:02 +08:00
dependabot[bot] 2d9deea5a8
chore(deps): bump kentaro-m/auto-assign-action from e6c4932f995626505d2a5d85401b0319753caa11 to a558e3a7a389eae6d782d4f5ad0aaa5e36ec2e39 (#393)
chore(deps): bump kentaro-m/auto-assign-action

Bumps [kentaro-m/auto-assign-action](https://github.com/kentaro-m/auto-assign-action) from e6c4932f995626505d2a5d85401b0319753caa11 to a558e3a7a389eae6d782d4f5ad0aaa5e36ec2e39.
- [Release notes](https://github.com/kentaro-m/auto-assign-action/releases)
- [Commits](e6c4932f99...a558e3a7a3)

---
updated-dependencies:
- dependency-name: kentaro-m/auto-assign-action
  dependency-version: a558e3a7a389eae6d782d4f5ad0aaa5e36ec2e39
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 15:42:47 +08:00
Gaius 6fc6c790e7
feat: update Dragonfly Helm chart to v1.3.37 with OTLP HTTP/GRPC support (#391)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-06-19 13:12:09 +00:00
Gaius 2ca22a98c8
feat: change peerTTL from 48h to 720h in scheduler (#390)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-06-18 09:23:41 +00:00
Gaius 19079041bd
feat: add diskThreshold to dfdaemon and bump client to v0.2.35 (#389)
feat: add diskThreshold to dfdaemon and bump client to v0.2.35.

Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-06-16 22:52:26 +00:00
Gaius aadd5d2df6
feat: add headers for tracing in seed client and client (#388)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-06-16 14:32:47 +08:00
dependabot[bot] 181cf5538d
chore(deps): bump kentaro-m/auto-assign-action from 7ae38e468e64dec0af17820972bc4915aa511ec2 to e6c4932f995626505d2a5d85401b0319753caa11 (#386)
chore(deps): bump kentaro-m/auto-assign-action

Bumps [kentaro-m/auto-assign-action](https://github.com/kentaro-m/auto-assign-action) from 7ae38e468e64dec0af17820972bc4915aa511ec2 to e6c4932f995626505d2a5d85401b0319753caa11.
- [Release notes](https://github.com/kentaro-m/auto-assign-action/releases)
- [Commits](7ae38e468e...e6c4932f99)

---
updated-dependencies:
- dependency-name: kentaro-m/auto-assign-action
  dependency-version: e6c4932f995626505d2a5d85401b0319753caa11
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-10 13:24:01 +08:00
Gaius 7379918c08
chore: bump client to v0.2.34 and bump dragonfly to v2.2.4-beta.1 (#385)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-06-06 16:24:08 +08:00
yxxhero 3aca321f93
refactor(client, manager, scheduler, seed-client): remove redundant chart label (#384)
* refactor(client, manager, scheduler, seed-client): remove redundant chart label

Signed-off-by: yxxhero <aiopsclub@163.com>

* refactor(client, manager, scheduler, seed-client): remove redundant chart label

Signed-off-by: yxxhero <aiopsclub@163.com>

* refactor(client, manager, scheduler, seed-client): remove redundant chart label

Signed-off-by: yxxhero <aiopsclub@163.com>

---------

Signed-off-by: yxxhero <aiopsclub@163.com>
2025-06-06 16:06:39 +08:00
Gaius 8aceed5453
feat: bump client version to v0.2.31 (#383)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-05-29 12:07:39 +08:00
Gaius 121b88310d
feat: set console to true for mangaer and scheduler (#382)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-05-26 21:10:44 +08:00
Gaius 705d24205f
chore(README.md): add maintainer google groups for communication channels and remove discussion group (#380)
* chore(README.md): add maintainer google groups for communication channels and remove discussion group

Signed-off-by: Gaius <gaius.qi@gmail.com>

* Update README.md

---------

Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-05-23 16:04:02 +08:00
Gaius 7575fc21ff
chore: bump dragonfly to v2.2.3 (#381)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-05-22 22:15:21 +08:00
Gaius b4e9af677d
feat: bump dragonfly to v2.2.3-rc.2 and add writePieceTimeout for dfdaemon (#379)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-05-13 17:23:14 +08:00
Gaius c4eeee7da3
feat: update scheduleTimeout and pieceTimeout (#378)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-05-08 22:51:43 +08:00
Gaius 0c99ab572b
chore(.github/workflows): add pr-labels, auto-assign and stale actions (#377)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-04-30 12:35:57 +08:00
Gaius 2c3758a843
feat: bump dragonfly to v2.2.3-rc.0 (#376)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-04-30 12:27:18 +08:00
yxxhero 8ea1d0e504
refactor(metrics-svc): simplify metrics service condition (#375) 2025-04-27 10:37:37 +08:00
yxxhero a6d532c80d
feat(client.dfinit): add autoRestartContainerRuntime option (#374)
* feat(client.dfinit): add autoRestartContainerRuntime option

Signed-off-by: yxxhero <aiopsclub@163.com>

* update charf.yaml

Signed-off-by: yxxhero <aiopsclub@163.com>

* follow the opinion

Signed-off-by: yxxhero <aiopsclub@163.com>

---------

Signed-off-by: yxxhero <aiopsclub@163.com>
2025-04-25 14:54:56 +08:00
yxxhero ea231c7d22
fix(client-daemonset): update checksum annotations for configmaps (#373)
* fix(client-daemonset): update checksum annotations for configmaps

Signed-off-by: yxxhero <aiopsclub@163.com>

---------

Signed-off-by: yxxhero <aiopsclub@163.com>
2025-04-25 13:56:05 +08:00
yxxhero 6eb1281cac
feat(externalRedis): add sentinel username and password fields (#372)
* feat(externalRedis): add sentinel username and password fields

Signed-off-by: yxxhero <aiopsclub@163.com>

---------

Signed-off-by: yxxhero <aiopsclub@163.com>
2025-04-25 11:19:24 +08:00
Gaius a372ff3e1d
feat: Add updateStrategy for client daemonset (#371)
Signed-off-by: Gaius <gaius.qi@gmail.com>
2025-04-23 11:37:31 +08:00
Chlins Zhang bcfe18f3b6
chore: bump client to v0.2.24 (#370)
Signed-off-by: chlins <chlins.zhang@gmail.com>
2025-04-22 16:59:55 +08:00
33 changed files with 334 additions and 169 deletions

17
.github/auto_assign.yml vendored Normal file
View File

@ -0,0 +1,17 @@
# Set to true to add reviewers to pull requests
addReviewers: true
# Set to true to add assignees to pull requests
addAssignees: author
# A list of reviewers to be added to pull requests (GitHub user name)
reviewers:
- gaius-qi
- yxxhero
- chlins
- CormickKneey
- imeoer
- BraveY
# A number of reviewers added to the pull request
numberOfReviewers: 3

11
.github/workflows/auto-assign.yml vendored Normal file
View File

@ -0,0 +1,11 @@
name: "Auto Assign"
on:
pull_request_target:
types: [opened, reopened, ready_for_review]
jobs:
add-assignee:
runs-on: ubuntu-latest
steps:
- uses: kentaro-m/auto-assign-action@9f6dbe84a80c6e7639d1b9698048b201052a2a94

20
.github/workflows/pr-labels.yml vendored Normal file
View File

@ -0,0 +1,20 @@
name: PR Label
on:
pull_request:
types: [opened, labeled, unlabeled, synchronize]
permissions:
contents: read
jobs:
classify:
name: Classify PR
runs-on: ubuntu-latest
steps:
- name: PR impact specified
uses: mheap/github-action-required-labels@8afbe8ae6ab7647d0c9f0cfa7c2f939650d22509 # v5.5
with:
mode: exactly
count: 1
labels: 'bug, enhancement, documentation, dependencies'

31
.github/workflows/stale.yml vendored Normal file
View File

@ -0,0 +1,31 @@
name: Close stale issues and PRs
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
permissions:
issues: write
pull-requests: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0
id: stale
with:
delete-branch: true
days-before-close: 7
days-before-stale: 90
days-before-pr-close: 7
days-before-pr-stale: 120
stale-issue-label: "stale"
exempt-issue-labels: bug,wip,on-hold
exempt-pr-labels: bug,wip,on-hold
exempt-all-milestones: true
stale-issue-message: 'This issue is stale because it has been open 90 days with no activity.'
close-issue-message: 'This issue was closed because it has been stalled for 7 days with no activity.'
stale-pr-message: 'This PR is stale because it has been open 120 days with no activity.'
close-pr-message: 'This PR was closed because it has been stalled for 7 days with no activity.'

View File

@ -31,9 +31,9 @@ Please refer to the [document][install] to install Dragonfly & Nydus on Kubernet
Join the conversation and help the community.
- **Slack Channel**: [#dragonfly](https://cloud-native.slack.com/messages/dragonfly/) on [CNCF Slack](https://slack.cncf.io/)
- **Discussion Group**: <dragonfly-discuss@googlegroups.com>
- **Github Discussions**: [Dragonfly Discussion Forum](https://github.com/dragonflyoss/dragonfly/discussions)
- **Developer Group**: <dragonfly-developers@googlegroups.com>
- **Github Discussions**: [Dragonfly Discussion Forum][discussion]
- **Maintainer Group**: <dragonfly-maintainers@googlegroups.com>
- **Twitter**: [@dragonfly_oss](https://twitter.com/dragonfly_oss)
- **DingTalk**: [22880028764](https://qr.dingtalk.com/action/joingroup?code=v1,k1,pkV9IbsSyDusFQdByPSK3HfCG61ZCLeb8b/lpQ3uUqI=&_dt_no_comment=1&origin=11)

View File

@ -3,8 +3,8 @@ name: dragonfly
description: Dragonfly is an intelligent P2P based image and file distribution system
icon: https://raw.githubusercontent.com/dragonflyoss/dragonfly/main/docs/images/logo/dragonfly.svg
type: application
version: 1.3.19
appVersion: 2.2.2-rc.0
version: 1.4.4
appVersion: 2.3.1-rc.2
keywords:
- dragonfly
- d7y
@ -27,7 +27,8 @@ sources:
annotations:
artifacthub.io/changes: |
- Update manager and scheduler version to v2.2.2-rc.0.
- Bump Dragonfly to v2.3.1-rc.2.
- Bump Client to v1.0.9.
artifacthub.io/links: |
- name: Chart Source
@ -38,15 +39,15 @@ annotations:
url: https://github.com/dragonflyoss/client
artifacthub.io/images: |
- name: manager
image: dragonflyoss/manager:v2.2.2-rc.0
image: dragonflyoss/manager:v2.3.1-rc.2
- name: scheduler
image: dragonflyoss/scheduler:v2.2.2-rc.0
image: dragonflyoss/scheduler:v2.3.1-rc.2
- name: client
image: dragonflyoss/client:v0.2.23
image: dragonflyoss/client:v1.0.9
- name: seed-client
image: dragonflyoss/client:v0.2.23
image: dragonflyoss/client:v1.0.9
- name: dfinit
image: dragonflyoss/dfinit:v0.2.23
image: dragonflyoss/dfinit:v1.0.9
dependencies:
- name: mysql

View File

@ -128,8 +128,10 @@ helm delete dragonfly --namespace dragonfly-system
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| client.config.download.concurrentPieceCount | int | `16` | concurrentPieceCount is the number of concurrent pieces to download. |
| client.config.download.pieceTimeout | string | `"30s"` | pieceTimeout is the timeout for downloading a piece from source. |
| client.config.console | bool | `true` | console prints log. |
| client.config.download.collectedPieceTimeout | string | `"10s"` | collected_piece_timeout is the timeout for collecting one piece from the parent in the stream. |
| client.config.download.concurrentPieceCount | int | `8` | concurrentPieceCount is the number of concurrent pieces to download. |
| client.config.download.pieceTimeout | string | `"40s"` | pieceTimeout is the timeout for downloading a piece from source. |
| client.config.download.rateLimit | string | `"50GiB"` | rateLimit is the default rate limit of the download speed in GiB/Mib/Kib per second, default is 50GiB/s. |
| client.config.download.server.requestRateLimit | int | `4000` | request_rate_limit is the rate limit of the download request in the download grpc server, default is 4000 req/s. |
| client.config.download.server.socketPath | string | `"/var/run/dragonfly/dfdaemon.sock"` | socketPath is the unix socket path for dfdaemon GRPC service. |
@ -137,7 +139,7 @@ helm delete dragonfly --namespace dragonfly-system
| client.config.gc.interval | string | `"900s"` | interval is the interval to do gc. |
| client.config.gc.policy.distHighThresholdPercent | int | `80` | distHighThresholdPercent is the high threshold percent of the disk usage. If the disk usage is greater than the threshold, dfdaemon will do gc. |
| client.config.gc.policy.distLowThresholdPercent | int | `60` | distLowThresholdPercent is the low threshold percent of the disk usage. If the disk usage is less than the threshold, dfdaemon will stop gc. |
| client.config.gc.policy.taskTTL | string | `"168h"` | taskTTL is the ttl of the task. |
| client.config.gc.policy.taskTTL | string | `"720h"` | taskTTL is the ttl of the task. |
| client.config.health.server.port | int | `4003` | port is the port to the health server. |
| client.config.host | object | `{"idc":"","location":""}` | host is the host configuration for dfdaemon. |
| client.config.log.level | string | `"info"` | Specify the logging level [trace, debug, info, warn, error] |
@ -153,30 +155,32 @@ helm delete dragonfly --namespace dragonfly-system
| client.config.scheduler.announceInterval | string | `"5m"` | announceInterval is the interval to announce peer to the scheduler. Announcer will provide the scheduler with peer information for scheduling, peer information includes cpu, memory, etc. |
| client.config.scheduler.enableBackToSource | bool | `true` | enableBackToSource indicates whether enable back-to-source download, when the scheduling failed. |
| client.config.scheduler.maxScheduleCount | int | `5` | maxScheduleCount is the max count of schedule. |
| client.config.scheduler.scheduleTimeout | string | `"30s"` | scheduleTimeout is the timeout for scheduling. If the scheduling timesout, dfdaemon will back-to-source download if enableBackToSource is true, otherwise dfdaemon will return download failed. |
| client.config.scheduler.scheduleTimeout | string | `"3h"` | scheduleTimeout is timeout for the scheduler to respond to a scheduling request from dfdaemon, default is 3 hours. If the scheduler's response time for a scheduling decision exceeds this timeout, dfdaemon will encounter a `TokioStreamElapsed(Elapsed(()))` error. Behavior upon timeout: - If `enable_back_to_source` is `true`, dfdaemon will attempt to download directly from the source. - Otherwise (if `enable_back_to_source` is `false`), dfdaemon will report a download failure. **Important Considerations Regarding Timeout Triggers**: This timeout isn't solely for the scheduler's direct response. It can also be triggered if the overall duration of the client's interaction with the scheduler for a task (e.g., client downloading initial pieces and reporting their status back to the scheduler) exceeds `schedule_timeout`. During such client-side processing and reporting, the scheduler might be awaiting these updates before sending its comprehensive scheduling response, and this entire period is subject to the `schedule_timeout`. **Configuration Guidance**: To prevent premature timeouts, `schedule_timeout` should be configured to a value greater than the maximum expected time for the *entire scheduling interaction*. This includes: 1. The scheduler's own processing and response time. 2. The time taken by the client to download any initial pieces and download all pieces finished, as this communication is part of the scheduling phase. Setting this value too low can lead to `TokioStreamElapsed` errors even if the network and scheduler are functioning correctly but the combined interaction time is longer than the configured timeout. |
| client.config.server.cacheDir | string | `"/var/cache/dragonfly/dfdaemon/"` | cacheDir is the directory to store cache files. |
| client.config.server.pluginDir | string | `"/var/lib/dragonfly/plugins/dfdaemon/"` | pluginDir is the directory to store plugins. |
| client.config.server.pluginDir | string | `"/usr/local/lib/dragonfly/plugins/dfdaemon/"` | pluginDir is the directory to store plugins. |
| client.config.stats.server.port | int | `4004` | port is the port to the stats server. |
| client.config.storage.dir | string | `"/var/lib/dragonfly/"` | dir is the directory to store task's metadata and content. |
| client.config.storage.keep | bool | `true` | keep indicates whether keep the task's metadata and content when the dfdaemon restarts. |
| client.config.storage.readBufferSize | int | `4194304` | readBufferSize is the buffer size for reading piece from disk, default is 4MiB. |
| client.config.storage.writeBufferSize | int | `4194304` | writeBufferSize is the buffer size for writing piece to disk, default is 4MiB. |
| client.config.storage.writePieceTimeout | string | `"30s"` | writePieceTimeout is the timeout for writing a piece to storage(e.g., disk or cache). |
| client.config.tracing.protocol | string | `""` | Protocol specifies the communication protocol for the tracing server. Supported values: "http", "https", "grpc" (default: None). This determines how tracing logs are transmitted to the server. |
| client.config.upload.disableShared | bool | `false` | disableShared indicates whether disable to share data with other peers. |
| client.config.upload.rateLimit | string | `"50GiB"` | rateLimit is the default rate limit of the upload speed in GiB/Mib/Kib per second, default is 50GiB/s. |
| client.config.upload.server.port | int | `4000` | port is the port to the grpc server. |
| client.config.upload.server.requestRateLimit | int | `4000` | request_rate_limit is the rate limit of the upload request in the upload grpc server, default is 4000 req/s. |
| client.config.verbose | bool | `true` | verbose prints log. |
| client.dfinit.config.console | bool | `true` | console prints log. |
| client.dfinit.config.containerRuntime.containerd.configPath | string | `"/etc/containerd/config.toml"` | configPath is the path of containerd configuration file. |
| client.dfinit.config.containerRuntime.containerd.registries | list | `[{"capabilities":["pull","resolve"],"hostNamespace":"docker.io","serverAddr":"https://index.docker.io","skipVerify":true},{"capabilities":["pull","resolve"],"hostNamespace":"ghcr.io","serverAddr":"https://ghcr.io","skipVerify":true}]` | registries is the list of containerd registries. hostNamespace is the location where container images and artifacts are sourced, refer to https://github.com/containerd/containerd/blob/main/docs/hosts.md#registry-host-namespace. The registry host namespace portion is [registry_host_name|IP address][:port], such as docker.io, ghcr.io, gcr.io, etc. serverAddr specifies the default server for this registry host namespace, refer to https://github.com/containerd/containerd/blob/main/docs/hosts.md#server-field. capabilities is the list of capabilities in containerd configuration, refer to https://github.com/containerd/containerd/blob/main/docs/hosts.md#capabilities-field. skip_verify is the flag to skip verifying the server's certificate, refer to https://github.com/containerd/containerd/blob/main/docs/hosts.md#bypass-tls-verification-example. ca (Certificate Authority Certification) can be set to a path or an array of paths each pointing to a ca file for use in authenticating with the registry namespace, refer to https://github.com/containerd/containerd/blob/main/docs/hosts.md#ca-field. |
| client.dfinit.config.log.level | string | `"info"` | Specify the logging level [trace, debug, info, warn, error] |
| client.dfinit.config.proxy.addr | string | `"http://127.0.0.1:4001"` | addr is the proxy server address of dfdaemon. |
| client.dfinit.config.verbose | bool | `true` | verbose prints log. |
| client.dfinit.enable | bool | `false` | Enable dfinit to override configuration of container runtime. |
| client.dfinit.image.digest | string | `""` | Image digest. |
| client.dfinit.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy. |
| client.dfinit.image.registry | string | `"docker.io"` | Image registry. |
| client.dfinit.image.repository | string | `"dragonflyoss/dfinit"` | Image repository. |
| client.dfinit.image.tag | string | `"v0.2.23"` | Image tag. |
| client.dfinit.image.tag | string | `"v1.0.9"` | Image tag. |
| client.dfinit.restartContainerRuntime | bool | `true` | restartContainerRuntime indicates whether to restart container runtime when dfinit is enabled. it should be set to true when your first install dragonfly. If non-hot load configuration changes are made, the container runtime needs to be restarted. |
| client.enable | bool | `true` | Enable client. |
| client.extraVolumeMounts | list | `[{"mountPath":"/var/lib/dragonfly/","name":"storage"},{"mountPath":"/var/log/dragonfly/dfdaemon/","name":"logs"}]` | Extra volumeMounts for dfdaemon. |
| client.extraVolumes | list | `[{"emptyDir":{},"name":"storage"},{"emptyDir":{},"name":"logs"}]` | Extra volumes for dfdaemon. |
@ -190,7 +194,7 @@ helm delete dragonfly --namespace dragonfly-system
| client.image.pullSecrets | list | `[]` (defaults to global.imagePullSecrets). | Image pull secrets. |
| client.image.registry | string | `"docker.io"` | Image registry. |
| client.image.repository | string | `"dragonflyoss/client"` | Image repository. |
| client.image.tag | string | `"v0.2.23"` | Image tag. |
| client.image.tag | string | `"v1.0.9"` | Image tag. |
| client.initContainer.image.digest | string | `""` | Image digest. |
| client.initContainer.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy. |
| client.initContainer.image.registry | string | `"docker.io"` | Image registry. |
@ -219,7 +223,7 @@ helm delete dragonfly --namespace dragonfly-system
| client.statefulsetAnnotations | object | `{}` | Statefulset annotations. |
| client.terminationGracePeriodSeconds | string | `nil` | Pod terminationGracePeriodSeconds. |
| client.tolerations | list | `[]` | List of node taints to tolerate. |
| client.updateStrategy | object | `{}` | Update strategy for replicas. |
| client.updateStrategy | object | `{"rollingUpdate":{"maxSurge":0,"maxUnavailable":20},"type":"RollingUpdate"}` | Update strategy for replicas. |
| clusterDomain | string | `"cluster.local"` | Install application cluster domain. |
| externalManager.grpcPort | int | `65003` | External GRPC service port. |
| externalManager.host | string | `nil` | External manager hostname. |
@ -236,6 +240,8 @@ helm delete dragonfly --namespace dragonfly-system
| externalRedis.db | int | `0` | External redis db. |
| externalRedis.masterName | string | `""` | External redis sentinel master name. |
| externalRedis.password | string | `""` | External redis password. |
| externalRedis.sentinelPassword | string | `""` | External redis sentinel password. |
| externalRedis.sentinelUsername | string | `""` | External redis sentinel addresses. |
| externalRedis.username | string | `""` | External redis username. |
| fullnameOverride | string | `""` | Override dragonfly fullname. |
| global.imagePullSecrets | list | `[]` | Global Docker registry secret names as an array. |
@ -250,7 +256,6 @@ helm delete dragonfly --namespace dragonfly-system
| manager.config.cache.local.ttl | string | `"3m"` | Local cache TTL duration. |
| manager.config.cache.redis.ttl | string | `"5m"` | Redis cache TTL duration. |
| manager.config.console | bool | `true` | Console shows log on console. |
| manager.config.jaeger | string | `""` | |
| manager.config.job.gc | object | `{"interval":"3h","ttl":"6h"}` | gc configuration. |
| manager.config.job.gc.interval | string | `"3h"` | interval is the interval of gc. |
| manager.config.job.gc.ttl | string | `"6h"` | ttl is the ttl of job. |
@ -264,16 +269,16 @@ helm delete dragonfly --namespace dragonfly-system
| manager.config.job.syncPeers | object | `{"interval":"24h","timeout":"10m"}` | Sync peers configuration. |
| manager.config.job.syncPeers.interval | string | `"24h"` | interval is the interval for syncing all peers information from the scheduler and display peers information in the manager console. |
| manager.config.job.syncPeers.timeout | string | `"10m"` | timeout is the timeout for syncing peers information from the single scheduler. |
| manager.config.network.enableIPv6 | bool | `false` | enableIPv6 enables ipv6. |
| manager.config.pprofPort | int | `-1` | Listen port for pprof, only valid when the verbose option is true default is -1. If it is 0, pprof will use a random port. |
| manager.config.pprofPort | int | `-1` | Listen port for pprof, default is -1 (meaning disabled). |
| manager.config.server.cacheDir | string | `""` | Dynconfig cache directory. |
| manager.config.server.grpc.advertiseIP | string | `""` | GRPC advertise ip. |
| manager.config.server.logDir | string | `""` | Log directory. |
| manager.config.server.logLevel | string | `"info"` | logLevel specifies the logging level for the manager. Default: "info" Supported values: "debug", "info", "warn", "error", "panic", "fatal" |
| manager.config.server.pluginDir | string | `""` | Plugin directory. |
| manager.config.server.rest.tls.cert | string | `""` | Certificate file path. |
| manager.config.server.rest.tls.key | string | `""` | Key file path. |
| manager.config.server.workHome | string | `""` | Work directory. |
| manager.config.verbose | bool | `false` | Whether to enable debug level logger and enable pprof. |
| manager.config.tracing.protocol | string | `"grpc"` | Protocol specifies the communication protocol for the tracing server. Supported values: "http", "https", "grpc" (default: None). This determines how tracing logs are transmitted to the server. |
| manager.deploymentAnnotations | object | `{}` | Deployment annotations. |
| manager.enable | bool | `true` | Enable manager. |
| manager.extraVolumeMounts | list | `[{"mountPath":"/var/log/dragonfly/manager","name":"logs"}]` | Extra volumeMounts for manager. |
@ -287,7 +292,7 @@ helm delete dragonfly --namespace dragonfly-system
| manager.image.pullSecrets | list | `[]` (defaults to global.imagePullSecrets). | Image pull secrets. |
| manager.image.registry | string | `"docker.io"` | Image registry. |
| manager.image.repository | string | `"dragonflyoss/manager"` | Image repository. |
| manager.image.tag | string | `"v2.2.2-rc.0"` | Image tag. |
| manager.image.tag | string | `"v2.3.1-rc.2"` | Image tag. |
| manager.ingress.annotations | object | `{}` | Ingress annotations. |
| manager.ingress.className | string | `""` | Ingress class name. Requirement: kubernetes >=1.18. |
| manager.ingress.enable | bool | `false` | Enable ingress. |
@ -350,21 +355,19 @@ helm delete dragonfly --namespace dragonfly-system
| scheduler.config.dynconfig.type | string | `"manager"` | Type is deprecated and is no longer used. Please remove it from your configuration. |
| scheduler.config.host.idc | string | `""` | IDC is the idc of scheduler instance. |
| scheduler.config.host.location | string | `""` | Location is the location of scheduler instance. |
| scheduler.config.jaeger | string | `""` | |
| scheduler.config.manager.keepAlive.interval | string | `"5s"` | Manager keepalive interval. |
| scheduler.config.manager.schedulerClusterID | int | `1` | Associated scheduler cluster id. |
| scheduler.config.network.enableIPv6 | bool | `false` | enableIPv6 enables ipv6. |
| scheduler.config.pprofPort | int | `-1` | Listen port for pprof, only valid when the verbose option is true. default is -1. If it is 0, pprof will use a random port. |
| scheduler.config.pprofPort | int | `-1` | Listen port for pprof, default is -1 (meaning disabled). |
| scheduler.config.scheduler.algorithm | string | `"default"` | Algorithm configuration to use different scheduling algorithms, default configuration supports "default", "ml" and "nt". "default" is the rule-based scheduling algorithm, "ml" is the machine learning scheduling algorithm. It also supports user plugin extension, the algorithm value is "plugin", and the compiled `d7y-scheduler-plugin-evaluator.so` file is added to the dragonfly working directory plugins. |
| scheduler.config.scheduler.backToSourceCount | int | `200` | backToSourceCount is single task allows the peer to back-to-source count. |
| scheduler.config.scheduler.gc.hostGCInterval | string | `"5m"` | hostGCInterval is the interval of host gc. |
| scheduler.config.scheduler.gc.hostTTL | string | `"1h"` | hostTTL is time to live of host. If host announces message to scheduler, then HostTTl will be reset. |
| scheduler.config.scheduler.gc.peerGCInterval | string | `"10s"` | peerGCInterval is the interval of peer gc. |
| scheduler.config.scheduler.gc.peerTTL | string | `"48h"` | peerTTL is the ttl of peer. If the peer has been downloaded by other peers, then PeerTTL will be reset. |
| scheduler.config.scheduler.gc.peerGCInterval | string | `"5m"` | peerGCInterval is the interval of peer gc. |
| scheduler.config.scheduler.gc.peerTTL | string | `"720h"` | peerTTL is the ttl of peer. If the peer has been downloaded by other peers, then PeerTTL will be reset. |
| scheduler.config.scheduler.gc.pieceDownloadTimeout | string | `"30m"` | pieceDownloadTimeout is the timeout of downloading piece. |
| scheduler.config.scheduler.gc.taskGCInterval | string | `"30m"` | taskGCInterval is the interval of task gc. If all the peers have been reclaimed in the task, then the task will also be reclaimed. |
| scheduler.config.scheduler.retryBackToSourceLimit | int | `3` | retryBackToSourceLimit reaches the limit, then the peer back-to-source. |
| scheduler.config.scheduler.retryInterval | string | `"50ms"` | Retry scheduling interval. |
| scheduler.config.scheduler.retryInterval | string | `"1s"` | Retry scheduling interval. |
| scheduler.config.scheduler.retryLimit | int | `5` | Retry scheduling limit times. |
| scheduler.config.seedPeer.enable | bool | `true` | scheduler enable seed peer as P2P peer, if the value is false, P2P network will not be back-to-source through seed peer but by dfdaemon and preheat feature does not work. |
| scheduler.config.server.advertiseIP | string | `""` | Advertise ip. |
@ -373,10 +376,11 @@ helm delete dragonfly --namespace dragonfly-system
| scheduler.config.server.dataDir | string | `""` | Storage directory. |
| scheduler.config.server.listenIP | string | `"0.0.0.0"` | Listen ip. |
| scheduler.config.server.logDir | string | `""` | Log directory. |
| scheduler.config.server.logLevel | string | `"info"` | logLevel specifies the logging level for the scheduler. Default: "info" Supported values: "debug", "info", "warn", "error", "panic", "fatal" |
| scheduler.config.server.pluginDir | string | `""` | Plugin directory. |
| scheduler.config.server.port | int | `8002` | Server port. |
| scheduler.config.server.workHome | string | `""` | Work directory. |
| scheduler.config.verbose | bool | `false` | Whether to enable debug level logger and enable pprof. |
| scheduler.config.tracing.protocol | string | `""` | Protocol specifies the communication protocol for the tracing server. Supported values: "http", "https", "grpc" (default: None). This determines how tracing logs are transmitted to the server. |
| scheduler.containerPort | int | `8002` | Pod containerPort. |
| scheduler.enable | bool | `true` | Enable scheduler. |
| scheduler.extraVolumeMounts | list | `[{"mountPath":"/var/log/dragonfly/scheduler","name":"logs"}]` | Extra volumeMounts for scheduler. |
@ -389,7 +393,7 @@ helm delete dragonfly --namespace dragonfly-system
| scheduler.image.pullSecrets | list | `[]` (defaults to global.imagePullSecrets). | Image pull secrets. |
| scheduler.image.registry | string | `"docker.io"` | Image registry. |
| scheduler.image.repository | string | `"dragonflyoss/scheduler"` | Image repository. |
| scheduler.image.tag | string | `"v2.2.2-rc.0"` | Image tag. |
| scheduler.image.tag | string | `"v2.3.1-rc.2"` | Image tag. |
| scheduler.initContainer.image.digest | string | `""` | Image digest. |
| scheduler.initContainer.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy. |
| scheduler.initContainer.image.registry | string | `"docker.io"` | Image registry. |
@ -425,8 +429,10 @@ helm delete dragonfly --namespace dragonfly-system
| scheduler.terminationGracePeriodSeconds | string | `nil` | Pod terminationGracePeriodSeconds. |
| scheduler.tolerations | list | `[]` | List of node taints to tolerate. |
| scheduler.updateStrategy | object | `{}` | Update strategy for replicas. |
| seedClient.config.console | bool | `true` | console prints log. |
| seedClient.config.download.collectedPieceTimeout | string | `"10s"` | collected_piece_timeout is the timeout for collecting one piece from the parent in the stream. |
| seedClient.config.download.concurrentPieceCount | int | `16` | concurrentPieceCount is the number of concurrent pieces to download. |
| seedClient.config.download.pieceTimeout | string | `"30s"` | pieceTimeout is the timeout for downloading a piece from source. |
| seedClient.config.download.pieceTimeout | string | `"40s"` | pieceTimeout is the timeout for downloading a piece from source. |
| seedClient.config.download.rateLimit | string | `"50GiB"` | rateLimit is the default rate limit of the download speed in GiB/Mib/Kib per second, default is 50GiB/s. |
| seedClient.config.download.server.requestRateLimit | int | `4000` | request_rate_limit is the rate limit of the download request in the download grpc server, default is 4000 req/s. |
| seedClient.config.download.server.socketPath | string | `"/var/run/dragonfly/dfdaemon.sock"` | socketPath is the unix socket path for dfdaemon GRPC service. |
@ -434,7 +440,7 @@ helm delete dragonfly --namespace dragonfly-system
| seedClient.config.gc.interval | string | `"900s"` | interval is the interval to do gc. |
| seedClient.config.gc.policy.distHighThresholdPercent | int | `80` | distHighThresholdPercent is the high threshold percent of the disk usage. If the disk usage is greater than the threshold, dfdaemon will do gc. |
| seedClient.config.gc.policy.distLowThresholdPercent | int | `60` | distLowThresholdPercent is the low threshold percent of the disk usage. If the disk usage is less than the threshold, dfdaemon will stop gc. |
| seedClient.config.gc.policy.taskTTL | string | `"168h"` | taskTTL is the ttl of the task. |
| seedClient.config.gc.policy.taskTTL | string | `"720h"` | taskTTL is the ttl of the task. |
| seedClient.config.health.server.port | int | `4003` | port is the port to the health server. |
| seedClient.config.host | object | `{"idc":"","location":""}` | host is the host configuration for dfdaemon. |
| seedClient.config.log.level | string | `"info"` | Specify the logging level [trace, debug, info, warn, error] |
@ -449,22 +455,23 @@ helm delete dragonfly --namespace dragonfly-system
| seedClient.config.proxy.server.port | int | `4001` | port is the port to the proxy server. |
| seedClient.config.scheduler.announceInterval | string | `"1m"` | announceInterval is the interval to announce peer to the scheduler. Announcer will provide the scheduler with peer information for scheduling, peer information includes cpu, memory, etc. |
| seedClient.config.scheduler.maxScheduleCount | int | `5` | maxScheduleCount is the max count of schedule. |
| seedClient.config.scheduler.scheduleTimeout | string | `"30s"` | scheduleTimeout is the timeout for scheduling. If the scheduling timesout, dfdaemon will back-to-source download if enableBackToSource is true, otherwise dfdaemon will return download failed. |
| seedClient.config.scheduler.scheduleTimeout | string | `"3h"` | scheduleTimeout is timeout for the scheduler to respond to a scheduling request from dfdaemon, default is 3 hours. If the scheduler's response time for a scheduling decision exceeds this timeout, dfdaemon will encounter a `TokioStreamElapsed(Elapsed(()))` error. Behavior upon timeout: - If `enable_back_to_source` is `true`, dfdaemon will attempt to download directly from the source. - Otherwise (if `enable_back_to_source` is `false`), dfdaemon will report a download failure. **Important Considerations Regarding Timeout Triggers**: This timeout isn't solely for the scheduler's direct response. It can also be triggered if the overall duration of the client's interaction with the scheduler for a task (e.g., client downloading initial pieces and reporting their status back to the scheduler) exceeds `schedule_timeout`. During such client-side processing and reporting, the scheduler might be awaiting these updates before sending its comprehensive scheduling response, and this entire period is subject to the `schedule_timeout`. **Configuration Guidance**: To prevent premature timeouts, `schedule_timeout` should be configured to a value greater than the maximum expected time for the *entire scheduling interaction*. This includes: 1. The scheduler's own processing and response time. 2. The time taken by the client to download any initial pieces and download all pieces finished, as this communication is part of the scheduling phase. Setting this value too low can lead to `TokioStreamElapsed` errors even if the network and scheduler are functioning correctly but the combined interaction time is longer than the configured timeout. |
| seedClient.config.seedPeer.clusterID | int | `1` | clusterID is the cluster id of the seed peer cluster. |
| seedClient.config.seedPeer.enable | bool | `true` | enable indicates whether enable seed peer. |
| seedClient.config.seedPeer.keepaliveInterval | string | `"15s"` | keepaliveInterval is the interval to keep alive with manager. |
| seedClient.config.seedPeer.type | string | `"super"` | type is the type of seed peer. |
| seedClient.config.server.cacheDir | string | `"/var/cache/dragonfly/dfdaemon/"` | cacheDir is the directory to store cache files. |
| seedClient.config.server.pluginDir | string | `"/var/lib/dragonfly/plugins/dfdaemon/"` | pluginDir is the directory to store plugins. |
| seedClient.config.server.pluginDir | string | `"/usr/local/lib/dragonfly/plugins/dfdaemon/"` | pluginDir is the directory to store plugins. |
| seedClient.config.stats.server.port | int | `4004` | port is the port to the stats server. |
| seedClient.config.storage.dir | string | `"/var/lib/dragonfly/"` | dir is the directory to store task's metadata and content. |
| seedClient.config.storage.keep | bool | `true` | keep indicates whether keep the task's metadata and content when the dfdaemon restarts. |
| seedClient.config.storage.readBufferSize | int | `4194304` | readBufferSize is the buffer size for reading piece from disk, default is 4MiB. |
| seedClient.config.storage.writeBufferSize | int | `4194304` | writeBufferSize is the buffer size for writing piece to disk, default is 4MiB. |
| seedClient.config.storage.writePieceTimeout | string | `"30s"` | writePieceTimeout is the timeout for writing a piece to storage(e.g., disk or cache). |
| seedClient.config.tracing.protocol | string | `""` | Protocol specifies the communication protocol for the tracing server. Supported values: "http", "https", "grpc" (default: None). This determines how tracing logs are transmitted to the server. |
| seedClient.config.upload.rateLimit | string | `"50GiB"` | rateLimit is the default rate limit of the upload speed in GiB/Mib/Kib per second, default is 50GiB/s. |
| seedClient.config.upload.server.port | int | `4000` | port is the port to the grpc server. |
| seedClient.config.upload.server.requestRateLimit | int | `4000` | request_rate_limit is the rate limit of the upload request in the upload grpc server, default is 4000 req/s. |
| seedClient.config.verbose | bool | `true` | verbose prints log. |
| seedClient.enable | bool | `true` | Enable seed client. |
| seedClient.extraVolumeMounts | list | `[{"mountPath":"/var/log/dragonfly/dfdaemon/","name":"logs"}]` | Extra volumeMounts for dfdaemon. |
| seedClient.extraVolumes | list | `[{"emptyDir":{},"name":"logs"}]` | Extra volumes for dfdaemon. |
@ -476,7 +483,7 @@ helm delete dragonfly --namespace dragonfly-system
| seedClient.image.pullSecrets | list | `[]` (defaults to global.imagePullSecrets). | Image pull secrets. |
| seedClient.image.registry | string | `"docker.io"` | Image registry. |
| seedClient.image.repository | string | `"dragonflyoss/client"` | Image repository. |
| seedClient.image.tag | string | `"v0.2.23"` | Image tag. |
| seedClient.image.tag | string | `"v1.0.9"` | Image tag. |
| seedClient.initContainer.image.digest | string | `""` | Image digest. |
| seedClient.initContainer.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy. |
| seedClient.initContainer.image.registry | string | `"docker.io"` | Image registry. |

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.fullname" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.client.name }}
@ -44,8 +43,6 @@ data:
{{ toYaml .Values.client.config.metrics | indent 6 }}
stats:
{{ toYaml .Values.client.config.stats | indent 6 }}
{{- if .Values.client.config.tracing }}
tracing:
{{ toYaml .Values.client.config.tracing | indent 6 }}
{{- end }}
{{- end }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.fullname" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.client.name }}
@ -23,18 +22,19 @@ spec:
matchLabels:
app: {{ template "dragonfly.fullname" . }}
component: "{{ .Values.client.name }}"
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "dragonfly.fullname" . }}
component: "{{ .Values.client.name }}"
release: {{ .Release.Name }}
{{- if .Values.client.podLabels }}
{{ toYaml .Values.client.podLabels | indent 8 }}
{{- end }}
annotations:
checksum/config: {{ include (print $.Template.BasePath "/client/client-configmap.yaml") . | sha256sum }}
{{- if .Values.client.dfinit.enable }}
checksum/dfinit-config: {{ include (print $.Template.BasePath "/client/dfinit-configmap.yaml") . | sha256sum }}
{{- end }}
{{- if .Values.client.podAnnotations }}
{{ toYaml .Values.client.podAnnotations | indent 8 }}
{{- end }}
@ -84,8 +84,8 @@ spec:
imagePullPolicy: {{ .Values.client.dfinit.image.pullPolicy }}
args:
- --log-level={{ .Values.client.dfinit.config.log.level }}
{{- if .Values.client.dfinit.config.verbose }}
- --verbose
{{- if .Values.client.dfinit.config.console }}
- --console
{{- end }}
resources:
{{ toYaml .Values.client.initContainer.resources | indent 10 }}
@ -109,7 +109,7 @@ spec:
mountPath: {{ dir .Values.client.dfinit.config.containerRuntime.docker.configPath }}
{{- end }}
{{- end }}
{{- if .Values.client.dfinit.enable }}
{{- if and .Values.client.dfinit.enable .Values.client.dfinit.restartContainerRuntime }}
- name: restart-container-runtime
image: {{ template "client.initContainer.image" . }}
imagePullPolicy: {{ .Values.client.initContainer.image.pullPolicy }}
@ -144,8 +144,8 @@ spec:
imagePullPolicy: {{ .Values.client.image.pullPolicy | quote }}
args:
- --log-level={{ .Values.client.config.log.level }}
{{- if .Values.client.config.verbose }}
- --verbose
{{- if .Values.client.config.console }}
- --console
{{- end }}
resources:
{{ toYaml .Values.client.resources | indent 10 }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.fullname" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.client.name }}

View File

@ -1,4 +1,4 @@
{{- if and .Values.client.metrics.enable .Values.client.metrics.serviceMonitor.enable }}
{{- if .Values.client.metrics.enable }}
apiVersion: v1
kind: Service
metadata:
@ -6,12 +6,11 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.client.name }}-metrics
{{- if .Values.client.metrics.service.labels }}
{{ toYaml .Values.metrics.service.labels | indent 4 }}
{{ toYaml .Values.client.metrics.service.labels | indent 4 }}
{{- end }}
{{- if .Values.client.metrics.service.annotations }}
annotations:
@ -28,5 +27,4 @@ spec:
selector:
app: {{ template "dragonfly.fullname" . }}
component: {{ .Values.client.name }}
release: {{ .Release.Name }}
{{- end }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.client.name }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.client.name }}
@ -28,6 +27,5 @@ spec:
selector:
matchLabels:
app: {{ template "dragonfly.name" . }}
release: {{ .Release.Name }}
component: {{ .Values.client.name }}-metrics
{{- end }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.fullname" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.manager.name }}
@ -26,6 +25,7 @@ data:
start: {{ .Values.manager.grpcPort }}
end: {{ .Values.manager.grpcPort }}
workHome: {{ .Values.manager.config.server.workHome }}
logLevel: {{ .Values.manager.config.server.logLevel }}
logDir: {{ .Values.manager.config.server.logDir }}
cacheDir: {{ .Values.manager.config.server.cacheDir }}
pluginDir: {{ .Values.manager.config.server.pluginDir }}
@ -59,6 +59,8 @@ data:
masterName: {{ .Values.externalRedis.masterName }}
username: {{ .Values.externalRedis.username }}
password: {{ .Values.externalRedis.password }}
sentinelUsername: {{ .Values.externalRedis.sentinelUsername }}
sentinelPassword: {{ .Values.externalRedis.sentinelPassword }}
db: {{ .Values.externalRedis.db }}
brokerDB: {{ .Values.externalRedis.brokerDB }}
backendDB: {{ .Values.externalRedis.backendDB }}
@ -73,11 +75,7 @@ data:
enable: {{ .Values.manager.metrics.enable }}
addr: ":8000"
console: {{ .Values.manager.config.console }}
verbose: {{ .Values.manager.config.verbose }}
{{- if .Values.manager.config.verbose }}
pprof-port: {{ .Values.manager.config.pprofPort }}
{{- end }}
{{- if .Values.manager.config.jaeger }}
jaeger: {{ .Values.manager.config.jaeger }}
{{- end }}
pprofPort: {{ .Values.manager.config.pprofPort }}
tracing:
{{ toYaml .Values.manager.config.tracing | indent 6 }}
{{- end }}

View File

@ -4,7 +4,6 @@ kind: Deployment
metadata:
labels:
app: {{ template "dragonfly.fullname" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.manager.name }}
@ -23,13 +22,11 @@ spec:
matchLabels:
app: {{ template "dragonfly.fullname" . }}
component: {{ .Values.manager.name }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "dragonfly.fullname" . }}
component: {{ .Values.manager.name }}
release: {{ .Release.Name }}
{{- if .Values.manager.podLabels }}
{{ toYaml .Values.manager.podLabels | indent 8 }}
{{- end }}

View File

@ -12,7 +12,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.manager.name }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.manager.name }}
@ -35,6 +34,5 @@ spec:
{{- end }}
selector:
app: {{ template "dragonfly.fullname" . }}
release: {{ .Release.Name }}
component: {{ .Values.manager.name }}
{{- end }}

View File

@ -6,12 +6,11 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.manager.name }}-metrics
{{- if .Values.manager.metrics.service.labels }}
{{ toYaml .Values.metrics.service.labels | indent 4 }}
{{ toYaml .Values.manager.metrics.service.labels | indent 4 }}
{{- end }}
{{- if .Values.manager.metrics.service.annotations }}
annotations:
@ -27,6 +26,5 @@ spec:
targetPort: 8000
selector:
app: {{ template "dragonfly.fullname" . }}
release: {{ .Release.Name }}
component: {{ .Values.manager.name }}
{{- end }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.manager.name }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.manager.name }}
@ -28,6 +27,5 @@ spec:
selector:
matchLabels:
app: {{ template "dragonfly.name" . }}
release: {{ .Release.Name }}
component: {{ .Values.manager.name }}-metrics
{{- end }}

View File

@ -6,12 +6,11 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.scheduler.name }}-metrics
{{- if .Values.scheduler.metrics.service.labels }}
{{ toYaml .Values.metrics.service.labels | indent 4 }}
{{ toYaml .Values.scheduler.metrics.service.labels | indent 4 }}
{{- end }}
{{- if .Values.scheduler.metrics.service.annotations }}
annotations:
@ -28,5 +27,4 @@ spec:
selector:
app: {{ template "dragonfly.fullname" . }}
component: {{ .Values.scheduler.name }}
release: {{ .Release.Name }}
{{- end }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.scheduler.name }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.fullname" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.scheduler.name }}
@ -28,6 +27,8 @@ data:
masterName: {{ .Values.externalRedis.masterName }}
username: {{ .Values.externalRedis.username }}
password: {{ .Values.externalRedis.password }}
sentinelUsername: {{ .Values.externalRedis.sentinelUsername }}
sentinelPassword: {{ .Values.externalRedis.sentinelPassword }}
brokerDB: {{ .Values.externalRedis.brokerDB }}
backendDB: {{ .Values.externalRedis.backendDB }}
{{- end }}
@ -58,6 +59,8 @@ data:
masterName: {{ .Values.externalRedis.masterName }}
username: {{ .Values.externalRedis.username }}
password: {{ .Values.externalRedis.password }}
sentinelUsername: {{ .Values.externalRedis.sentinelUsername }}
sentinelPassword: {{ .Values.externalRedis.sentinelPassword }}
brokerDB: {{ .Values.externalRedis.brokerDB }}
backendDB: {{ .Values.externalRedis.backendDB }}
{{- end }}
@ -70,11 +73,7 @@ data:
addr: ":8000"
enableHost: {{ .Values.scheduler.metrics.enableHost }}
console: {{ .Values.scheduler.config.console }}
verbose: {{ .Values.scheduler.config.verbose }}
{{- if .Values.scheduler.config.verbose }}
pprof-port: {{ .Values.scheduler.config.pprofPort }}
{{- end }}
{{- if .Values.scheduler.config.jaeger }}
jaeger: {{ .Values.scheduler.config.jaeger }}
{{- end }}
pprofPort: {{ .Values.scheduler.config.pprofPort }}
tracing:
{{ toYaml .Values.scheduler.config.tracing | indent 6 }}
{{- end }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.fullname" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.scheduler.name }}
@ -23,14 +22,12 @@ spec:
selector:
matchLabels:
app: {{ template "dragonfly.fullname" . }}
release: {{ .Release.Name }}
component: {{ .Values.scheduler.name }}
serviceName: scheduler
template:
metadata:
labels:
app: {{ template "dragonfly.fullname" . }}
release: {{ .Release.Name }}
component: {{ .Values.scheduler.name }}
{{- if .Values.scheduler.podLabels }}
{{ toYaml .Values.scheduler.podLabels | indent 8 }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.scheduler.name }}
@ -30,6 +29,5 @@ spec:
{{- end }}
selector:
app: {{ template "dragonfly.fullname" . }}
release: {{ .Release.Name }}
component: {{ .Values.scheduler.name }}
{{- end }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.scheduler.name }}
@ -28,6 +27,5 @@ spec:
selector:
matchLabels:
app: {{ template "dragonfly.name" . }}
release: {{ .Release.Name }}
component: {{ .Values.scheduler.name }}-metrics
{{- end }}

View File

@ -1,4 +1,4 @@
{{- if and .Values.seedClient.metrics.enable .Values.seedClient.metrics.serviceMonitor.enable }}
{{- if .Values.seedClient.metrics.enable }}
apiVersion: v1
kind: Service
metadata:
@ -6,12 +6,11 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.seedClient.name }}-metrics
{{- if .Values.seedClient.metrics.service.labels }}
{{ toYaml .Values.metrics.service.labels | indent 4 }}
{{ toYaml .Values.seedClient.metrics.service.labels | indent 4 }}
{{- end }}
{{- if .Values.seedClient.metrics.service.annotations }}
annotations:
@ -28,5 +27,4 @@ spec:
selector:
app: {{ template "dragonfly.fullname" . }}
component: {{ .Values.seedClient.name }}
release: {{ .Release.Name }}
{{- end }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.seedClient.name }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.fullname" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.seedClient.name }}
@ -46,8 +45,6 @@ data:
{{ toYaml .Values.seedClient.config.metrics | indent 6 }}
stats:
{{ toYaml .Values.seedClient.config.stats | indent 6 }}
{{- if .Values.client.config.tracing }}
tracing:
{{ toYaml .Values.client.config.tracing | indent 6 }}
{{- end }}
{{ toYaml .Values.seedClient.config.tracing | indent 6 }}
{{- end }}

View File

@ -4,7 +4,6 @@ kind: StatefulSet
metadata:
labels:
app: {{ template "dragonfly.fullname" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.seedClient.name }}
@ -24,14 +23,12 @@ spec:
matchLabels:
app: {{ template "dragonfly.fullname" . }}
component: {{ .Values.seedClient.name }}
release: {{ .Release.Name }}
serviceName: seed-client
template:
metadata:
labels:
app: {{ template "dragonfly.fullname" . }}
component: {{ .Values.seedClient.name }}
release: {{ .Release.Name }}
{{- if .Values.seedClient.podLabels }}
{{ toYaml .Values.seedClient.podLabels | indent 8 }}
{{- end }}
@ -88,8 +85,8 @@ spec:
imagePullPolicy: {{ .Values.seedClient.image.pullPolicy | quote }}
args:
- --log-level={{ .Values.client.config.log.level }}
{{- if .Values.seedClient.config.verbose }}
- --verbose
{{- if .Values.seedClient.config.console }}
- --console
{{- end }}
resources:
{{ toYaml .Values.seedClient.resources | indent 10 }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.seedClient.name }}
@ -40,6 +39,5 @@ spec:
{{- end }}
selector:
app: {{ template "dragonfly.fullname" . }}
release: {{ .Release.Name }}
component: {{ .Values.seedClient.name }}
{{- end }}

View File

@ -6,7 +6,6 @@ metadata:
namespace: {{ include "common.names.namespace" . | quote }}
labels:
app: {{ template "dragonfly.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: {{ .Values.seedClient.name }}
@ -28,6 +27,5 @@ spec:
selector:
matchLabels:
app: {{ template "dragonfly.name" . }}
release: {{ .Release.Name }}
component: {{ .Values.seedClient.name }}-metrics
{{- end }}

View File

@ -39,7 +39,7 @@ manager:
# -- Image repository.
repository: dragonflyoss/manager
# -- Image tag.
tag: v2.2.2-rc.0
tag: v2.3.1-rc.2
# -- Image digest.
digest: ""
# -- Image pull policy.
@ -153,6 +153,10 @@ manager:
key: ""
# -- Work directory.
workHome: ""
# -- logLevel specifies the logging level for the manager.
# Default: "info"
# Supported values: "debug", "info", "warn", "error", "panic", "fatal"
logLevel: "info"
# -- Log directory.
logDir: ""
# -- Dynconfig cache directory.
@ -214,18 +218,21 @@ manager:
insecureSkipVerify: false
# # caCert is the CA certificate for preheat tls handshake, it can be path or PEM format string.
# caCert: ''
network:
# -- enableIPv6 enables ipv6.
enableIPv6: false
# -- Console shows log on console.
console: true
# -- Whether to enable debug level logger and enable pprof.
verbose: false
# -- Listen port for pprof, only valid when the verbose option is true
# default is -1. If it is 0, pprof will use a random port.
# -- Listen port for pprof, default is -1 (meaning disabled).
pprofPort: -1
# - Jaeger endpoint url, like: http://jaeger.dragonfly.svc:14268/api/traces.
jaeger: ""
tracing:
# -- Protocol specifies the communication protocol for the tracing server.
# Supported values: "http", "https", "grpc" (default: None).
# This determines how tracing logs are transmitted to the server.
protocol: "grpc"
# # endpoint is the endpoint to report tracing log, example: "localhost:4317".
# endpoint: ""
# # path is the path to report tracing log, example: "/v1/traces" if the protocol is "http" or "https".
# path: ""
# # headers is the grpc's headers to send with tracing log.
# headers: {}
metrics:
# -- Enable manager metrics.
enable: true
@ -315,7 +322,7 @@ scheduler:
# -- Image repository.
repository: dragonflyoss/scheduler
# -- Image tag.
tag: v2.2.2-rc.0
tag: v2.3.1-rc.2
# -- Image digest.
digest: ""
# -- Image pull policy.
@ -411,6 +418,10 @@ scheduler:
#
# -- Work directory.
workHome: ""
# -- logLevel specifies the logging level for the scheduler.
# Default: "info"
# Supported values: "debug", "info", "warn", "error", "panic", "fatal"
logLevel: "info"
# -- Log directory.
logDir: ""
# -- Dynconfig cache directory.
@ -434,15 +445,15 @@ scheduler:
# -- Retry scheduling limit times.
retryLimit: 5
# -- Retry scheduling interval.
retryInterval: 50ms
retryInterval: 1s
gc:
# -- pieceDownloadTimeout is the timeout of downloading piece.
pieceDownloadTimeout: 30m
# -- peerGCInterval is the interval of peer gc.
peerGCInterval: 10s
peerGCInterval: 5m
# -- peerTTL is the ttl of peer. If the peer has been downloaded by other peers,
# then PeerTTL will be reset.
peerTTL: 48h
peerTTL: 720h
# -- taskGCInterval is the interval of task gc. If all the peers have been reclaimed in the task,
# then the task will also be reclaimed.
taskGCInterval: 30m
@ -489,18 +500,21 @@ scheduler:
# cert: /etc/ssl/certs/client.crt
# # Key file path for mTLS.
# key: /etc/ssl/private/client.pem
network:
# -- enableIPv6 enables ipv6.
enableIPv6: false
# -- Console shows log on console.
console: true
# -- Whether to enable debug level logger and enable pprof.
verbose: false
# -- Listen port for pprof, only valid when the verbose option is true.
# default is -1. If it is 0, pprof will use a random port.
# -- Listen port for pprof, default is -1 (meaning disabled).
pprofPort: -1
# - Jaeger endpoint url, like: http://jaeger.dragonfly.svc:14268/api/traces.
jaeger: ""
tracing:
# -- Protocol specifies the communication protocol for the tracing server.
# Supported values: "http", "https", "grpc" (default: None).
# This determines how tracing logs are transmitted to the server.
protocol: ""
# # endpoint is the endpoint to report tracing log, example: "localhost:4317".
# endpoint: ""
# # path is the path to report tracing log, example: "/v1/traces" if the protocol is "http" or "https".
# path: ""
# # headers is the grpc's headers to send with tracing log.
# headers: {}
metrics:
# -- Enable scheduler metrics.
enable: true
@ -688,7 +702,7 @@ seedClient:
# -- Image repository.
repository: dragonflyoss/client
# -- Image tag.
tag: v0.2.23
tag: v1.0.9
# -- Image digest.
digest: ""
# -- Image pull policy.
@ -780,8 +794,8 @@ seedClient:
# -- Service nodePort.
nodePort: ""
config:
# -- verbose prints log.
verbose: true
# -- console prints log.
console: true
log:
# -- Specify the logging level [trace, debug, info, warn, error]
level: info
@ -797,7 +811,7 @@ seedClient:
# ip: ""
server:
# -- pluginDir is the directory to store plugins.
pluginDir: /var/lib/dragonfly/plugins/dfdaemon/
pluginDir: /usr/local/lib/dragonfly/plugins/dfdaemon/
# -- cacheDir is the directory to store cache files.
cacheDir: /var/cache/dragonfly/dfdaemon/
download:
@ -809,7 +823,9 @@ seedClient:
# -- rateLimit is the default rate limit of the download speed in GiB/Mib/Kib per second, default is 50GiB/s.
rateLimit: 50GiB
# -- pieceTimeout is the timeout for downloading a piece from source.
pieceTimeout: 30s
pieceTimeout: 40s
# -- collected_piece_timeout is the timeout for collecting one piece from the parent in the stream.
collectedPieceTimeout: 10s
# -- concurrentPieceCount is the number of concurrent pieces to download.
concurrentPieceCount: 16
upload:
@ -851,9 +867,36 @@ seedClient:
# Announcer will provide the scheduler with peer information for scheduling,
# peer information includes cpu, memory, etc.
announceInterval: 1m
# -- scheduleTimeout is the timeout for scheduling. If the scheduling timesout, dfdaemon will back-to-source
# download if enableBackToSource is true, otherwise dfdaemon will return download failed.
scheduleTimeout: 30s
# -- scheduleTimeout is timeout for the scheduler to respond to a scheduling request from dfdaemon, default is 3 hours.
#
# If the scheduler's response time for a scheduling decision exceeds this timeout,
# dfdaemon will encounter a `TokioStreamElapsed(Elapsed(()))` error.
#
# Behavior upon timeout:
# - If `enable_back_to_source` is `true`, dfdaemon will attempt to download directly
# from the source.
# - Otherwise (if `enable_back_to_source` is `false`), dfdaemon will report a download failure.
#
# **Important Considerations Regarding Timeout Triggers**:
# This timeout isn't solely for the scheduler's direct response. It can also be triggered
# if the overall duration of the client's interaction with the scheduler for a task
# (e.g., client downloading initial pieces and reporting their status back to the scheduler)
# exceeds `schedule_timeout`. During such client-side processing and reporting,
# the scheduler might be awaiting these updates before sending its comprehensive
# scheduling response, and this entire period is subject to the `schedule_timeout`.
#
# **Configuration Guidance**:
# To prevent premature timeouts, `schedule_timeout` should be configured to a value
# greater than the maximum expected time for the *entire scheduling interaction*.
# This includes:
# 1. The scheduler's own processing and response time.
# 2. The time taken by the client to download any initial pieces and download all pieces finished,
# as this communication is part of the scheduling phase.
#
# Setting this value too low can lead to `TokioStreamElapsed` errors even if the
# network and scheduler are functioning correctly but the combined interaction time
# is longer than the configured timeout.
scheduleTimeout: 3h
# -- maxScheduleCount is the max count of schedule.
maxScheduleCount: 5
# # CA certificate file path for mTLS.
@ -883,12 +926,26 @@ seedClient:
writeBufferSize: 4194304
# -- readBufferSize is the buffer size for reading piece from disk, default is 4MiB.
readBufferSize: 4194304
# -- writePieceTimeout is the timeout for writing a piece to storage(e.g., disk or cache).
writePieceTimeout: 30s
gc:
# -- interval is the interval to do gc.
interval: 900s
policy:
# -- taskTTL is the ttl of the task.
taskTTL: 168h
taskTTL: 720h
# # distThreshold optionally defines a specific disk capacity to be used as the base for
# # calculating GC trigger points with `distHighThresholdPercent` and `distLowThresholdPercent`.
# #
# # - If a value is provided (e.g., "500GB"), the percentage-based thresholds (`distHighThresholdPercent`,
# # `distLowThresholdPercent`) are applied relative to this specified capacity.
# # - If not provided or set to 0 (the default behavior), these percentage-based thresholds are applied
# # relative to the total actual disk space.
# #
# # This allows dfdaemon to effectively manage a logical portion of the disk for its cache,
# # rather than always considering the entire disk volume.
#
# distThreshold: 10TiB
# -- distHighThresholdPercent is the high threshold percent of the disk usage.
# If the disk usage is greater than the threshold, dfdaemon will do gc.
distHighThresholdPercent: 80
@ -989,10 +1046,17 @@ seedClient:
port: 4004
# # ip is the listen ip of the stats server.
# ip: ""
# # tracing is the tracing configuration for dfdaemon.
# tracing:
# # addr is the address to report tracing log.
# addr: ""
tracing:
# -- Protocol specifies the communication protocol for the tracing server.
# Supported values: "http", "https", "grpc" (default: None).
# This determines how tracing logs are transmitted to the server.
protocol: ""
# # endpoint is the endpoint to report tracing log, example: "localhost:4317".
# endpoint: ""
# # path is the path to report tracing log, example: "/v1/traces" if the protocol is "http" or "https".
# path: ""
# # headers is the grpc's headers to send with tracing log.
# headers: {}
metrics:
# -- Enable seed client metrics.
enable: true
@ -1064,7 +1128,7 @@ client:
# -- Image repository.
repository: dragonflyoss/client
# -- Image tag.
tag: v0.2.23
tag: v1.0.9
# -- Image digest.
digest: ""
# -- Image pull policy.
@ -1101,7 +1165,11 @@ client:
# -- Pod labels.
podLabels: {}
# -- Update strategy for replicas.
updateStrategy: {}
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0
maxUnavailable: 20
# -- Statefulset annotations.
statefulsetAnnotations: {}
initContainer:
@ -1139,20 +1207,22 @@ client:
dfinit:
# -- Enable dfinit to override configuration of container runtime.
enable: false
# -- restartContainerRuntime indicates whether to restart container runtime when dfinit is enabled. it should be set to true when your first install dragonfly. If non-hot load configuration changes are made, the container runtime needs to be restarted.
restartContainerRuntime: true
image:
# -- Image registry.
registry: docker.io
# -- Image repository.
repository: dragonflyoss/dfinit
# -- Image tag.
tag: v0.2.23
tag: v1.0.9
# -- Image digest.
digest: ""
# -- Image pull policy.
pullPolicy: IfNotPresent
config:
# -- verbose prints log.
verbose: true
# -- console prints log.
console: true
log:
# -- Specify the logging level [trace, debug, info, warn, error]
level: info
@ -1220,8 +1290,8 @@ client:
# # Refer to https://docs.docker.com/engine/daemon/proxy/
# configPath: /etc/docker/daemon.json
config:
# -- verbose prints log.
verbose: true
# -- console prints log.
console: true
log:
# -- Specify the logging level [trace, debug, info, warn, error]
level: info
@ -1237,7 +1307,7 @@ client:
# ip: ""
server:
# -- pluginDir is the directory to store plugins.
pluginDir: /var/lib/dragonfly/plugins/dfdaemon/
pluginDir: /usr/local/lib/dragonfly/plugins/dfdaemon/
# -- cacheDir is the directory to store cache files.
cacheDir: /var/cache/dragonfly/dfdaemon/
download:
@ -1249,9 +1319,11 @@ client:
# -- rateLimit is the default rate limit of the download speed in GiB/Mib/Kib per second, default is 50GiB/s.
rateLimit: 50GiB
# -- pieceTimeout is the timeout for downloading a piece from source.
pieceTimeout: 30s
pieceTimeout: 40s
# -- collected_piece_timeout is the timeout for collecting one piece from the parent in the stream.
collectedPieceTimeout: 10s
# -- concurrentPieceCount is the number of concurrent pieces to download.
concurrentPieceCount: 16
concurrentPieceCount: 8
upload:
server:
# -- port is the port to the grpc server.
@ -1293,9 +1365,36 @@ client:
# Announcer will provide the scheduler with peer information for scheduling,
# peer information includes cpu, memory, etc.
announceInterval: 5m
# -- scheduleTimeout is the timeout for scheduling. If the scheduling timesout, dfdaemon will back-to-source
# download if enableBackToSource is true, otherwise dfdaemon will return download failed.
scheduleTimeout: 30s
# -- scheduleTimeout is timeout for the scheduler to respond to a scheduling request from dfdaemon, default is 3 hours.
#
# If the scheduler's response time for a scheduling decision exceeds this timeout,
# dfdaemon will encounter a `TokioStreamElapsed(Elapsed(()))` error.
#
# Behavior upon timeout:
# - If `enable_back_to_source` is `true`, dfdaemon will attempt to download directly
# from the source.
# - Otherwise (if `enable_back_to_source` is `false`), dfdaemon will report a download failure.
#
# **Important Considerations Regarding Timeout Triggers**:
# This timeout isn't solely for the scheduler's direct response. It can also be triggered
# if the overall duration of the client's interaction with the scheduler for a task
# (e.g., client downloading initial pieces and reporting their status back to the scheduler)
# exceeds `schedule_timeout`. During such client-side processing and reporting,
# the scheduler might be awaiting these updates before sending its comprehensive
# scheduling response, and this entire period is subject to the `schedule_timeout`.
#
# **Configuration Guidance**:
# To prevent premature timeouts, `schedule_timeout` should be configured to a value
# greater than the maximum expected time for the *entire scheduling interaction*.
# This includes:
# 1. The scheduler's own processing and response time.
# 2. The time taken by the client to download any initial pieces and download all pieces finished,
# as this communication is part of the scheduling phase.
#
# Setting this value too low can lead to `TokioStreamElapsed` errors even if the
# network and scheduler are functioning correctly but the combined interaction time
# is longer than the configured timeout.
scheduleTimeout: 3h
# -- maxScheduleCount is the max count of schedule.
maxScheduleCount: 5
# -- enableBackToSource indicates whether enable back-to-source download, when the scheduling failed.
@ -1318,12 +1417,26 @@ client:
writeBufferSize: 4194304
# -- readBufferSize is the buffer size for reading piece from disk, default is 4MiB.
readBufferSize: 4194304
# -- writePieceTimeout is the timeout for writing a piece to storage(e.g., disk or cache).
writePieceTimeout: 30s
gc:
# -- interval is the interval to do gc.
interval: 900s
policy:
# -- taskTTL is the ttl of the task.
taskTTL: 168h
taskTTL: 720h
# # distThreshold optionally defines a specific disk capacity to be used as the base for
# # calculating GC trigger points with `distHighThresholdPercent` and `distLowThresholdPercent`.
# #
# # - If a value is provided (e.g., "500GB"), the percentage-based thresholds (`distHighThresholdPercent`,
# # `distLowThresholdPercent`) are applied relative to this specified capacity.
# # - If not provided or set to 0 (the default behavior), these percentage-based thresholds are applied
# # relative to the total actual disk space.
# #
# # This allows dfdaemon to effectively manage a logical portion of the disk for its cache,
# # rather than always considering the entire disk volume.
#
# distThreshold: 10TiB
# -- distHighThresholdPercent is the high threshold percent of the disk usage.
# If the disk usage is greater than the threshold, dfdaemon will do gc.
distHighThresholdPercent: 80
@ -1424,10 +1537,17 @@ client:
port: 4004
# # ip is the listen ip of the stats server.
# ip: ""
# # tracing is the tracing configuration for dfdaemon.
# tracing:
# # addr is the address to report tracing log.
# addr: ""
tracing:
# -- Protocol specifies the communication protocol for the tracing server.
# Supported values: "http", "https", "grpc" (default: None).
# This determines how tracing logs are transmitted to the server.
protocol: ""
# # endpoint is the endpoint to report tracing log, example: "localhost:4317".
# endpoint: ""
# # path is the path to report tracing log, example: "/v1/traces" if the protocol is "http" or "https".
# path: ""
# # headers is the grpc's headers to send with tracing log.
# headers: {}
metrics:
# -- Enable client metrics.
enable: true
@ -1552,6 +1672,10 @@ externalRedis:
username: ""
# -- External redis password.
password: ""
# -- External redis sentinel addresses.
sentinelUsername: ""
# -- External redis sentinel password.
sentinelPassword: ""
# -- External redis db.
db: 0
# -- External redis broker db.