- java: update to JDK13
- aws: update to version 1.11.
- bug: fix subnets parameter typo
- bug: fix NPE on DeleteELBTask workflow
- aws: update to version 1.11.540
- gradle: update to version 5.4
- kafka: update role to version 2.2.0
- es: update role to version 7.0.0
- kibana: update role to version 7.0.0
- log-processor: update role to version 6.12.4
- log-processor: update role to version 6.6.4
- kibana: update role to version 6.3.2
- es: update role to version 6.3.2
- aws: update to version 1.11.427
- jdk: update to JDK11
- node: fix node repo ansible role
- aws: update to version 1.11.402
- node: update to version 10.9.0
- aws: update to version 1.11.401
- gradle: update to version 4.10
- app: add app-legacy role using jdk8 - temporary role -
- aws: update to version 1.11.374
- kafka: fix download URL
- ansible: fix install command
- kafka: update to version 1.1.0
- kibana: update to version 6.3.0
- es: update to version 6.3.0
- app: add temporary workaround to fix jdk10 / ubuntu18 trustAnchors issue
- ansible: update app role to ubuntu 18
- jdk: upgrade to jdk10
- gradle: update to gradle 4.8
- aws: update to latest SDK version
- aws: update to latest SDK version
- gradle: update quality lib
- jdk: update to jdk 9 compatible
- elasticsearch: update/fix elasticsearch 6.x role
- kubernetes: update/fix kubernetes 1.9.6 role
- tg: fix sync issue (always tried to update target group)
- ec2: add support for m5 instance type
- elb: add support for application ELB
- node: update to 9.2.0
- kafka: update to 1.0.0
- docker: update to use docker-ce
- kibana: update to 6.0.0
- aws: fix AWS latest SDK deprecated old IpRange and switch to Ipv4Ranges
- kafka: update kafka to 0.10.1.1
- redis: support redis max memory policy for cache
- provision: removed ubuntu 14.04 support from ansible provisioner, now build-in roles and provision/bake only works with ubuntu 1604
- ec2: create instance into multiple AZ/Subnet if applicable
- exec: support multiple cmd
- es: update es/kibana to 5.0.0
- protocol: add all-tcp/all-udp for kubernetes cluster support
- kafka: update to 0.10.1.0
- nginx: removed PPA support, use official ubuntu repo
- mongo: disable NUMA, for ec2 m4.xlarge or larger instance
- ansible: role behavior changed with ubuntu1604, all roles are only for bake image, service will not start by default
- redis: update ansible playbook to support persistence rdb/aof
- docker: add docker engine role
- kibana: update kibana role to use download tar
- logroate: simplify logroate config, not upload to s3
- ubuntu: update all roles for ubuntu 16.04, removed supervisor/ec2 roles
- kafka: add kafka role
- jdk: move to openjdk-8-jre-headless with ubuntu 16.04
- tomcat: update to tomcat8
- rabbitmq: updated key path
- app: added app role into cmn
- kibana: added kibana role, now it has officially deb repo
- provision: update version for fixing uninterrupted dist-upgrade
- provision: run apt-get update dist-upgrade before ansible playbook
- sys: remove apt-get update/upgrade from role (which may cause ansible problem if update ansible during playbook execution)
- ansible: jenkins supports plugins
- provision: use private ip if public dns not available, for build server provision private subnet server (by Gabo)
- deploy: retry on throttling of ASG update
- mongodb: clustering support
- node: added repo
- bake: delete previous failed AMI during bake
- ec2: support ebs type
- mongodb: support db path as variable
- ec2: pass ebs-optimized = true for m4/c4 instance, it's not necessary since it's enabled by default, but there is bug in AWS console, it needs to pass it to display correct value
- es: install HQ plugin by default
- redis: set timeout to 7200s
- mongo: add logrotate conf
- cert: support Amazon Cert for ELB
- ansbile: update command line param according to latest version (sudo->become)
- mongo: update mongo role to 3.2.1
- redis/mongo: add tuning settings, disable thp, set max nofile, maxconn, overcommit
- supervisor: updated supervisor init script to adapt to ansible service restart (ansible "retart service" calls stop->start without delay)
- nat: support nat gateway
- ssh: support tunnel to ssh to private subnet
- iam: handle deleting instance profile but without role (not expected state, but make cmn ignore it)
- cloudwatch: removed ec2_cloudwatch_metrics, not useful to us
- ec2: delete snapshot when removing images
- ansible: removed varnish, don't plan to use
- docker: added docker folder for local dev
- sns: removed sns and sqs support
- tag: AWS bugs, the tag system may return old AMI id, put fix to ignore and warning if it happens
- elasticsearch: update default bulk queue_size from 50 to 500
- nginx: update gzip type (remove text/html since it's default)
- ec2: start instance will reattach instance to ELB, due to ELB will not refresh instance if its IP changed
- elasticsearch: update to 2.0
- elasticsearch: general tuning settings
- task: validate resourceId passed in
- deploy: wait random time before deploy to avoid AWS ASG rate limit
- elb: check cert local config if specified
- elb: AWS IAM cert deletion behavior changed, make update cert to delete ELB listener first
- ansible: update jenkins key url according to https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
- ec2: retry runInstance if request rate limit exceeds, (may happen on baking many instances during build)
- lib: update aws lib to latest
- bake: remote AMI can be in non available state, load remote images state during loading, to old delete out dated available AMI during bake
- lib: update lib up to date
- nginx: updated gzip type
- subnet: sort subnet by AZ, to make "instance" resource always uses first AZ, (deterministic behavior to make reserved instance easier to plan)
- ansible: rabbitmq install rabbitmq admin script
- ansible: supervisor supports empty env
- ansible: logrotate keep 7 days old log if not move to S3
- ansible: add kibana role
- validate ELB name
- updated AWS sdk to 1.10.8
- optimized ASG loading, use one request to load all LaunchConfig
- fix ASG delete planner, to use remote resource only for sync with deletion
- update elasticsearch role to 1.7
- instance deploy, wait until InService
- fix: strict linking between Image and unfinished bake instances, to clean up unfinished bake instances correctly
- fix: bake AMI sg name should be unique across env
- for SSH goal, make minimal AWS calls
- remove InstanceType enum, use String instead, so support all types
- IAM path can not contains '-' (AWS doc is wrong), revert path transform logic back
- updated AWS sdk version
- update nginx role to support custom conf
- SQS supports China region
- update EC2.availabilityZones() to return available ones
- create IAM instanceProfile and cert with original env name as path
- provision will use ami() package-dir/playbook by default
- support cn-north-1 region, which doesn't have M4/C4 instances, bake AMI will use M3.Large
- fixed unnecessary space in local cert will cause re-update cert.
- update rabbitmq/elasticsearch roles, to add log rotate support and other config
- recreate instance if new instance profile added or deleted
- update elasticsearch to 1.6.0
- update default nginx proxy setting to forward http_port, to make core-ng can construct requestURL
- support new M4 instances The trends of AWS is to use VPC/HVM instance, and no more ephemeral volumes, and enable EBS-optimized by default in future we should only use t2/m4/c4 instances, and use HVM ubuntu linux, this will simplify cmn
- remove EBS-optimized configuration
- remove mount ephemeral disk as SWAP ec2 scripts,
- refactory log folder and logrotate script to make sure shutdown hook gz log properly
- instance deploy will wait until ELB attach done
- make VPC required
- env config added, "bake-subnet-id:" for account doesn't have default VPC
- updated tomcat/supervisor/nginx role, not start on bake
- update rabbitmq role
- add supervisor support for core-ng application
- fixed ASG deployment issue, with manually updated ASG size, the deployment may not use right maxSize
- updated mongodb role to latest 3.0 and config
- add port range for SG, for passive FTP
#!yml
- security-group[dev]:
ingress:
- {cidr: 0.0.0.0/0, protocol: [ssh, http, 30000-40000]}
- support subscribe queue to topic
#!yml
- sqs[queue-1]:
- sqs[queue-2]:
- sns[topic]:
sqs-subscription: [queue-1, queue-2]
- explicitly shutdown old instance at end of ASG deploy, as ASG has issue may not choose oldest instance sometimes (probably because of multi-az)
- bake AMI can return "failed" state, break if it's failed.
- updated elasticsearch role to allow groovy script
- added build and jenkins role to provide simple support for build server
- simplified attach to elb task, now "deploy instance" will attach to ELB in time.
- structure refactory, simplify task design, prepare for further refactory
- add java monitor to collect heap usage and thread count
- !!! reorganized ec2/logrotate ansible roles, it's better to rebake baseAMI
- validate allowed/required param from command line input
- update SSH runner to keep alive with SSH session
- add memUsage cloudwatch metrics in EC2
- deploy ASG, check ELB state of new instances if applicable.
- removed memcached and activemq roles, don't use them anymore, and you can put into your env/ansible folder for custom roles.
- update tomcat default roles to support use "cmn provision" to release for non-ASG instances
- update ASG always use OldestInstance as termination policy, due to OldestLaunchConfig may not work properly when config was deleted during deployment
- enable ELB multi-zone load balancing for multi-az
- refactored AWS client to use plain design for simplicity and flexibility
- removed disabled resource support, always check all since most of them will be used
- support updating iam profile policy
- update health check settings for high load scenario
- only use HTTP connector of tomcat (according to perf test on AWS)
- nginx set x-forwarded-proto smartly, enable keep alive between nginx and tomcat
- ELB always forward to http port
- bake: use --resume-bake=true to auto pick previous instance,
- bake: bake will clean up previous failed instance/sg/key
- deployment: make ASG deployment more robust
- support "scheme: internal" for ELB in public subnet used for internal
- fix delete VPC should depends on delete SG
- support deploy goal
- removed instance bootstrap script support, (not needed anymore)
- make jdk 8 as default
- support mac os
- fix: auto assign public ip to AS group in public subnet