This the multi-page printable view of this section. Click here to print.
AWS
1 - Minimal
As of v1.3.4, LambdaStack requires you to change the following attributes in the either the minimal or full configuration YAML. Beginning in v2.0, you will have the option to pass in these parameters to override whatever is present in the yaml file. v2.0 is in active development
All but the last two options are defaults. The last two are
AWS Key
andAWS Secret
- these two are required
Attributes to change for the minimal configuration After you run `lambdastack init -p aws -n
prefix: staging
- Staging is a default prefix. You can use whatever you like (e.g.,production
). This value can help group your AWS clusters in the same region for easier maintenancename: ubuntu
- This attribute is underspecification.admin_user.name
. For ubuntu on AWS the default user name isubuntu
. For Redhat we default tooperations
key_path: lambdastack-operations
- This is the default SSH key file(s) name. This is the name of your SSH public and private key pairs. For example, in this example, one file (private one) would be namedlambdastack-operations
. The second file (public key) typically has a.pub
suffix such aslambdastack-operations.pub
use_public_ips: True
- This is the default public IP value. Important, this attribute by default allows for AWS to build your clusters with a public IP interface. We also build a private (non-public) interface using private IPs for internal communication between the nodes. With this attribute set topublic
it simply allows you easy access to the cluster so you can SSH into it using thename
attribute value from above. This isNOT RECOMMENDED
for sure not in production and not as a general rule. You should have a VPN or direct connect and route for the clusterregion: us-east-1
- This is the default region setting. This means that your cluster and storage will be created in AWS'us-east-1
region. Important - If you want to change this value in any way, you should use thefull configuration
and then change ALL references of region in the yaml file. If you do not then you may have services in regions you don't want and that may create problems for youkey: XXXXXXXXXX
- This is very important. This, along withsecret
are used to access your AWS cluster programmatically which LambdaStack needs. This can be found atspecification.cloud.credentials.key
. This can be found under your AWS Account menu option in Security Credentialssecret: XXXXXXXXXXXXX
- This is very important. This, along withkey
are used to access your AWS cluster programmatically which LambdaStack needs. This can be found atspecification.cloud.credentials.secret
. This can be found under your AWS Account menu option in Security Credentials. This can only be seen at the time you create it so use the download option and save the file somewhere safe. DO NOT save the file in your source code repo!
Now that you have made your changes to the lambdastack apply -f build/<whatever you name your cluster>/<whatever you name your cluster>.yml
. Now the building of a LambdaStack cluster will begin. Apply
option will generate a final manifest.yml
file that will be used for Terraform, Ansible and LambdaStack python code. The manifest.yml
will combine the values from below plus ALL yaml configuration files for each service.
---
kind: lambdastack-cluster
title: "LambdaStack Cluster Config"
provider: aws
name: "default"
build_path: "build/path" # This gets dynamically built
specification:
name: lambdastack
prefix: staging # Can be anything you want that helps quickly identify the cluster
admin_user:
name: ubuntu # YOUR-ADMIN-USERNAME
key_path: lambdastack-operations # YOUR-SSH-KEY-FILE-NAME
path: "/shared/build/<name of cluster>/keys/ssh/lambdastack-operations" # Will get dynamically created
cloud:
k8s_as_cloud_service: False
use_public_ips: True # When not using public IPs you have to provide connectivity via private IPs (VPN)
region: us-east-1
credentials:
key: XXXXXXXXXX # AWS Subscription Key
secret: XXXXXXXXX # AWS Subscription Secret
default_os_image: default
components:
repository:
count: 1
kubernetes_master:
count: 1
kubernetes_node:
count: 2
logging:
count: 1
monitoring:
count: 1
kafka:
count: 2
postgresql:
count: 1
load_balancer:
count: 1
rabbitmq:
count: 1
2 - Full
As of v1.3.4, LambdaStack requires you to change the following attributes in the either the minimal or full configuration YAML. Beginning in v2.0, you will have the option to pass in these parameters to override whatever is present in the yaml file. v2.0 is in active development
All but the last two options are defaults. The last two are
AWS Key
andAWS Secret
- these two are required
Attributes to change for the full configuration After you run `lambdastack init -p aws -n
prefix: staging
- Staging is a default prefix. You can use whatever you like (e.g.,production
). This value can help group your AWS clusters in the same region for easier maintenancename: ubuntu
- This attribute is underspecification.admin_user.name
. For ubuntu on AWS the default user name isubuntu
. For Redhat we default tooperations
key_path: lambdastack-operations
- This is the default SSH key file(s) name. This is the name of your SSH public and private key pairs. For example, in this example, one file (private one) would be namedlambdastack-operations
. The second file (public key) typically has a.pub
suffix such aslambdastack-operations.pub
use_public_ips: True
- This is the default public IP value. Important, this attribute by default allows for AWS to build your clusters with a public IP interface. We also build a private (non-public) interface using private IPs for internal communication between the nodes. With this attribute set topublic
it simply allows you easy access to the cluster so you can SSH into it using thename
attribute value from above. This isNOT RECOMMENDED
for sure not in production and not as a general rule. You should have a VPN or direct connect and route for the clusterregion: us-east-1
- This is the default region setting. This means that your cluster and storage will be created in AWS'us-east-1
region. Important - If you want to change this value in any way, you should use thefull configuration
and then change ALL references of region in the yaml file. If you do not then you may have services in regions you don't want and that may create problems for youkey: XXXXXXXXXX
- This is very important. This, along withsecret
are used to access your AWS cluster programmatically which LambdaStack needs. This can be found atspecification.cloud.credentials.key
. This can be found under your AWS Account menu option in Security Credentialssecret: XXXXXXXXXXXXX
- This is very important. This, along withkey
are used to access your AWS cluster programmatically which LambdaStack needs. This can be found atspecification.cloud.credentials.secret
. This can be found under your AWS Account menu option in Security Credentials. This can only be seen at the time you create it so use the download option and save the file somewhere safe. DO NOT save the file in your source code repo!
Now that you have made your changes to the lambdastack apply -f build/<whatever you name your cluster>/<whatever you name your cluster>.yml
. Now the building of a LambdaStack cluster will begin. Apply
option will generate a final manifest.yml
file that will be used for Terraform, Ansible and LambdaStack python code. The manifest.yml
will combine the values from below plus ALL yaml configuration files for each service.
---
kind: lambdastack-cluster
title: "LambdaStack Cluster Config"
provider: aws
name: "default"
build_path: "build/path" # This gets dynamically built
specification:
prefix: staging # Can be anything you want that helps quickly identify the cluster
name: lambdastack
admin_user:
name: ubuntu # YOUR-ADMIN-USERNAME
key_path: lambdastack-operations # YOUR-SSH-KEY-FILE-NAME
path: "/shared/build/<name of cluster>/keys/ssh/lambdastack-operations" # Will get dynamically created
cloud:
k8s_as_cloud_service: False
vnet_address_pool: 10.1.0.0/20
region: us-east-1
use_public_ips: True # When not using public IPs you have to provide connectivity via private IPs (VPN)
credentials:
key: XXXXXXXXXXX # AWS Subscription Key
secret: XXXXXXXXXXXX # AWS Subscription Secret
network:
use_network_security_groups: True
default_os_image: default
components:
kubernetes_master:
count: 1
machine: kubernetes-master-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.1.0/24
- availability_zone: us-east-1b
address_pool: 10.1.2.0/24
kubernetes_node:
count: 2
machine: kubernetes-node-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.1.0/24
- availability_zone: us-east-1b
address_pool: 10.1.2.0/24
logging:
count: 1
machine: logging-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.3.0/24
monitoring:
count: 1
machine: monitoring-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.4.0/24
kafka:
count: 2
machine: kafka-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.5.0/24
postgresql:
count: 0
machine: postgresql-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.6.0/24
load_balancer:
count: 1
machine: load-balancer-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.7.0/24
rabbitmq:
count: 0
machine: rabbitmq-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.8.0/24
ignite:
count: 0
machine: ignite-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.9.0/24
opendistro_for_elasticsearch:
count: 0
machine: logging-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.10.0/24
repository:
count: 1
machine: repository-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.11.0/24
single_machine:
count: 0
machine: single-machine
configuration: default
subnets:
- availability_zone: us-east-1a
address_pool: 10.1.1.0/24
- availability_zone: us-east-1b
address_pool: 10.1.2.0/24