wip: 🔕 temporary commit
This commit is contained in:
parent
80634ef5e5
commit
2a0d771bcc
49
.github/workflows/release.yml
vendored
49
.github/workflows/release.yml
vendored
@ -32,10 +32,55 @@ jobs:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
tags: |
|
||||
ghcr.io/${{ github.actor }}/3proxy:latest
|
||||
ghcr.io/${{ github.actor }}/3proxy:${{ steps.slug.outputs.version-semantic }}
|
||||
ghcr.io/${{ github.actor }}/3proxy:${{ steps.slug.outputs.version }}
|
||||
ghcr.io/${{ github.actor }}/3proxy:${{ steps.slug.outputs.version-major }}.${{ steps.slug.outputs.version-minor }}
|
||||
ghcr.io/${{ github.actor }}/3proxy:${{ steps.slug.outputs.version-major }}
|
||||
docker.io/tarampampam/3proxy:latest
|
||||
docker.io/tarampampam/3proxy:${{ steps.slug.outputs.version-semantic }}
|
||||
docker.io/tarampampam/3proxy:${{ steps.slug.outputs.version }}
|
||||
docker.io/tarampampam/3proxy:${{ steps.slug.outputs.version-major }}.${{ steps.slug.outputs.version-minor }}
|
||||
docker.io/tarampampam/3proxy:${{ steps.slug.outputs.version-major }}
|
||||
|
||||
helm-pack:
|
||||
name: Pack the Helm chart
|
||||
runs-on: ubuntu-latest
|
||||
defaults: {run: {working-directory: ./deployments/helm}}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: azure/setup-helm@v4
|
||||
- {uses: gacts/github-slug@v1, id: slug}
|
||||
- run: |
|
||||
helm package \
|
||||
--app-version "${{ steps.slug.outputs.version }}" \
|
||||
--version "${{ steps.slug.outputs.version }}" .
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: helm-chart
|
||||
path: ./deployments/helm/*.tgz
|
||||
if-no-files-found: error
|
||||
retention-days: 1
|
||||
|
||||
helm-publish:
|
||||
name: Put the Helm chart to the GitHub pages branch
|
||||
runs-on: ubuntu-latest
|
||||
needs: [helm-pack]
|
||||
steps:
|
||||
- {uses: actions/checkout@v4, with: {ref: gh-pages}}
|
||||
- uses: azure/setup-helm@v4
|
||||
- uses: actions/download-artifact@v4
|
||||
with: {name: helm-chart, path: ./helm-charts}
|
||||
- name: Update the index.yaml
|
||||
run: |
|
||||
helm repo index \
|
||||
--url https://${{ github.actor }}.github.io/${{ github.event.repository.name }}/helm-charts/ \
|
||||
--merge \
|
||||
./helm-charts/index.yaml \
|
||||
./helm-charts
|
||||
- uses: yKicchan/generate-directory-listing-action@v1
|
||||
with: {target: ., ignore: "**/index.html", override: true}
|
||||
- name: Commit and push the changes
|
||||
run: |
|
||||
git config user.name "${{ github.actor }}"
|
||||
git config user.email "${{ github.actor }}@users.noreply.github.com"
|
||||
git add .
|
||||
git commit -m "Helm chart release"
|
||||
git push origin gh-pages
|
||||
|
@ -70,6 +70,12 @@ Image: ghcr.io/tarampampam/3proxy:1.8.2
|
||||
| `EXTRA_CONFIG` | Additional 3proxy configuration (appended to the **end** of the config file, but before `proxy` and `flush`) | `# line 1\n# line 2` |
|
||||
| `LOG_OUTPUT` | Path for log output (`/dev/stdout` by default; set to `/dev/null` to disable logging) | `/tmp/3proxy.log` |
|
||||
|
||||
## Helm Chart
|
||||
|
||||
To install it on Kubernetes (K8s), please use the Helm chart from [ArtifactHUB][artifact-hub].
|
||||
|
||||
[artifact-hub]:https://artifacthub.io/packages/helm/proxy-3proxy/proxy-3proxy
|
||||
|
||||
## How to Use This Image
|
||||
|
||||
Example usage:
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
apiVersion: v2
|
||||
name: proxy-3proxy
|
||||
description: Tiny free proxy server
|
||||
description: Powerful and lightweight proxy server, written in pure C
|
||||
|
||||
type: application
|
||||
version: 0.0.0 # will be replaced by the release workflow
|
||||
|
@ -42,6 +42,7 @@
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {"type": "boolean"},
|
||||
"kind": {"type": "string"},
|
||||
"replicas": {"type": "integer"},
|
||||
"podAnnotations": {
|
||||
"type": "object",
|
||||
@ -72,6 +73,7 @@
|
||||
"probe": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"port": {"type": "string", "enum": ["http", "socks"]},
|
||||
"interval": {"type": "integer"},
|
||||
"initialDelay": {"type": "integer"}
|
||||
}
|
||||
@ -192,7 +194,13 @@
|
||||
{"type": "null"}
|
||||
]
|
||||
},
|
||||
"port": {"type": "integer", "minimum": 1, "maximum": 65535}
|
||||
"ports": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"http": {"type": "integer", "minimum": 1, "maximum": 65535},
|
||||
"socks": {"type": "integer", "minimum": 1, "maximum": 65535}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ingress": {
|
||||
@ -240,6 +248,120 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"config": {}
|
||||
"config": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"log": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {"type": "boolean"},
|
||||
"output": {
|
||||
"oneOf": [
|
||||
{"type": "string", "minLength": 2, "examples": ["/dev/stdout"]},
|
||||
{"type": "null"}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"login": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"plain": {
|
||||
"oneOf": [
|
||||
{"type": "string", "minLength": 1},
|
||||
{"type": "null"}
|
||||
]
|
||||
},
|
||||
"fromSecret": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {"type": "boolean"},
|
||||
"secretName": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]},
|
||||
"secretKey": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]}
|
||||
}
|
||||
},
|
||||
"fromConfigMap": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {"type": "boolean"},
|
||||
"configMapName": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]},
|
||||
"configMapKey": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"plain": {
|
||||
"oneOf": [
|
||||
{"type": "string", "minLength": 1},
|
||||
{"type": "null"}
|
||||
]
|
||||
},
|
||||
"fromSecret": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {"type": "boolean"},
|
||||
"secretName": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]},
|
||||
"secretKey": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]}
|
||||
}
|
||||
},
|
||||
"fromConfigMap": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {"type": "boolean"},
|
||||
"configMapName": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]},
|
||||
"configMapKey": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"extraAccounts": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"plain": {
|
||||
"type": "object",
|
||||
"additionalProperties": {"type": "string", "minLength": 1}
|
||||
},
|
||||
"fromSecret": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {"type": "boolean"},
|
||||
"secretName": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]},
|
||||
"secretKey": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]}
|
||||
}
|
||||
},
|
||||
"fromConfigMap": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {"type": "boolean"},
|
||||
"configMapName": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]},
|
||||
"configMapKey": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"dns": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"primaryResolver": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]},
|
||||
"secondaryResolver": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]}
|
||||
}
|
||||
},
|
||||
"limits": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"maxConnections": {"oneOf": [{"type": "integer", "minimum": 1}, {"type": "null"}]}
|
||||
}
|
||||
},
|
||||
"extraConfig": {"oneOf": [{"type": "string", "minLength": 1}, {"type": "null"}]}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ deployment:
|
||||
# -- Enable deployment
|
||||
enabled: true
|
||||
# -- The deployment kind
|
||||
kind: Deployment # TODO: add into schema
|
||||
kind: Deployment
|
||||
# -- How many replicas to run
|
||||
replicas: 1
|
||||
# -- Additional pod annotations (e.g. for mesh injection or prometheus scraping)
|
||||
@ -36,7 +36,8 @@ deployment:
|
||||
runAsUser: 10001 # as defined in the Dockerfile
|
||||
runAsGroup: 10001 # as defined in the Dockerfile
|
||||
probe:
|
||||
port: http # or socks # TODO: add into schema
|
||||
# -- The port to probe (containerPort, "http" or "socks")
|
||||
port: http
|
||||
# -- How often (in seconds) to perform the probe
|
||||
interval: 10
|
||||
# -- Number of seconds after the container has started before liveness probes are initiated
|
||||
@ -75,7 +76,7 @@ service:
|
||||
externalName: null
|
||||
# -- Sets the port, more information can be found here:
|
||||
# https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports
|
||||
ports: # TODO: add into schema
|
||||
ports:
|
||||
# -- The port number for the proxy to listen on
|
||||
http: 3128
|
||||
# -- The same, but for socks proxy
|
||||
|
Loading…
x
Reference in New Issue
Block a user