示例#1
0
    __opts__=ResourceOptions(
        parent=resource_group, depends_on=[acr_assignment, subnet_assignment]
    ),
)

k8s_provider = Provider(
    "k8s", kubeconfig=aks.kube_config_raw, __opts__=ResourceOptions(parent=aks)
)

labels = {"app": "nginx"}
nginx = Deployment(
    "k8s-nginx",
    spec={
        "selector": {"matchLabels": labels},
        "replicas": 1,
        "template": {
            "metadata": {"labels": labels},
            "spec": {"containers": [{"name": "nginx", "image": "nginx"}]},
        },
    },
    __opts__=ResourceOptions(parent=k8s_provider, provider=k8s_provider),
)

ingress = Service(
    "k8s-nginx",
    spec={"type": "LoadBalancer", "selector": labels, "ports": [{"port": 80}]},
    __opts__=ResourceOptions(parent=k8s_provider, provider=k8s_provider),
)

kulado.export("kubeconfig", aks.kube_config_raw)
示例#2
0
# Copyright 2016-2018, Kulado Corporation.  All rights reserved.

import kulado
from kulado_aws import ec2
from ami import get_linux_ami

size = 't2.micro'

group = ec2.SecurityGroup('web-secgrp',
    description='Enable HTTP access',
    ingress=[
        { 'protocol': 'tcp', 'from_port': 80, 'to_port': 80, 'cidr_blocks': ['0.0.0.0/0'] }
    ])

user_data = """
#!/bin/bash
echo "Hello, World!" > index.html
nohup python -m SimpleHTTPServer 80 &
"""

server = ec2.Instance('web-server-www',
    instance_type=size,
    security_groups=[group.name],
    user_data=user_data,
    ami=get_linux_ami(size))

kulado.export('public_ip', server.public_ip)
kulado.export('public_dns', server.public_dns)
示例#3
0
# Copyright 2016-2019, Kulado Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import kulado
from kulado_kubernetes.core.v1 import Pod, Namespace

namespace = Namespace("ns")

pod = Pod(
    "smoke-test",
    metadata={
        "namespace": namespace,
    },
    spec={
        "containers": [
            {"name": "nginx", "image": "nginx"},
        ]
    })

kulado.export("ip", pod.status["pod_ip"])
示例#4
0
# Copyright 2016-2018, Kulado Corporation.  All rights reserved.

import iam
import kulado
from kulado_aws import lambda_, sfn

hello_world_fn = lambda_.Function(
    'helloWorldFunction',
    role=iam.lambda_role.arn,
    runtime="python2.7",
    handler="hello_step.hello",
    code=kulado.AssetArchive({'.': kulado.FileArchive('./step_hello')}))

state_defn = state_machine = sfn.StateMachine(
    'stateMachine',
    role_arn=iam.sfn_role.arn,
    definition=hello_world_fn.arn.apply(lambda arn: """{
        "Comment": "A Hello World example of the Amazon States Language using an AWS Lambda Function",
        "StartAt": "HelloWorld",
        "States": {
            "HelloWorld": {
                "Type": "Task",
                "Resource": "%s",
                "End": true
            }
        }
    }""" % arn))

kulado.export('state_machine_arn', state_machine.id)
示例#5
0
                            location=resource_group.location,
                            network_interface_ids=[network_iface.id],
                            vm_size="Standard_A0",
                            delete_data_disks_on_termination=True,
                            delete_os_disk_on_termination=True,
                            os_profile={
                                "computer_name": "hostname",
                                "admin_username": username,
                                "admin_password": password,
                                "custom_data": userdata,
                            },
                            os_profile_linux_config={
                                "disable_password_authentication": False,
                            },
                            storage_os_disk={
                                "create_option": "FromImage",
                                "name": "myosdisk1",
                            },
                            storage_image_reference={
                                "publisher": "canonical",
                                "offer": "UbuntuServer",
                                "sku": "16.04-LTS",
                                "version": "latest",
                            })

combined_output = Output.all(vm.id, public_ip.name,
                             public_ip.resource_group_name)
public_ip_addr = combined_output.apply(
    lambda lst: network.get_public_ip(name=lst[1], resource_group_name=lst[2]))
kulado.export("public_ip", public_ip_addr.ip_address)
示例#6
0
    obj = s3.BucketObject(file,
                          bucket=web_bucket.id,
                          source=FileAsset(filepath),
                          content_type=mime_type)


def public_read_policy_for_bucket(bucket_name):
    return json.dumps({
        "Version":
        "2012-10-17",
        "Statement": [{
            "Effect": "Allow",
            "Principal": "*",
            "Action": ["s3:GetObject"],
            "Resource": [
                f"arn:aws:s3:::{bucket_name}/*",
            ]
        }]
    })


bucket_name = web_bucket.id
bucket_policy = s3.BucketPolicy(
    "bucket-policy",
    bucket=bucket_name,
    policy=bucket_name.apply(public_read_policy_for_bucket))

# Export the name of the bucket
export('bucket_name', web_bucket.id)
export('website_url', web_bucket.website_endpoint)