diff --git a/templates/letsencrypt/0/README.md b/templates/letsencrypt/0/README.md new file mode 100644 index 0000000..f16a1da --- /dev/null +++ b/templates/letsencrypt/0/README.md @@ -0,0 +1,22 @@ +# Let's Encrypt Certificate Manager + +### About + +The Let's Encrypt Certificate Manager obtains a free (SAN) SSL Certificate from the [Let's Encrypt CA](https://letsencrypt.org/) and adds it to Rancher's certificate store. Once the certificate is created it is scheduled for auto-renewal 14-days before expiration. The renewed certificate is propagated to all applicable load balancer services. + +### Usage + + 1. Accept the terms of service. + 2. Select the API version to use. The Sandbox API should be used for testing purposes. + 3. Fill in your email address. + 4. Enter one or more domain names in the 'Domain Names' field. + 5. Select the DNS provider which manages the DNS zone(s) for all entered domains. + 5. Fill in the required credentials for the chosen DNS provider. + 6. Click 'Launch'. + + +If you want your certificate to be automatically renewed leave the service running. Otherwise you may remove the service once the certificate has appeared in Rancher's certificate store. + +### Suggestions & issue reports + +Please submit suggestions or any issues you find to the [rancher-letsencrypt](https://github.com/janeczku/rancher-letsencrypt) GitHub repo. \ No newline at end of file diff --git a/templates/letsencrypt/0/docker-compose.yml b/templates/letsencrypt/0/docker-compose.yml new file mode 100644 index 0000000..c5ebc58 --- /dev/null +++ b/templates/letsencrypt/0/docker-compose.yml @@ -0,0 +1,19 @@ +letsencrypt: + image: janeczku/rancher-letsencrypt:v0.2.5 + environment: + EULA: ${EULA} + API_VERSION: ${API_VERSION} + EMAIL: ${EMAIL} + DOMAINS: ${DOMAINS} + PUBLIC_KEY_TYPE: ${PUBLIC_KEY_TYPE} + RENEWAL_TIME: ${RENEWAL_TIME} + PROVIDER: ${PROVIDER} + CLOUDFLARE_EMAIL: ${CLOUDFLARE_EMAIL} + CLOUDFLARE_KEY: ${CLOUDFLARE_KEY} + DO_ACCESS_TOKEN: ${DO_ACCESS_TOKEN} + AWS_ACCESS_KEY: ${AWS_ACCESS_KEY} + AWS_SECRET_KEY: ${AWS_SECRET_KEY} + DEBUG: false + labels: + io.rancher.container.create_agent: 'true' + io.rancher.container.agent.role: 'environment' diff --git a/templates/letsencrypt/0/rancher-compose.yml b/templates/letsencrypt/0/rancher-compose.yml new file mode 100644 index 0000000..19ada0d --- /dev/null +++ b/templates/letsencrypt/0/rancher-compose.yml @@ -0,0 +1,85 @@ +.catalog: + name: "Let's Encrypt" + version: 0.2.5 + description: "Trusted SSL certificates at zero cost" + minimum_rancher_version: v0.63.0 + questions: + - variable: "EULA" + label: "I Agree to the Let's Encrypt TOS" + description: "Read https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf" + required: true + type: "enum" + options: + - "Yes" + - "No" + - variable: "API_VERSION" + label: "Let's Encrypt API Version" + description: "Select the API version used for issuing the certificate. Use 'Sandbox' for testing only." + required: true + type: "enum" + default: "Production" + options: + - "Production" + - "Sandbox" + - variable: "EMAIL" + label: "Your Email Address" + description: "Enter the email address to be associated with the Let's Encrypt account." + required: true + type: "string" + - variable: "DOMAINS" + label: "Domain Names" + description: "Comma delimited list of domain names, e.g.: 'devs.example.com, staging.example.com'." + required: true + type: "string" + - variable: "PUBLIC_KEY_TYPE" + label: "Public Key Algorithm" + description: "Select one of the supported key types." + required: true + type: "enum" + default: RSA-2048 + options: + - RSA-2048 + - RSA-4096 + - RSA-8192 + - ECDSA-256 + - ECDSA-384 + - variable: "RENEWAL_TIME" + label: "Renewal Time of Day (00-23)" + description: "Set the time of day (UTC in hours) at which certificate renewals should run." + default: 12 + required: true + type: int + - variable: "PROVIDER" + label: "DNS Provider" + description: "Select the DNS provider used for domain verification." + required: true + type: "enum" + options: + - CloudFlare + - DigitalOcean + - Route53 + - variable: "AWS_ACCESS_KEY" + label: "AWS Access Key" + description: "Enter the Access Key for your AWS account." + type: "string" + required: false + - variable: "AWS_SECRET_KEY" + label: "AWS Secret Key" + description: "Enter the Secret Key for your AWS account." + type: "string" + required: false + - variable: "CLOUDFLARE_EMAIL" + label: "CloudFlare Email Address" + description: "Enter the email address associated with your CloudFlare account." + type: "string" + required: false + - variable: "CLOUDFLARE_KEY" + label: "CloudFlare API Key" + description: "Enter the Global API Key for your CloudFlare account." + type: "string" + required: false + - variable: "DO_ACCESS_TOKEN" + label: "DigitalOcean API Access Token" + description: "Enter the Personal Access Token for your DigitalOcean account." + type: "string" + required: false diff --git a/templates/letsencrypt/catalogIcon-letsencrypt0.svg b/templates/letsencrypt/catalogIcon-letsencrypt0.svg new file mode 100644 index 0000000..014daab --- /dev/null +++ b/templates/letsencrypt/catalogIcon-letsencrypt0.svg @@ -0,0 +1,41 @@ + + + + + + Layer 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/templates/letsencrypt/config.yml b/templates/letsencrypt/config.yml new file mode 100644 index 0000000..f2dfd3b --- /dev/null +++ b/templates/letsencrypt/config.yml @@ -0,0 +1,8 @@ +name: "Let's Encrypt" +description: | + Trusted SSL certificates at zero cost +version: 0.2.5 +category: Security +maintainer: "Jan Broer " +license: The MIT License +projectURL: http://www.github.com/janeczku/rancher-letsencrypt