mirror of https://github.com/helm/helm
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.8 KiB
60 lines
1.8 KiB
# Copyright 2014 Google Inc. All Rights Reserved.
|
|
|
|
#% description: Creates a VM running a Salt master daemon in a Docker container.
|
|
#% parameters:
|
|
#% - name: masterAddress
|
|
#% type: string
|
|
#% description: Name of the Salt master VM.
|
|
#% required: true
|
|
#% - name: project
|
|
#% type: string
|
|
#% description: Name of the Cloud project.
|
|
#% required: true
|
|
#% - name: zone
|
|
#% type: string
|
|
#% description: Zone to create the resources in.
|
|
#% required: true
|
|
|
|
"""Generates config for a VM running a SaltStack master.
|
|
|
|
Just for fun this template is in Python, while the others in this
|
|
directory are in Jinja2.
|
|
"""
|
|
|
|
|
|
def GenerateConfig(evaluation_context):
|
|
return """
|
|
resources:
|
|
- type: compute.v1.firewall
|
|
name: %(master)s-firewall
|
|
properties:
|
|
network: https://www.googleapis.com/compute/v1/projects/%(project)s/global/networks/default
|
|
sourceRanges: [ "0.0.0.0/0" ]
|
|
allowed:
|
|
- IPProtocol: tcp
|
|
ports: [ "4505", "4506" ]
|
|
- type: compute.v1.instance
|
|
name: %(master)s
|
|
properties:
|
|
zone: %(zone)s
|
|
machineType: https://www.googleapis.com/compute/v1/projects/%(project)s/zones/%(zone)s/machineTypes/f1-micro
|
|
disks:
|
|
- deviceName: boot
|
|
type: PERSISTENT
|
|
boot: true
|
|
autoDelete: true
|
|
initializeParams:
|
|
sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619
|
|
networkInterfaces:
|
|
- network: https://www.googleapis.com/compute/v1/projects/%(project)s/global/networks/default
|
|
accessConfigs:
|
|
- name: External NAT
|
|
type: ONE_TO_ONE_NAT
|
|
metadata:
|
|
items:
|
|
- key: startup-script
|
|
value: startup-script-value
|
|
""" % {"master": evaluation_context.properties["masterAddress"],
|
|
"project": evaluation_context.env["project"],
|
|
"zone": evaluation_context.properties["zone"]}
|