Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions test/cluster/sandbox/example_sandbox.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ sandbox:
application:
vtgate_count: 1
enable_orchestrator: True
enable_guestbook: True
etcd_count: 3
cells:
- test1
Expand All @@ -40,10 +41,6 @@ sandbox:
mysql_cpu: 500m
vtgate_ram: 512Mi
vtgate_cpu: 500m
port_forwarding:
vtgate: 15001
vtctld: 15000
guestbook: 80
backup_flags:
backup_storage_implementation: gcs
gcs_backup_storage_bucket: 'my-builtin-backup'
34 changes: 6 additions & 28 deletions test/cluster/sandbox/vitess_kubernetes_sandbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,30 +27,13 @@ class VitessKubernetesSandbox(sandbox.Sandbox):
def __init__(self, sandbox_options):
super(VitessKubernetesSandbox, self).__init__(sandbox_options)

def generate_firewall_sandlet(self):
"""Generates sandlet for firewall rules."""
firewall_sandlet = sandlet.Sandlet('firewall')

if 'vtctld' in self.app_options.port_forwarding:
firewall_sandlet.components.add_component(
self.cluster_env.Port('%s-vtctld' % self.name,
self.app_options.port_forwarding['vtctld']))
if 'vtgate' in self.app_options.port_forwarding:
for cell in self.app_options.cells:
firewall_sandlet.components.add_component(
self.cluster_env.Port('%s-vtgate-%s' % (self.name, cell),
self.app_options.port_forwarding['vtgate']))
if 'guestbook' in self.app_options.port_forwarding:
firewall_sandlet.components.add_component(
self.cluster_env.Port('%s-guestbook' % self.name,
self.app_options.port_forwarding['guestbook']))
self.sandlets.add_component(firewall_sandlet)

def generate_guestbook_sandlet(self):
"""Creates a sandlet encompassing the guestbook app built on Vitess."""
guestbook_sandlet = sandlet.Sandlet('guestbook')
guestbook_sandlet.dependencies = ['helm']
template_dir = os.path.join(os.environ['VTTOP'], 'examples/kubernetes')
guestbook_sandlet.components.add_component(
self.cluster_env.Port('%s-guestbook' % self.name, 80))
for keyspace in self.app_options.keyspaces:
create_schema_subprocess = subprocess_component.Subprocess(
'create_schema_%s' % keyspace['name'], self.name, 'create_schema.py',
Expand Down Expand Up @@ -249,26 +232,21 @@ def generate_from_config(self):
'Struct', self.sandbox_options['application'].keys())(
*self.sandbox_options['application'].values())

if any(k in self.app_options.port_forwarding
for k in ['vtgate', 'vtctld', 'guestbook']):
self.generate_firewall_sandlet()
self.generate_helm_sandlet()
if 'guestbook' in self.app_options.port_forwarding:
if self.app_options.enable_guestbook:
self.generate_guestbook_sandlet()

def print_banner(self):
logging.info('Fetching forwarded ports.')
banner = '\nVitess Sandbox Info:\n'
vtctld_port = self.app_options.port_forwarding['vtctld']
vtgate_port = self.app_options.port_forwarding['vtgate']
vtctld_ip = kubernetes_components.get_forwarded_ip(
'vtctld', self.name)
banner += ' vtctld: http://%s:%d\n' % (vtctld_ip, vtctld_port)
banner += ' vtctld: http://%s:15000\n' % vtctld_ip
for cell in self.app_options.cells:
vtgate_ip = kubernetes_components.get_forwarded_ip(
'vtgate-%s' % cell, self.name)
banner += ' vtgate-%s: http://%s:%d\n' % (cell, vtgate_ip, vtgate_port)
if 'guestbook' in self.app_options.port_forwarding:
banner += ' vtgate-%s: http://%s:15001\n' % (cell, vtgate_ip)
if self.app_options.enable_guestbook:
guestbook_ip = kubernetes_components.get_forwarded_ip(
'guestbook', self.name)
banner += ' guestbook: http://%s:80\n' % guestbook_ip
Expand Down