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
|
platforms: linux/amd64,linux/arm64
|
||||||
tags: |
|
tags: |
|
||||||
ghcr.io/${{ github.actor }}/3proxy:latest
|
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 }}.${{ steps.slug.outputs.version-minor }}
|
||||||
ghcr.io/${{ github.actor }}/3proxy:${{ steps.slug.outputs.version-major }}
|
ghcr.io/${{ github.actor }}/3proxy:${{ steps.slug.outputs.version-major }}
|
||||||
docker.io/tarampampam/3proxy:latest
|
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 }}.${{ steps.slug.outputs.version-minor }}
|
||||||
docker.io/tarampampam/3proxy:${{ steps.slug.outputs.version-major }}
|
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` |
|
| `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` |
|
| `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
|
## How to Use This Image
|
||||||
|
|
||||||
Example usage:
|
Example usage:
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: proxy-3proxy
|
name: proxy-3proxy
|
||||||
description: Tiny free proxy server
|
description: Powerful and lightweight proxy server, written in pure C
|
||||||
|
|
||||||
type: application
|
type: application
|
||||||
version: 0.0.0 # will be replaced by the release workflow
|
version: 0.0.0 # will be replaced by the release workflow
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"enabled": {"type": "boolean"},
|
"enabled": {"type": "boolean"},
|
||||||
|
"kind": {"type": "string"},
|
||||||
"replicas": {"type": "integer"},
|
"replicas": {"type": "integer"},
|
||||||
"podAnnotations": {
|
"podAnnotations": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
@ -72,6 +73,7 @@
|
|||||||
"probe": {
|
"probe": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"port": {"type": "string", "enum": ["http", "socks"]},
|
||||||
"interval": {"type": "integer"},
|
"interval": {"type": "integer"},
|
||||||
"initialDelay": {"type": "integer"}
|
"initialDelay": {"type": "integer"}
|
||||||
}
|
}
|
||||||
@ -192,7 +194,13 @@
|
|||||||
{"type": "null"}
|
{"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": {
|
"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
|
# -- Enable deployment
|
||||||
enabled: true
|
enabled: true
|
||||||
# -- The deployment kind
|
# -- The deployment kind
|
||||||
kind: Deployment # TODO: add into schema
|
kind: Deployment
|
||||||
# -- How many replicas to run
|
# -- How many replicas to run
|
||||||
replicas: 1
|
replicas: 1
|
||||||
# -- Additional pod annotations (e.g. for mesh injection or prometheus scraping)
|
# -- Additional pod annotations (e.g. for mesh injection or prometheus scraping)
|
||||||
@ -36,7 +36,8 @@ deployment:
|
|||||||
runAsUser: 10001 # as defined in the Dockerfile
|
runAsUser: 10001 # as defined in the Dockerfile
|
||||||
runAsGroup: 10001 # as defined in the Dockerfile
|
runAsGroup: 10001 # as defined in the Dockerfile
|
||||||
probe:
|
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
|
# -- How often (in seconds) to perform the probe
|
||||||
interval: 10
|
interval: 10
|
||||||
# -- Number of seconds after the container has started before liveness probes are initiated
|
# -- Number of seconds after the container has started before liveness probes are initiated
|
||||||
@ -75,7 +76,7 @@ service:
|
|||||||
externalName: null
|
externalName: null
|
||||||
# -- Sets the port, more information can be found here:
|
# -- Sets the port, more information can be found here:
|
||||||
# https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports
|
# 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
|
# -- The port number for the proxy to listen on
|
||||||
http: 3128
|
http: 3128
|
||||||
# -- The same, but for socks proxy
|
# -- The same, but for socks proxy
|
||||||
|
Loading…
x
Reference in New Issue
Block a user