1 changed files with 487 additions and 0 deletions
@ -0,0 +1,487 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: Template |
||||
|
labels: |
||||
|
template: rtorrent |
||||
|
message: See https://github.com/nmasse-itix/OpenShift-Docker-Images/tree/master/rtorrent for more details. |
||||
|
metadata: |
||||
|
annotations: |
||||
|
description: |- |
||||
|
An rtorrent packaging for OpenShift. |
||||
|
openshift.io/display-name: rtorrent |
||||
|
tags: instant-app |
||||
|
template.openshift.io/documentation-url: https://github.com/nmasse-itix/OpenShift-Docker-Images/tree/master/rtorrent |
||||
|
template.openshift.io/long-description: An rtorrent packaging for OpenShift. |
||||
|
template.openshift.io/provider-display-name: Nicolas Massé |
||||
|
template.openshift.io/support-url: https://github.com/nmasse-itix/OpenShift-Docker-Images/issues |
||||
|
name: rtorrent |
||||
|
objects: |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: PersistentVolumeClaim |
||||
|
metadata: |
||||
|
name: rtorrent-download |
||||
|
labels: |
||||
|
template: rtorrent |
||||
|
spec: |
||||
|
accessModes: |
||||
|
- ReadWriteOnce |
||||
|
resources: |
||||
|
requests: |
||||
|
storage: ${DOWNLOAD_VOLUME_SIZE} |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: PersistentVolumeClaim |
||||
|
metadata: |
||||
|
name: rtorrent-incoming |
||||
|
labels: |
||||
|
template: rtorrent |
||||
|
spec: |
||||
|
accessModes: |
||||
|
- ReadWriteOnce |
||||
|
resources: |
||||
|
requests: |
||||
|
storage: ${INCOMING_VOLUME_SIZE} |
||||
|
|
||||
|
- kind: ConfigMap |
||||
|
apiVersion: v1 |
||||
|
metadata: |
||||
|
name: rtorrent-config |
||||
|
labels: |
||||
|
template: rtorrent |
||||
|
data: |
||||
|
custom.rc: | |
||||
|
# Maximum and minimum number of peers to connect to per torrent. |
||||
|
#min_peers = 40 |
||||
|
#max_peers = 100 |
||||
|
|
||||
|
# Same as above but for seeding completed torrents (-1 = same as downloading) |
||||
|
#min_peers_seed = 10 |
||||
|
#max_peers_seed = 50 |
||||
|
|
||||
|
# Maximum number of simultanious uploads per torrent. |
||||
|
#max_uploads = 15 |
||||
|
|
||||
|
# Global upload and download rate in KiB. "0" for unlimited. |
||||
|
download_rate = 0 |
||||
|
upload_rate = 0 |
||||
|
|
||||
|
# Close torrents when diskspace is low. |
||||
|
#schedule = low_diskspace,5,60,close_low_diskspace=1024M |
||||
|
|
||||
|
# The ip address reported to the tracker. |
||||
|
ip = ${NODE_IP_ADDRESS} |
||||
|
#ip = rakshasa.no |
||||
|
|
||||
|
# The ip address the listening socket and outgoing connections is |
||||
|
# bound to. |
||||
|
#bind = 127.0.0.1 |
||||
|
#bind = rakshasa.no |
||||
|
|
||||
|
# Start opening ports at a random position within the port range. |
||||
|
#port_random = no |
||||
|
|
||||
|
# Check hash for finished torrents. Might be usefull until the bug is |
||||
|
# fixed that causes lack of diskspace not to be properly reported. |
||||
|
#check_hash = no |
||||
|
|
||||
|
# Set whether the client should try to connect to UDP trackers. |
||||
|
use_udp_trackers = yes |
||||
|
|
||||
|
# Alternative calls to bind and ip that should handle dynamic ip's. |
||||
|
#schedule = ip_tick,0,1800,ip=rakshasa |
||||
|
#schedule = bind_tick,0,1800,bind=rakshasa |
||||
|
|
||||
|
# Encryption options, set to none (default) or any combination of the following: |
||||
|
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext |
||||
|
# |
||||
|
# The example value allows incoming encrypted connections, starts unencrypted |
||||
|
# outgoing connections but retries with encryption if they fail, preferring |
||||
|
# plaintext to RC4 encryption after the encrypted handshake |
||||
|
# |
||||
|
# encryption = allow_incoming,enable_retry,prefer_plaintext |
||||
|
|
||||
|
# Enable DHT support for trackerless torrents or when all trackers are down. |
||||
|
# May be set to "disable" (completely disable DHT), "off" (do not start DHT), |
||||
|
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately). |
||||
|
# The default is "off". For DHT to work, a session directory must be defined. |
||||
|
# |
||||
|
dht = auto |
||||
|
|
||||
|
# Enable peer exchange (for torrents not marked private) |
||||
|
# |
||||
|
peer_exchange = yes |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: ImageStream |
||||
|
metadata: |
||||
|
labels: |
||||
|
build: rtorrent |
||||
|
template: rtorrent |
||||
|
name: rtorrent |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: BuildConfig |
||||
|
metadata: |
||||
|
name: rtorrent |
||||
|
labels: |
||||
|
build: rtorrent |
||||
|
template: rtorrent |
||||
|
spec: |
||||
|
successfulBuildsHistoryLimit: 1 |
||||
|
failedBuildsHistoryLimit: 1 |
||||
|
nodeSelector: null |
||||
|
output: |
||||
|
to: |
||||
|
kind: ImageStreamTag |
||||
|
name: rtorrent:latest |
||||
|
postCommit: {} |
||||
|
resources: {} |
||||
|
runPolicy: Serial |
||||
|
source: |
||||
|
git: |
||||
|
uri: ${GIT_REPO} |
||||
|
type: Git |
||||
|
contextDir: rtorrent |
||||
|
strategy: |
||||
|
dockerStrategy: |
||||
|
dockerfilePath: Dockerfile.rtorrent |
||||
|
from: |
||||
|
kind: ImageStreamTag |
||||
|
name: ${BASE_IMAGE_STREAM_TAG} |
||||
|
namespace: ${BASE_IMAGE_STREAM_NAMESPACE} |
||||
|
type: Docker |
||||
|
triggers: |
||||
|
- type: ConfigChange |
||||
|
- type: ImageChange |
||||
|
|
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: ImageStream |
||||
|
metadata: |
||||
|
labels: |
||||
|
build: filebrowser |
||||
|
template: rtorrent |
||||
|
name: filebrowser |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: BuildConfig |
||||
|
metadata: |
||||
|
name: filebrowser |
||||
|
labels: |
||||
|
build: filebrowser |
||||
|
template: rtorrent |
||||
|
spec: |
||||
|
successfulBuildsHistoryLimit: 1 |
||||
|
failedBuildsHistoryLimit: 1 |
||||
|
nodeSelector: null |
||||
|
output: |
||||
|
to: |
||||
|
kind: ImageStreamTag |
||||
|
name: filebrowser:latest |
||||
|
postCommit: {} |
||||
|
resources: {} |
||||
|
runPolicy: Serial |
||||
|
source: |
||||
|
git: |
||||
|
uri: ${GIT_REPO} |
||||
|
type: Git |
||||
|
contextDir: rtorrent |
||||
|
strategy: |
||||
|
dockerStrategy: |
||||
|
env: |
||||
|
- name: FILEBROWSER_RELEASE |
||||
|
value: "${FILEBROWSER_RELEASE}" |
||||
|
dockerfilePath: Dockerfile.filebrowser |
||||
|
from: |
||||
|
kind: ImageStreamTag |
||||
|
name: ${BASE_IMAGE_STREAM_TAG} |
||||
|
namespace: ${BASE_IMAGE_STREAM_NAMESPACE} |
||||
|
type: Docker |
||||
|
triggers: |
||||
|
- type: ConfigChange |
||||
|
- type: ImageChange |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: DeploymentConfig |
||||
|
metadata: |
||||
|
labels: |
||||
|
app: rtorrent |
||||
|
template: rtorrent |
||||
|
name: rtorrent |
||||
|
spec: |
||||
|
replicas: 1 |
||||
|
selector: |
||||
|
app: rtorrent |
||||
|
deploymentconfig: rtorrent |
||||
|
strategy: |
||||
|
activeDeadlineSeconds: 21600 |
||||
|
resources: {} |
||||
|
type: Recreate |
||||
|
template: |
||||
|
metadata: |
||||
|
creationTimestamp: null |
||||
|
labels: |
||||
|
app: rtorrent |
||||
|
deploymentconfig: rtorrent |
||||
|
template: rtorrent |
||||
|
spec: |
||||
|
serviceAccountName: rtorrent |
||||
|
containers: |
||||
|
# First container: the rtorrent daemon |
||||
|
- name: rtorrent-daemon |
||||
|
image: " " |
||||
|
imagePullPolicy: IfNotPresent |
||||
|
ports: |
||||
|
- name: bittorrent-tcp |
||||
|
containerPort: 6890 |
||||
|
protocol: TCP |
||||
|
- name: bittorrent-udp |
||||
|
containerPort: 6890 |
||||
|
protocol: UDP |
||||
|
- name: dht |
||||
|
containerPort: 6881 |
||||
|
protocol: UDP |
||||
|
env: |
||||
|
# We need to make rtorrent believe it has a valid term |
||||
|
- name: TERM |
||||
|
value: xterm |
||||
|
resources: {} |
||||
|
securityContext: {} |
||||
|
terminationMessagePath: /dev/termination-log |
||||
|
volumeMounts: |
||||
|
- mountPath: /torrent/download |
||||
|
name: rtorrent-download |
||||
|
- mountPath: /torrent/incoming |
||||
|
name: rtorrent-incoming |
||||
|
- mountPath: /torrent/session |
||||
|
name: rtorrent-session |
||||
|
- mountPath: /etc/rtorrent |
||||
|
name: rtorrent-config |
||||
|
|
||||
|
# Second container: the file browser |
||||
|
- name: filebrowser |
||||
|
image: " " |
||||
|
imagePullPolicy: IfNotPresent |
||||
|
ports: |
||||
|
- name: http |
||||
|
containerPort: 8080 |
||||
|
protocol: TCP |
||||
|
env: {} |
||||
|
resources: {} |
||||
|
securityContext: {} |
||||
|
terminationMessagePath: /dev/termination-log |
||||
|
volumeMounts: |
||||
|
- mountPath: /torrent/download |
||||
|
name: rtorrent-download |
||||
|
- mountPath: /torrent/incoming |
||||
|
name: rtorrent-incoming |
||||
|
|
||||
|
# Third container: the OAuth Proxy |
||||
|
- name: prom-proxy |
||||
|
image: "${PROXY_IMAGE}" |
||||
|
imagePullPolicy: IfNotPresent |
||||
|
ports: |
||||
|
- containerPort: 8443 |
||||
|
name: web |
||||
|
args: |
||||
|
- -provider=openshift |
||||
|
- -https-address=:8443 |
||||
|
- -http-address= |
||||
|
- -email-domain=* |
||||
|
- -upstream=http://localhost:8080 |
||||
|
- -client-id=system:serviceaccount:${NAMESPACE}:rtorrent |
||||
|
- '-openshift-sar={"resource": "namespaces", "verb": "get", "resourceName": "${NAMESPACE}", "namespace": "${NAMESPACE}"}' |
||||
|
- '-openshift-delegate-urls={"/": {"resource": "namespaces", "verb": "get", "resourceName": "${NAMESPACE}", "namespace": "${NAMESPACE}"}}' |
||||
|
- -tls-cert=/etc/tls/private/tls.crt |
||||
|
- -tls-key=/etc/tls/private/tls.key |
||||
|
- -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token |
||||
|
- -cookie-secret-file=/etc/proxy/secrets/session_secret |
||||
|
- -openshift-ca=/etc/pki/tls/cert.pem |
||||
|
- -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt |
||||
|
volumeMounts: |
||||
|
- mountPath: /etc/tls/private |
||||
|
name: proxy-tls |
||||
|
- mountPath: /etc/proxy/secrets |
||||
|
name: proxy-secrets |
||||
|
dnsPolicy: ClusterFirst |
||||
|
terminationGracePeriodSeconds: 30 |
||||
|
restartPolicy: Always |
||||
|
volumes: |
||||
|
- name: rtorrent-download |
||||
|
persistentVolumeClaim: |
||||
|
claimName: rtorrent-download |
||||
|
- name: rtorrent-incoming |
||||
|
persistentVolumeClaim: |
||||
|
claimName: rtorrent-incoming |
||||
|
- name: rtorrent-session |
||||
|
emptyDir: |
||||
|
- name: rtorrent-config |
||||
|
configMap: |
||||
|
name: rtorrent-config |
||||
|
- name: proxy-secrets |
||||
|
secret: |
||||
|
secretName: rtorrent-proxy |
||||
|
- name: proxy-tls |
||||
|
secret: |
||||
|
secretName: rtorrent-tls |
||||
|
|
||||
|
test: false |
||||
|
triggers: |
||||
|
- type: ConfigChange |
||||
|
- type: ImageChange |
||||
|
imageChangeParams: |
||||
|
automatic: true |
||||
|
containerNames: |
||||
|
- rtorrent-daemon |
||||
|
from: |
||||
|
kind: ImageStreamTag |
||||
|
name: rtorrent:latest |
||||
|
- type: ImageChange |
||||
|
imageChangeParams: |
||||
|
automatic: true |
||||
|
containerNames: |
||||
|
- filebrowser |
||||
|
from: |
||||
|
kind: ImageStreamTag |
||||
|
name: filebrowser:latest |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: Service |
||||
|
metadata: |
||||
|
labels: |
||||
|
app: rtorrent |
||||
|
template: rtorrent |
||||
|
name: rtorrent |
||||
|
spec: |
||||
|
ports: |
||||
|
- name: bittorrent-tcp |
||||
|
nodePort: 6890 |
||||
|
protocol: TCP |
||||
|
port: 6890 |
||||
|
- name: bittorrent-udp |
||||
|
nodePort: 6890 |
||||
|
protocol: UDP |
||||
|
port: 6890 |
||||
|
- name: dht |
||||
|
nodePort: 6881 |
||||
|
protocol: UDP |
||||
|
port: 6881 |
||||
|
selector: |
||||
|
app: rtorrent |
||||
|
deploymentconfig: rtorrent |
||||
|
sessionAffinity: None |
||||
|
type: NodePort |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: Service |
||||
|
metadata: |
||||
|
labels: |
||||
|
app: rtorrent |
||||
|
template: rtorrent |
||||
|
name: rtorrent-filebrowser |
||||
|
annotations: |
||||
|
service.alpha.openshift.io/serving-cert-secret-name: rtorrent-tls |
||||
|
spec: |
||||
|
ports: |
||||
|
- name: filebrowser-oauthproxy |
||||
|
port: 8443 |
||||
|
protocol: TCP |
||||
|
selector: |
||||
|
app: rtorrent |
||||
|
deploymentconfig: rtorrent |
||||
|
sessionAffinity: None |
||||
|
type: ClusterIP |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: Route |
||||
|
metadata: |
||||
|
labels: |
||||
|
app: rtorrent |
||||
|
template: rtorrent |
||||
|
name: rtorrent-filebrowser |
||||
|
spec: |
||||
|
port: |
||||
|
targetPort: filebrowser-oauthproxy |
||||
|
to: |
||||
|
kind: Service |
||||
|
name: rtorrent-filebrowser |
||||
|
weight: 100 |
||||
|
wildcardPolicy: None |
||||
|
tls: |
||||
|
termination: reencrypt |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: Secret |
||||
|
metadata: |
||||
|
name: rtorrent-proxy |
||||
|
namespace: "${NAMESPACE}" |
||||
|
labels: |
||||
|
template: rtorrent |
||||
|
stringData: |
||||
|
session_secret: "${SESSION_SECRET}=" |
||||
|
|
||||
|
- apiVersion: v1 |
||||
|
kind: ServiceAccount |
||||
|
metadata: |
||||
|
name: rtorrent |
||||
|
namespace: ${NAMESPACE} |
||||
|
labels: |
||||
|
template: rtorrent |
||||
|
annotations: |
||||
|
serviceaccounts.openshift.io/oauth-redirectreference.filebrowser: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"rtorrent-filebrowser"}}' |
||||
|
secrets: |
||||
|
|
||||
|
## |
||||
|
## Template Parameters |
||||
|
## |
||||
|
parameters: |
||||
|
- description: The GIT repository to use. |
||||
|
displayName: GIT Repo URL |
||||
|
name: GIT_REPO |
||||
|
value: https://github.com/nmasse-itix/OpenShift-Docker-Images.git |
||||
|
required: true |
||||
|
|
||||
|
- description: The OpenShift Namespace where the RHEL/CentOS ImageStream resides. |
||||
|
displayName: RHEL/CentOS ImageStream Namespace |
||||
|
name: BASE_IMAGE_STREAM_NAMESPACE |
||||
|
value: openshift |
||||
|
required: true |
||||
|
|
||||
|
- description: Name of the ImageStreamTag to be used for the RHEL/CentOS image. |
||||
|
displayName: RHEL/CentOS ImageStreamTag |
||||
|
name: BASE_IMAGE_STREAM_TAG |
||||
|
value: rhel7:latest |
||||
|
required: true |
||||
|
|
||||
|
- description: The size of the volume storing the downloaded files |
||||
|
name: DOWNLOAD_VOLUME_SIZE |
||||
|
value: "50Gi" |
||||
|
required: true |
||||
|
|
||||
|
- description: The size of the volume storing the torrent files |
||||
|
name: INCOMING_VOLUME_SIZE |
||||
|
value: "512Mi" |
||||
|
required: true |
||||
|
|
||||
|
- description: The FileBrowser release to use |
||||
|
name: FILEBROWSER_RELEASE |
||||
|
value: "v1.7.0" |
||||
|
required: true |
||||
|
|
||||
|
- description: The IP Address of the node running rtorrent |
||||
|
name: NODE_IP_ADDRESS |
||||
|
required: true |
||||
|
|
||||
|
- description: The Docker image to use for the OAuth Proxy. |
||||
|
displayName: OAuth Proxy image |
||||
|
name: PROXY_IMAGE |
||||
|
value: openshift3/oauth-proxy:v3.9 |
||||
|
|
||||
|
- description: The session secret for the proxy |
||||
|
name: SESSION_SECRET |
||||
|
generate: expression |
||||
|
from: "[a-zA-Z0-9]{43}" |
||||
|
|
||||
|
- description: The namespace to instantiate this template under. Defaults to 'rtorrent'. |
||||
|
name: NAMESPACE |
||||
|
value: rtorrent |
||||
Loading…
Reference in new issue