Quality services you can depend on.
We leverage latest software technologies.
Get latest news on upcoming Eva Automation Platform.
We provide a wide range of benefits.
We offer competitive pricing.
Cloud management and infrastructure made simple.
Eva Automation is a modern platform that allows people in general, not just developers, to easily manage cloud infrastructure including DevOps and automation. It is powered by Eva Scripting Language that was based on the concept of having infrastructure as code or IaC. Stay tuned or subscribe to get latest updates on the platform.
run {
var i = 10
var j = (i + 10) * 5
var b = false
}
run jobs {
var i = 1
if ($i == 1) {
run jobs/integration.eva
}
elseif ($i != 2) {
run jobs/regression.eva
}
else {
run jobs/release.eva
}
}
run nightly(count 10) {
for ($i 1 to $count) {
echo "Running test case #" + $i
run jobs/tests/test_case_$i.eva "output-dir"
}
}
command { name bash; type '.sh'; path '/bin/bash'; }
def list_dir(dir "/nfs/default") {
echo "Showing contents of $dir"
bash /nfs/scripts/list_dir.sh $dir
}
run main {
run list_dir "/nfs/devops"
}
#
# function/simple.eva:
# def simple("default string value") {
# echo "Definition for simple function. Name: $function, Argument: $1"
# }
#
import function/simple.eva
run main {
run simple "Invoking simple function that was defined by import command."
}

import core/app.eva
import aws/route.eva
import aws/s3.eva
import kube/cluster.eva
run {
echo "running aws commands"
set domain = 'demo.evadevops.com'
set bucket = $domain
aws --version
# clean up bucket for demo
if (aws.s3.existsBucket($bucket)) {
echo "removing s3 bucket: $bucket"
aws.s3.removeBucket($bucket, true)
}
echo "creating s3 bucket for kubernetes state store"
aws.s3.createBucket($bucket)
echo "enabling s3 bucket versioning for recovery"
aws.s3.bucketVersioning($bucket)
app.rawOutput(true)
if (!aws.route.existsHostedZone($domain)) {
echo "creating hosted zone for $domain"
aws.route.createHostedZone($domain)
}
else {
echo "hosted zone for $domain already created."
set id=$(aws route53 list-hosted-zones | jq .HostedZones[0].Id)
echo "hosted zone id: $id"
aws.route.showHostedZone($id)
}
echo "creating kubernetes cluster on aws"
kube.cluster.create(
demo.evadevops.com, # cluster name
3, # node count excluding master
t2.micro, # ec2 instance type
8, # ec2 volume size in GB
'us-east-2a,us-east-2b' # hosted zones for cluster
)
}
Show Log
DATETIME| MEMORY| STATUS| LOG
2019-09-05 03:55:13| 2.00M| info| ________________________________________
2019-09-05 03:55:13| 2.00M| info| | Eva Automation Runner, 1.0.0.1849
2019-09-05 03:55:13| 2.00M| info| | Application: /home/ubuntu/app/eva
2019-09-05 03:55:13| 2.00M| info| | Module: eva-aws.eva
2019-09-05 03:55:13| 2.00M| info| | LogFile: eva-aws.log
2019-09-05 03:55:13| 2.00M| info| | WorkingDir: /home/ubuntu/app/demo
2019-09-05 03:55:13| 2.00M| info| | CmdLine: eva eva-aws.eva --log-file --log-all --show-all
2019-09-05 03:55:13| 2.00M| info| | RunDate: 09-05-2019 03:55:13
2019-09-05 03:55:13| 2.00M| info|
2019-09-05 03:55:13| 2.00M| info| Import search paths
2019-09-05 03:55:13| 2.00M| info| /home/ubuntu/eva/import/eva
2019-09-05 03:55:13| 2.00M| info| /home/ubuntu/eva/import/usr
2019-09-05 03:55:13| 2.00M| info| /home/ubuntu/app/demo
2019-09-05 03:55:13| 2.00M| info|
2019-09-05 03:55:13| 3.00M| info| Command search paths
2019-09-05 03:55:13| 3.00M| info| /usr/bin
2019-09-05 03:55:13| 3.00M| info| /usr/local/bin
2019-09-05 03:55:13| 3.00M| info| /home/ubuntu/eva
2019-09-05 03:55:13| 3.00M| info| /home/ubuntu/.local/bin
2019-09-05 03:55:13| 3.00M| info| /home/ubuntu/eva
2019-09-05 03:55:13| 3.00M| info| /usr/local/sbin
2019-09-05 03:55:13| 3.00M| info| /usr/local/bin
2019-09-05 03:55:13| 3.00M| info| /usr/sbin
2019-09-05 03:55:13| 3.00M| info| /sbin
2019-09-05 03:55:13| 3.00M| info| /bin
2019-09-05 03:55:13| 3.00M| info| /usr/games
2019-09-05 03:55:13| 3.00M| info| /usr/local/games
2019-09-05 03:55:13| 3.00M| info| /snap/bin
2019-09-05 03:55:13| 3.00M| info|
2019-09-05 03:55:13| 3.00M| info| Load commands from /home/ubuntu/eva/command/register.eva
2019-09-05 03:55:13| 3.00M| info| Searching command: ant, path not found
2019-09-05 03:55:13| 3.00M| info| Found command: aws, path /home/ubuntu/.local/bin/aws
2019-09-05 03:55:13| 3.00M| info| Loading command: bash, path /bin/bash
2019-09-05 03:55:13| 3.00M| info| Loading command: cmake, path /usr/bin/cmake
2019-09-05 03:55:13| 4.00M| info| Searching command: cmd, path not found
2019-09-05 03:55:13| 4.00M| info| Loading command: git, path /usr/bin/git
2019-09-05 03:55:13| 4.00M| info| Searching command: go, path not found
2019-09-05 03:55:13| 4.00M| info| Searching command: gradle, path not found
2019-09-05 03:55:13| 4.00M| info| Searching command: java, path not found
2019-09-05 03:55:13| 4.00M| info| Searching command: mvn, path not found
2019-09-05 03:55:13| 4.00M| info| Loading command: node, path /usr/bin/node
2019-09-05 03:55:13| 4.00M| info| Loading command: perl, path /usr/bin/perl
2019-09-05 03:55:13| 4.00M| info| Searching command: php, path not found
2019-09-05 03:55:13| 4.00M| info| Loading command: python, path /usr/bin/python
2019-09-05 03:55:13| 4.00M| info| Searching command: ruby, path not found
2019-09-05 03:55:13| 4.00M| info| Searching command: svn, path not found
2019-09-05 03:55:13| 4.00M| info| ________________________________________
2019-09-05 03:55:13| 4.00M| info| | name inline, eva-aws.eva, guid BJKY-NXUR-UTJQ
2019-09-05 03:55:13| 4.00M| info|
2019-09-05 03:55:13| 4.00M| info| running aws commands
2019-09-05 03:55:13| 4.00M| info| | command /home/ubuntu/.local/bin/aws
2019-09-05 03:55:13| 4.00M| info| | aws --version
2019-09-05 03:55:13| 4.00M| info| aws-cli/1.16.117 Python/2.7.15rc1 Linux/4.15.0-1021-aws botocore/1.12.107
2019-09-05 03:55:14| 4.00M| info| removing s3 bucket: demo.evadevops.com
2019-09-05 03:55:14| 4.00M| info| | name aws.s3.removeBucket, aws/s3.eva
2019-09-05 03:55:14| 4.00M| info| | command /home/ubuntu/.local/bin/aws
2019-09-05 03:55:14| 4.00M| info| | aws s3 rb s3://demo.evadevops.com --force
2019-09-05 03:55:14| 4.00M| info| delete: s3://demo.evadevops.com/demo.evadevops.com/cluster.spec
2019-09-05 03:55:14| 4.00M| info| delete: s3://demo.evadevops.com/demo.evadevops.com/config
2019-09-05 03:55:14| 4.00M| info| delete: s3://demo.evadevops.com/demo.evadevops.com/pki/ssh/public/admin/53270f864008fc61980f72b7b0770f08
2019-09-05 03:55:14| 4.00M| info| delete: s3://demo.evadevops.com/demo.evadevops.com/instancegroup/nodes
2019-09-05 03:55:14| 4.00M| info| delete: s3://demo.evadevops.com/demo.evadevops.com/instancegroup/master-us-east-2a
2019-09-05 03:55:14| 4.00M| info| remove_bucket: demo.evadevops.com
2019-09-05 03:55:14| 4.00M| info| creating s3 bucket for kubernetes state store
2019-09-05 03:55:14| 4.00M| info| | name aws.s3.createBucket, aws/s3.eva
2019-09-05 03:55:14| 4.00M| info| | command /home/ubuntu/.local/bin/aws
2019-09-05 03:55:14| 4.00M| info| | aws s3 mb s3://demo.evadevops.com
2019-09-05 03:55:15| 4.00M| info| make_bucket: demo.evadevops.com
2019-09-05 03:55:15| 4.00M| info| KOPS_STATE_STORE: s3://demo.evadevops.com
2019-09-05 03:55:15| 4.00M| info| | name app.rawOutput, core/app.eva
2019-09-05 03:55:16| 4.00M| info| hosted zone for demo.evadevops.com already created.
2019-09-05 03:55:16| 4.00M| info| hosted zone id: /hostedzone/A11YEJUQVKPK0
2019-09-05 03:55:16| 4.00M| info| | name aws.route.showHostedZone, aws/route.eva
2019-09-05 03:55:16| 4.00M| info| | command /home/ubuntu/.local/bin/aws
2019-09-05 03:55:16| 4.00M| info| | aws route53 get-hosted-zone --id /hostedzone/A11YEJUQVKPK0
2019-09-05 03:55:16| 4.00M| info| {
2019-09-05 03:55:16| 4.00M| info| "HostedZone": {
2019-09-05 03:55:16| 4.00M| info| "ResourceRecordSetCount": 3,
2019-09-05 03:55:16| 4.00M| info| "CallerReference": "96e2483e-20ed-45de-adcc-d36348a0e4ba",
2019-09-05 03:55:16| 4.00M| info| "Config": {
2019-09-05 03:55:16| 4.00M| info| "PrivateZone": false
2019-09-05 03:55:16| 4.00M| info| },
2019-09-05 03:55:16| 4.00M| info| "Id": "/hostedzone/A11YEJUQVKPK0",
2019-09-05 03:55:16| 4.00M| info| "Name": "demo.evadevops.com."
2019-09-05 03:55:16| 4.00M| info| },
2019-09-05 03:55:16| 4.00M| info| "DelegationSet": {
2019-09-05 03:55:16| 4.00M| info| "NameServers": [
2019-09-05 03:55:16| 4.00M| info| "ns-1877.awsdns-42.co.uk",
2019-09-05 03:55:16| 4.00M| info| "ns-1455.awsdns-53.org",
2019-09-05 03:55:16| 4.00M| info| "ns-629.awsdns-14.net",
2019-09-05 03:55:16| 4.00M| info| "ns-346.awsdns-43.com"
2019-09-05 03:55:16| 4.00M| info| ]
2019-09-05 03:55:16| 4.00M| info| }
2019-09-05 03:55:16| 4.00M| info| }
2019-09-05 03:55:16| 4.00M| info| creating kubernetes cluster on aws
2019-09-05 03:55:16| 4.00M| info| | name kube.cluster.create, kube/cluster.eva
2019-09-05 03:55:16| 4.00M| info| | kops create cluster --name demo.evadevops.com --node-count 2 --master-size t2.micro --master-volume-size 8 --node-size t2.micro --node-volume-size 8 --zones us-east-2a,us-east-2b --state s3://demo.evadevops.com --yes
2019-09-05 03:55:17| 4.00M| info| I0305 03:55:17.308424 12413 create_cluster.go:496] Inferred --cloud=aws from zone "us-east-2a"
2019-09-05 03:55:17| 4.00M| info| I0305 03:55:17.358682 12413 subnets.go:184] Assigned CIDR 172.20.32.0/19 to subnet us-east-2a
2019-09-05 03:55:17| 4.00M| info| I0305 03:55:17.358952 12413 subnets.go:184] Assigned CIDR 172.20.64.0/19 to subnet us-east-2b
2019-09-05 03:55:17| 4.00M| info| I0305 03:55:17.672393 12413 create_cluster.go:1407] Using SSH public key: /home/ubuntu/.ssh/id_rsa.pub
2019-09-05 03:55:18| 4.00M| info| I0305 03:55:18.627293 12413 executor.go:103] Tasks: 0 done / 75 total; 31 can run
2019-09-05 03:55:19| 4.00M| info| I0305 03:55:19.262893 12413 vfs_castore.go:736] Issuing new certificate: "ca"
2019-09-05 03:55:19| 4.00M| info| I0305 03:55:19.401674 12413 vfs_castore.go:736] Issuing new certificate: "apiserver-aggregator-ca"
2019-09-05 03:55:19| 4.00M| info| I0305 03:55:19.570468 12413 executor.go:103] Tasks: 31 done / 75 total; 25 can run
2019-09-05 03:55:20| 4.00M| info| I0305 03:55:20.773913 12413 vfs_castore.go:736] Issuing new certificate: "kubecfg"
2019-09-05 03:55:20| 4.00M| info| I0305 03:55:20.779476 12413 vfs_castore.go:736] Issuing new certificate: "kubelet"
2019-09-05 03:55:20| 4.00M| info| I0305 03:55:20.911353 12413 vfs_castore.go:736] Issuing new certificate: "apiserver-aggregator"
2019-09-05 03:55:21| 4.00M| info| I0305 03:55:21.055060 12413 vfs_castore.go:736] Issuing new certificate: "kops"
2019-09-05 03:55:21| 4.00M| info| I0305 03:55:21.517710 12413 vfs_castore.go:736] Issuing new certificate: "master"
2019-09-05 03:55:21| 4.00M| info| I0305 03:55:21.734986 12413 vfs_castore.go:736] Issuing new certificate: "kube-proxy"
2019-09-05 03:55:22| 4.00M| info| I0305 03:55:22.365290 12413 vfs_castore.go:736] Issuing new certificate: "kube-scheduler"
2019-09-05 03:55:22| 4.00M| info| I0305 03:55:22.369942 12413 vfs_castore.go:736] Issuing new certificate: "apiserver-proxy-client"
2019-09-05 03:55:22| 4.00M| info| I0305 03:55:22.411061 12413 vfs_castore.go:736] Issuing new certificate: "kubelet-api"
2019-09-05 03:55:22| 4.00M| info| I0305 03:55:22.489075 12413 vfs_castore.go:736] Issuing new certificate: "kube-controller-manager"
2019-09-05 03:55:22| 4.00M| info| I0305 03:55:22.678623 12413 executor.go:103] Tasks: 56 done / 75 total; 17 can run
2019-09-05 03:55:22| 4.00M| info| I0305 03:55:22.895736 12413 launchconfiguration.go:380] waiting for IAM instance profile "masters.demo.evadevops.com" to be ready
2019-09-05 03:55:22| 4.00M| info| I0305 03:55:22.903166 12413 launchconfiguration.go:380] waiting for IAM instance profile "nodes.demo.evadevops.com" to be ready
2019-09-05 03:55:33| 4.00M| info| I0305 03:55:33.273599 12413 executor.go:103] Tasks: 73 done / 75 total; 2 can run
2019-09-05 03:55:33| 4.00M| info| I0305 03:55:33.845829 12413 executor.go:103] Tasks: 75 done / 75 total; 0 can run
2019-09-05 03:55:33| 4.00M| info| I0305 03:55:33.846100 12413 dns.go:153] Pre-creating DNS records
2019-09-05 03:55:34| 4.00M| info| I0305 03:55:34.482450 12413 update_cluster.go:290] Exporting kubecfg for cluster
2019-09-05 03:55:34| 4.00M| info| kops has set your kubectl context to demo.evadevops.com
2019-09-05 03:55:34| 4.00M| info|
2019-09-05 03:55:34| 4.00M| info| Cluster is starting. It should be ready in a few minutes.
2019-09-05 03:55:34| 4.00M| info|
2019-09-05 03:55:34| 4.00M| info| Suggestions:
2019-09-05 03:55:34| 4.00M| info| * validate cluster: kops validate cluster
2019-09-05 03:55:34| 4.00M| info| * list nodes: kubectl get nodes --show-labels
2019-09-05 03:55:34| 4.00M| info| * ssh to the master: ssh -i ~/.ssh/id_rsa admin@api.demo.evadevops.com
2019-09-05 03:55:34| 4.00M| info| * the admin user is specific to Debian. If not using Debian please use the appropriate user based on your OS.
2019-09-05 03:55:34| 4.00M| info| * read about installing addons at: https://github.com/kubernetes/kops/blob/master/docs/addons.md.
2019-09-05 03:55:34| 4.00M| info|
2019-09-05 03:55:34| 4.00M| info| check if nodes are ready: kubectl get nodes
2019-09-05 03:55:34| 4.00M| info|
2019-09-05 03:55:34| 4.00M| info| | runtime 0 sec, memory used 0.00 MB, guid BJKY-NXUR-UTJQ
2019-09-05 03:55:34| 4.00M| info| ________________________________________
2019-09-05 03:55:34| 4.00M| info| | Eva Run Summary
2019-09-05 03:55:34| 4.00M| info| |
2019-09-05 03:55:34| 4.00M| info| | runtime 0 sec, max memory 2.00 MB
2019-09-05 03:55:34| 4.00M| info| |
2019-09-05 03:55:34| 4.00M| info| | run completed. (0 error, 0 warning)
2019-09-05 03:55:34| 4.00M| info| |


