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