From b85c3e22205f8023fd58ced099ae35b3863223f6 Mon Sep 17 00:00:00 2001 From: sshipway Date: Fri, 4 Mar 2016 03:34:25 +0000 Subject: [PATCH 1/2] Add community logspout template --- templates/logspout/0/README.md | 14 ++++++++ templates/logspout/0/docker-compose.yml | 14 ++++++++ templates/logspout/0/rancher-compose.yml | 33 ++++++++++++++++++ templates/logspout/catalogIcon-gliderlabs.png | Bin 0 -> 19599 bytes templates/logspout/config.yml | 5 +++ 5 files changed, 66 insertions(+) create mode 100644 templates/logspout/0/README.md create mode 100644 templates/logspout/0/docker-compose.yml create mode 100644 templates/logspout/0/rancher-compose.yml create mode 100644 templates/logspout/catalogIcon-gliderlabs.png create mode 100644 templates/logspout/config.yml diff --git a/templates/logspout/0/README.md b/templates/logspout/0/README.md new file mode 100644 index 0000000..c985949 --- /dev/null +++ b/templates/logspout/0/README.md @@ -0,0 +1,14 @@ +# Add Logspout Stack + +Glider Labs Logspout with Logstash adapter + +### Info: + +For any services launched from the Rancher UI to use Logspout, please make sure to disable the '-t' [tty] option in the Advanced Options of the service definition. + +### Community Version + +This version adds the Environment option, where you can specify the name of the Environment. +All Syslogs will then be sent with this as the Source Hostname rather than the hostname of +the Docker Host on which the container is running. + diff --git a/templates/logspout/0/docker-compose.yml b/templates/logspout/0/docker-compose.yml new file mode 100644 index 0000000..f6005e9 --- /dev/null +++ b/templates/logspout/0/docker-compose.yml @@ -0,0 +1,14 @@ +logspout: + restart: always + environment: + ROUTE_URIS: "${route_uri}" + LOGSPOUT: 'ignore' + SYSLOG_HOSTNAME: "${envname}" + volumes: + - '/var/run/docker.sock:/var/run/docker.sock' + labels: + io.rancher.scheduler.global: 'true' + io.rancher.container.hostname_override: container_name + tty: true + image: rancher/logspout-logstash:v0.2.0 + stdin_open: true diff --git a/templates/logspout/0/rancher-compose.yml b/templates/logspout/0/rancher-compose.yml new file mode 100644 index 0000000..f4e0ad4 --- /dev/null +++ b/templates/logspout/0/rancher-compose.yml @@ -0,0 +1,33 @@ +.catalog: + name: Logspout + version: 0.2.0-1 + description: | + Logspout is a log router for Docker containers. This community template + allows you to log against the Rancher Environment rather than the hostname for + easier analysis. + questions: + - variable: "route_uri" + label: "Logspout route for logs" + type: "string" + required: true + default: "syslog://syslog.example.com:514" + description: | + This will be the target where all logs are sent. + - variable: "envname" + label: "Environment" + type: "string" + required: true + default: "Rancher:" + description: | + This is the environment name, which will be used as the Hostname + label in Syslog instead of the Host or Container name. + - variable: "format" + label: "Format" + type: "enum" + options: + - "rfc5424" + - "rfc3164" + required: true + default: "" + description: | + The Syslog format to use. If not certain, use rfc5424 diff --git a/templates/logspout/catalogIcon-gliderlabs.png b/templates/logspout/catalogIcon-gliderlabs.png new file mode 100644 index 0000000000000000000000000000000000000000..585830245cb3c6b30b6d0c76f24c5a94c1cec1b2 GIT binary patch literal 19599 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 Date: Fri, 4 Mar 2016 03:54:01 +0000 Subject: [PATCH 2/2] Add registry template (using registry:2 and Portus) --- templates/logspout/0/rancher-compose.yml | 2 +- templates/registry/0/docker-compose.yml | 99 ++++++++++ templates/registry/0/rancher-compose.yml | 109 +++++++++++ templates/registry/README.md | 79 ++++++++ templates/registry/catalogIcon-registry.svg | 201 ++++++++++++++++++++ templates/registry/config.yml | 7 + 6 files changed, 496 insertions(+), 1 deletion(-) create mode 100644 templates/registry/0/docker-compose.yml create mode 100644 templates/registry/0/rancher-compose.yml create mode 100644 templates/registry/README.md create mode 100644 templates/registry/catalogIcon-registry.svg create mode 100644 templates/registry/config.yml diff --git a/templates/logspout/0/rancher-compose.yml b/templates/logspout/0/rancher-compose.yml index f4e0ad4..027a841 100644 --- a/templates/logspout/0/rancher-compose.yml +++ b/templates/logspout/0/rancher-compose.yml @@ -28,6 +28,6 @@ - "rfc5424" - "rfc3164" required: true - default: "" + default: "rfc5424" description: | The Syslog format to use. If not certain, use rfc5424 diff --git a/templates/registry/0/docker-compose.yml b/templates/registry/0/docker-compose.yml new file mode 100644 index 0000000..dd53860 --- /dev/null +++ b/templates/registry/0/docker-compose.yml @@ -0,0 +1,99 @@ +db: + image: mysql:5.7.10 + environment: + MYSQL_DATABASE: portus + MYSQL_ROOT_PASSWORD: ${ROOTPASSWORD} + MYSQL_USER: portus + MYSQL_PASSWORD: ${DBPASSWORD} + tty: true + stdin_open: true + volumes: + - ${DIR}/db:/var/lib/mysql +sslproxy: + image: nginx:1.9.9 + tty: true + stdin_open: true + links: + - portus:portus + volumes: + - ${DIR}/certs:/etc/nginx/certs:ro + - ${DIR}/proxy:/etc/nginx/conf.d:ro +registry: + image: registry:2.1 + environment: + REGISTRY_LOG_LEVEL: warn + REGISTRY_STORAGE_DELETE_ENABLED: true + REGISTRY_AUTH_TOKEN_REALM: https://${DOMAIN}:${PPORT}/v2/token + REGISTRY_AUTH_TOKEN_SERVICE: ${DOMAIN}:${RPORT} + REGISTRY_AUTH_TOKEN_ISSUER: ${DOMAIN} + REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE: /certs/registry.crt + REGISTRY_HTTP_TLS_CERTIFICATE: /certs/registry.crt + REGISTRY_HTTP_TLS_KEY: /certs/registry.key + REGISTRY_HTTP_SECRET: httpsecret + REGISTRY_NOTIFICATIONS_ENDPOINTS: > + - name: portus + url: http://portus:3000/v2/webhooks/events + timeout: 500 + threshold: 5 + backoff: 1 + tty: true + stdin_open: true + links: + - portus:portus + volumes: + - ${DIR}/certs:/certs:ro + - ${DIR}/data:/var/lib/registry +lb: + image: rancher/load-balancer-service + tty: true + stdin_open: true + ports: + - ${RPORT}:5000/tcp + - ${PPORT}:443/tcp + labels: + io.rancher.loadbalancer.target.sslproxy: ${PPORT}=443 + io.rancher.loadbalancer.target.registry: ${RPORT}=5000 + io.rancher.scheduler.global: 'true' + io.rancher.scheduler.affinity:not_host_label: lb=0 + links: + - registry:registry + - sslproxy:sslproxy +portus: + image: sshipway/portus:2.0.3 + environment: + PORTUS_MACHINE_FQDN: ${DOMAIN} + PORTUS_PRODUCTION_HOST: db + PORTUS_PRODUCTION_DATABASE: portus + PORTUS_PRODUCTION_USERNAME: portus + PORTUS_PRODUCTION_PASSWORD: ${DBPASSWORD} + PORTUS_GRAVATAR_ENABLED: true + PORTUS_KEY_PATH: /certs/registry.key + PORTUS_PASSWORD: ${DBPASSWORD} + PORTUS_SECRET_KEY_BASE: ${ROOTPASSWORD} + PORTUS_CHECK_SSL_USAGE_ENABLED: true + PORTUS_SMTP_ENABLED: false + PORTUS_LDAP_ENABLED: ${LDAP} + PORTUS_LDAP_HOSTNAME: ${LDAPHOST} + PORTUS_LDAP_PORT: ${LDAPPORT} + PORTUS_LDAP_METHOD: ${LDAPTLS} + PORTUS_LDAP_BASE: ${LDAPBASE} + PORTUS_LDAP_UID: cn + PORTUS_LDAP_AUTHENTICATION_ENABLED: ${LDAPBIND} + PORTUS_LDAP_AUTHENTICATION_BIND_DN: ${LDAPBINDDN} + PORTUS_LDAP_AUTHENTICATION_PASSWORD: ${LDAPBINDPASS} + PORTUS_LDAP_GUESS_EMAIL_ENABLED: true + PORTUS_LDAP_GUESS_EMAIL_ATTR: mail + PORTUS_PORT: ${PPORT} + REGISTRY_SSL_ENABLED: true + REGISTRY_HOSTNAME: ${DOMAIN} + REGISTRY_PORT: ${RPORT} + REGISTRY_NAME: Registry + tty: true + stdin_open: true + volumes: + - ${DIR}/certs:/certs + - ${DIR}/proxy:/etc/nginx/conf.d + links: + - db:db + labels: + io.rancher.container.pull_image: always diff --git a/templates/registry/0/rancher-compose.yml b/templates/registry/0/rancher-compose.yml new file mode 100644 index 0000000..2634876 --- /dev/null +++ b/templates/registry/0/rancher-compose.yml @@ -0,0 +1,109 @@ +.catalog: + name: "Registry" + version: "v2.1.0-2.0" + description: "Docker Registry" + uuid: registry-2 + questions: + - variable: "RPORT" + label: "Registry Port" + description: "Port on which to run the registry service" + default: 5000 + required: true + type: "int" + - variable: "PPORT" + label: "Admin Port" + description: "Port on which to run the SSL Portus administration service and API" + default: 443 + required: true + type: "int" + - variable: "DBPASSWORD" + label: "DB Password" + description: "Password for Portus database access, must be 8 characters or longer" + required: true + default: password + type: "password" + - variable: "ROOTPASSWORD" + label: "DB Root Password" + description: "Root Password for MySQL database, must be 8 characters or longer. This is not normally used." + required: true + default: password + type: "password" + - variable: "DIR" + label: "Storage directory" + description: "Path of shared storage to use for registry, database, and certificates. This should be available on all hosts" + required: true + type: "string" + - variable: "DOMAIN" + label: "FQDN" + description: "FQDN of server. This should be the CN in the certificates and will be the URL to contact the Registry and Web interface" + required: true + type: "string" + - variable: "LDAP" + label: "LDAP Enabled" + description: "Enable LDAP authentication" + required: true + default: false + type: "boolean" + - variable: "LDAPHOST" + label: "LDAP Server" + description: "The FQDN of the LDAP server (if LDAP authentication is being used)" + required: false + default: "ldap.company.com" + type: "string" + - variable: "LDAPPORT" + label: "LDAP Server port" + description: "The port number on the LDAP server (if LDAP authentication is being used)" + required: false + default: 389 + type: "int" + - variable: "LDAPTLS" + label: "LDAP TLS" + description: "The TLS option for the LDAP server (if LDAP authentication is being used)" + required: false + default: "starttls" + type: "enum" + options: + - starttls + - simple_tls + - plain + - variable: "LDAPBASE" + label: "LDAP Base DN" + description: "The Base DN for User lookups on the LDAP server (if LDAP authentication is being used)" + required: false + default: "ou=People,dc=company,dc=com" + type: "string" + - variable: "LDAPBIND" + label: "LDAP Bind enabled" + description: "Should an authenticated Bind be used to access LDAP (if LDAP authentication is being used)" + required: false + default: false + type: "boolean" + - variable: "LDAPBINDDN" + label: "LDAP Bind DN" + description: "The DN to use for binding to the LDAP server (if LDAP authentication is being used with Bind enabled)" + required: false + default: "ou=portus,dc=company,dc=com" + type: "string" + - variable: "LDAPBINDPASS" + label: "LDAP Bind Password" + description: "The password to use for binding to the LDAP server (if LDAP authentication is being used with Bind enabled)" + required: false + default: "password" + type: "password" +db: + scale: 1 +sslproxy: + scale: 1 +lb: + load_balancer_config: + haproxy_config: {} + health_check: + port: 42 + interval: 2000 + unhealthy_threshold: 3 + healthy_threshold: 2 + response_timeout: 2000 +registry: + scale: 1 +portus: + scale: 1 diff --git a/templates/registry/README.md b/templates/registry/README.md new file mode 100644 index 0000000..7a0165f --- /dev/null +++ b/templates/registry/README.md @@ -0,0 +1,79 @@ +# Registry + +This catalogue item consists of a Registry, and the Portus web UI for +authentication. There is also a MySQL database for storage, and a nginx +proxy to provide SSL for the web frontend. + +A directory path is required for storage of the Registry data, Database, +Certificates and generated Nginx configuration files. If you have +multiple Hosts then this needs to be a shared mount across all Hosts which +will run any of these containers. + +If no certificates are provided in the /certs directory, then the system +will generate self-signed SSL certificates to use. + +Note that the containers will take a significant amount of time to initialse after +they are started. You may need to wait 15 minutes for the Portus instance +to finally spot the registry instance and perform its first synchronisation, +after which the web interface will come online. + +## Backing Store + +A persistent shared filesystem is required to host the Registry, and also the +MySQL database. This will also hold the certificates under certs/server.crt +and certs/server.key; if no certificate is present, then a self-signed +certificate will be created (valid for one year only) that can later be +replaced. + +## LDAP Authentication + +If you enable LDAP authentication, then this will be used for both the +Web interface and for Registry authentication. The LDAP configuration +may optionally have authenticated Bind credentials, and TLS options. + +## Security + +All connections are protected by SSL. A self-signed certificate is +automatically generated as certs/server.crt and certs/server.key in +the persistent shared storage; this can be replaced if necessary. + +The certificate is used for registry access, for web admin access, +and for signing API access keys. + +Registry access is controlled by the same user access as the web interface; +so if you link to LDAP then this will also lock the Registry access. + +If not using LDAP, then the 'portus' use password is the Database Password +as defined in the template options. + +## Access + +The template will create a Load Balancer for access to the Registry and +to the Web Admin interface. This will run on all Hosts with the label +LB=1, listening on the defined ports. + +To access the web UI, use https on the hostname and port you configured. + +To upload to the repository, use an SSL connection to the hostname and +registry port you configured. + +## Administration + +The first user to log in to the web interface will be granted Admin +privileges. + +## Synchronisation with Registry + +The Web interface will be initially configured to use the incorporated +registry. A periodic synchronisation task and the upload webhook will +ensure they are in synch. If, for some reason, your registry already +has items (for example, if you are recreating the stack on preexisting +shared storage) then it may take up to 5min for the Portus Web UI to +synchronise the registry content to its database. + +## Feedback + +This is a complex setup, and uses a custom build of the Portus container, +which is not yet available as an official release. You may need to +customise this heavily for your own site. Any feedback can +be logged against https://github.com/sshipway/Portus diff --git a/templates/registry/catalogIcon-registry.svg b/templates/registry/catalogIcon-registry.svg new file mode 100644 index 0000000..557f9ca --- /dev/null +++ b/templates/registry/catalogIcon-registry.svg @@ -0,0 +1,201 @@ + + + + + + + + + + + +]> + + + + + + Adobe Illustrator CS3 + 2008-05-29T17:30:37-04:00 + 2008-05-29T17:30:37-04:00 + + + + 256 + 200 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAyAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYqxLzN+ankry9I8F3feveR/atLUetID4MRRFPszDMTNrsWPYnfyb8emnLkHn+p/8 5Ijky6XotV/ZluZqH6Y0U/8AE818+2P5sfm5UdB3ljt3/wA5BeeZifRisrZe3CJ2P0l3b9WY8u1c p5UG0aKHmlc/51fmTLUDVhGpFCEt7cfiYyfxyo9o5j/F9gZjSY+5CH80fzGuHoutXLPT7MYUbfJF GQOuzH+Isvy2MdFn+K/zOuUHHU9WZa9Y5Jxv80IyJ1WU/wAUvmnwsY6BprP8z9RqskWtXQYnl6gu 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 dirsVf/Z + + + + + + + 300.000000 + 90.000000 + Pixels + + 1 + True + False + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + + + image/svg+xml + + + uuid:E5D4E60BC42DDD1197D69574EC258430 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/registry/config.yml b/templates/registry/config.yml new file mode 100644 index 0000000..b48856a --- /dev/null +++ b/templates/registry/config.yml @@ -0,0 +1,7 @@ +name: Registry +description: | + Secure Docker registry. Web based administration. Optional LDAP authentication. +version: v2.1.0-2.0 +category: Applications +maintainer: Steve Shipway +