Skip to content

Commit

Permalink
First run for using an attached resource.
Browse files Browse the repository at this point in the history
  • Loading branch information
Veebers committed Jul 12, 2018
1 parent 5f8e739 commit 713d0bd
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 36 deletions.
75 changes: 43 additions & 32 deletions charms/mysql/config.yaml
@@ -1,33 +1,44 @@
options:
mysql_image:
type: string
description: 'The docker image of mysql to install.'
default: 'mysql/mysql-server:5.7'
user:
type: string
description: 'The database user name.'
default: 'admin'
password:
type: string
description: 'The database user password.'
default: 'password'
database:
type: string
description: 'The database name.'
default: 'database'
root_password:
type: string
description: 'The database root password.'
default: 'root'
mysql_port:
type: string
description: 'The mysql port'
default: '3306'
query-cache-type:
default: "OFF"
type: string
description: Query cache is usually a good idea, but can hurt concurrency. Valid values are "OFF", "ON", or "DEMAND". http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_query_cache_type
query-cache-size:
default: 0
type: int
description: Override the computed version from dataset-size. Still works if query-cache-type is "OFF" since sessions can override the cache type setting on their own.
mysql_image:
type: string
description: 'The docker image of mysql to install.'
default: 'registry.staging.jujucharms.com/veebers/caas-mysql/mysql-image@sha256:eb3aa08c047efcb3e6bfcc3a28b80a2ec8c67b4315712b26679b0b22320f0b4a'
resource_username:
type: string
description: "Username for rego"
default: "docker-registry"
resource_password:
type: string
description: "Password for rego"
default: "<password from api call goes here>"
user:
type: string
description: 'The database user name.'
default: 'admin'
password:
type: string
description: 'The database user password.'
default: 'password'
database:
type: string
description: 'The database name.'
default: 'database'
root_password:
type: string
description: 'The database root password.'
default: 'root'
mysql_port:
type: string
description: 'The mysql port'
default: '3306'
query-cache-type:
default: "OFF"
type: string
description: "Query cache is usually a good idea, but can hurt concurrency.\
\ Valid values are \"OFF\", \"ON\", or \"DEMAND\". http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_query_cache_type"
"query-cache-size:
default: !!int "0"
type: int
description: "Override the computed version from dataset-size. Still works if\
\ query-cache-type is \"OFF\" since sessions can override the cache type setting\
\ on their own."
4 changes: 4 additions & 0 deletions charms/mysql/metadata.yaml
Expand Up @@ -15,3 +15,7 @@ provides:
interface: mysql
series:
- kubernetes
resources:
mysql_image:
type: docker
description: "Image used for mysql pod."
33 changes: 30 additions & 3 deletions charms/mysql/reactive/mysql.py
@@ -1,8 +1,17 @@
import json

from charms.layer.basic import pod_spec_set
from charms.reactive import when, when_not
from charms.reactive.flags import set_flag, get_state
from charmhelpers.core.hookenv import log, metadata, status_set, config,\
network_get, relation_id
from charmhelpers.core.hookenv import (
log,
metadata,
status_set,
config,
network_get,
relation_id,
resource_get,
)


@when_not('mysql.configured')
Expand Down Expand Up @@ -33,9 +42,27 @@ def make_pod_spec():
root_password = cfg.get('root_password')
set_flag('root_password', root_password)

# Grab the details from resource-get, untested.
# mysql_image_details_path = resource_get("mysql_image")
# if not mysql_image_details_path:
# raise Exception("unable to retrieve mysql image details")

# with open(mysql_image_details_path, "rt") as f:
# mysql_image_details = json.load(f)

# docker_image_path = mysql_image_details('mysql_image')
# docker_image_username = mysql_image_details('resource_username')
# docker_image_password = mysql_image_details('resource_password')

docker_image_path = cfg.get('mysql_image')
docker_image_username = cfg.get('resource_username')
docker_image_password = cfg.get('resource_password')

data = {
'name': md.get('name'),
'image': cfg.get('mysql_image'),
'docker_image_path': docker_image_path,
'docker_image_username': docker_image_username,
'docker_image_password': docker_image_password,
'port': cfg.get('mysql_port'),
'user': user,
'password': password,
Expand Down
5 changes: 4 additions & 1 deletion charms/mysql/reactive/spec_template.yaml
@@ -1,6 +1,9 @@
containers:
- name: %(name)s
image: %(image)s
imageDetails:
imagePath: %(docker_image_path)s
username: %(docker_image_username)s
password: %(docker_image_password)s
ports:
- containerPort: %(port)s
protocol: TCP
Expand Down

0 comments on commit 713d0bd

Please sign in to comment.