.catalog:
  name: "mysql"
  version: "v0.0.1"
  description: "A recommended stack for the MySQL RDBMS."
  uuid: mysql-0
  minimum_rancher_version: v1.0.0
  questions:
    - variable: mysql_lb_port
      description: "Public port for access to MySQL through the load balancer"
      label: "MySQL Public LB Port"
      required: true
      default: 3306
      type: "int"
    - variable: mysql_root_password
      description: "The password that will be set for the MySQL root superuser account."
      label: "MySQL Root Password"
      required: true
      type: password
    - variable: mysql_image
      description: "The docker image to use for the MySQL server."
      label: "MySQL Docker Image"
      type: "enum"
      options:
        - "mysql:latest"
        - "mysql:8.0.1"
        - "mysql:8.0"
        - "mysql:8"
        - "mysql:5.7.18"
        - "mysql:5.7"
        - "mysql:5"
        - "mysql:5.6.36"
        - "mysql:5.6"
        - "mysql:5.5.56"
        - "mysql:5.5"
        - "mariadb:latest"
        - "mariadb:10.3.0"
        - "mariadb:10.3"
        - "mariadb:10.2.6"
        - "mariadb:10.2"
        - "mariadb:10.1.24"
        - "mariadb:10.1"
        - "mariadb:10"
        - "mariadb:10.0.31"
        - "mariadb:10.0"
        - "mariadb:5.5.56"
        - "mariadb:5.5"
        - "mariadb:5"
      default: "mysql:latest"
      required: true
    - variable: mysql_database
      description: "Optional, allows you to specify the name of a database to be created on image startup."
      label: "MySQL Database"
      required: false
      type: "string"
    - variable: mysql_user
      description: "Creates an additional MySQL (super)user. MySQL Password must also be set."
      label: "MySQL User"
      required: false
      type: "string"
    - variable: mysql_password
      description: "A password for the additional MySQL (super)user. MySQL User must also be set."
      label: "MySQL Password"
      required: false
      type: password
    - variable: mysql_allow_empty_password
      description: "Set to 'yes' to allow the container to be started with a blank password for the root user."
      label: MySQL Allow Empty Password
      type: "enum"
      options:
        - "yes"
        - "no"
      default: "no"
      required: false
    - variable: mysql_random_root_password
      description: "Set to 'yes' to generate a random initial password for the root user (using pwgen)."
      label: MySQL Random Root Password
      type: "enum"
      options:
        - "yes"
        - "no"
      default: "no"
      required: false
    - variable: mysql_onetime_password
      description: "Set to 'yes' and the root user's password will be set as expired once init is complete."
      label: MySQL One-time Password
      type: "enum"
      options:
        - "yes"
        - "no"
      default: "no"
      required: false

version: '2'
services:
  mysql-lb:
    scale: 1
    start_on_create: true
    lb_config:
      certs: []
      port_rules:
      - protocol: tcp
        service: mysql
        source_port: ${mysql_lb_port}
        target_port: 3306
    health_check:
      healthy_threshold: 2
      response_timeout: 2000
      port: 42
      unhealthy_threshold: 3
      interval: 2000
      strategy: recreate
  mysql:
    scale: 1
    start_on_create: true
    health_check:
      healthy_threshold: 2
      response_timeout: 2000
      port: 3306
      unhealthy_threshold: 3
      interval: 2000
      strategy: recreate
  mysql-data:
    scale: 1
    start_on_create: true
