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| |