## TODO: What variables can we strip out of here to build complex variables? ## i.e. what can we add into group_vars as opposed to config_vars? ## Example: We don't really need "subdomain_base_short". If we want to use this, ## should just toss in group_vars/all. ### Also, we should probably just create a variable reference in the README.md ### For now, just tagging comments in line with configuration file. ###### VARIABLES YOU SHOULD CONFIGURE FOR YOUR DEPLOYEMNT ###### OR PASS as "-e" args to ansible-playbook command # # # # env_groups: # # limit: "tag_Project_opentlc_shared_{{guid}}" # # bastions: "tag_AnsibleGroup_bastions" # # masters: "tag_AnsibleGroup_masters" # # nodes: "tag_AnsibleGroup_nodes" # # infranodes: "tag_AnsibleGroup_infranodes" # # nfs: "tag_AnsibleGroup_nfs" # # # This doesn't work # all: "tag_Project_opentlc_shared_{{guid}}" # # # but maybe this is silly enough to work # #all: "tag_Project_opentlc_shared_{{guid}}:&tag_Project_opentlc_shared_{{guid}}" #rhn_pool_id_string: OpenShift Container Platform # bastions: "{{env_groups['limit']}}:&{{env_groups['bastions']}}" # masters: "{{env_groups['limit']}}:&{{env_groups['masters']}}" # nodes: "{{env_groups['limit']}}:&{{env_groups['nodes']}}" # infranodes: "{{env_groups['limit']}}:&{{env_groups['infranodes']}}" # nfs: "{{env_groups['limit']}}:&{{env_groups['nfs']}}" install_ipa_client: false repo_method: file ocp_pvs: # - es-storage # - nexus # - nexus2 # - nexus3 config_nfs_uservols: "true" user_vols: 200 user_vols_size: 4Gi master_api_port: 443 osrelease: 3.9.14 openshift_master_overwrite_named_certificates: true deploy_openshift: true deploy_openshift_post: true deploy_env_post: true install_metrics: true install_logging: true ovs_plugin: "subnet" # This can also be set to: "multitenant" multi_tenant_setting: "os_sdn_network_plugin_name='redhat/openshift-ovs-{{ovs_plugin}}'" master_lb_dns: "loadbalancer1.{{subdomain_base}}" cloudapps_suffix: 'apps.{{subdomain_base}}' openshift_master_ldap_ca_file: 'openshift_master_ldap_ca_file=/root/ca.crt' # htpasswd / ldap / allow_all install_idm: htpasswd ## If you are not part of GPTE you don't need this. opentlc_integration: true ################################################################################ #### GENERIC EXAMPLE ################################################################################ install_common: true install_nfs: true install_bastion: false env_authorized_key: "{{guid}}key" set_env_authorized_key: true software_to_deploy: "openshift" ################################################################################ #### OCP IMPLEMENATATION LAB ################################################################################ repo_version: '3.9' cloudapps_dns: '*.apps.{{subdomain_base}}.' master_public_dns: "loadbalancer.{{subdomain_base}}." ################################################################################ #### Common host variables ################################################################################ update_packages: false common_packages: - python - unzip - bash-completion - tmux - bind-utils - wget - git - vim-enhanced - ansible - net-tools - iptables-services - bridge-utils - sos - psacct rhel_repos: - rhel-7-server-rpms - rhel-7-server-extras-rpms - rhel-7-server-ose-{{repo_version}}-rpms - rhel-7-server-ansible-2.4-rpms use_subscription_manager: false use_own_repos: true #rhn_pool_id_string: "Red Hat Enterprise Linux Server" rhn_pool_id_string: OpenShift Container Platform ################################################################################ #### nfs host settings ################################################################################ nfs_vg: nfsvg nfs_pvs: /dev/xvdb nfs_export_path: /srv/nfs nfs_size: 50 nfs_shares: # - jenkins # - nexus ################################################################################ #### CLOUD PROVIDER: AWS SPECIFIC VARIABLES ################################################################################ #### Route 53 Zone ID (AWS) HostedZoneId: '' key_name: '' aws_region: us-east-1 admin_user: '' admin_user_password: '' #### Connection Settings ansible_ssh_user: ec2-user remote_user: ec2-user #### Networking (AWS) guid: defaultguid subdomain_base_short: "{{ guid }}" subdomain_base_suffix: ".example.opentlc.com" subdomain_base: "{{subdomain_base_short}}{{subdomain_base_suffix}}" tower_run: false #### Environment Sizing #bastion_instance_type: "t2.micro" bastion_instance_type: "t2.large" support_instance_type: "t2.medium" support_instance_count: 1 node_instance_type: "t2.large" node_instance_count: 2 infranode_instance_type: "t2.large" infranode_instance_count: 1 master_instance_type: "t2.large" master_instance_count: 1 loadbalancer_instance_count: 1 loadbalancer_instance_type: "t2.small" # scaleup new_node_instance_count: 0 ansible_ssh_private_key_file: ~/.ssh/{{key_name}}.pem #### VARIABLES YOU SHOULD ***NOT*** CONFIGURE FOR YOUR DEPLOYEMNT #### You can, but you usually wouldn't need to. #### CLOUDFORMATIONS vars project_tag: "{{ env_type }}-{{ guid }}" docker_version: "{{ '1.12.6' if repo_version | version_compare('3.9', '<') else '1.13.1' }}" docker_device: /dev/xvdb create_internal_dns_entries: true zone_internal_dns: "{{guid}}.internal." chomped_zone_internal_dns: "{{guid}}.internal" zone_public_dns: "{{subdomain_base}}." bastion_public_dns: "bastion.{{subdomain_base}}." bastion_public_dns_chomped: "bastion.{{subdomain_base}}" # vpcid_cidr_block: "192.168.0.0/16" vpcid_name_tag: "{{subdomain_base}}" # az_1_name: "{{ aws_region }}a" # az_2_name: "{{ aws_region }}b" # # subnet_private_1_cidr_block: "192.168.2.0/24" # subnet_private_1_az: "{{ az_2_name }}" # subnet_private_1_name_tag: "{{subdomain_base}}-private" # # subnet_private_2_cidr_block: "192.168.1.0/24" # subnet_private_2_az: "{{ az_1_name }}" # subnet_private_2_name_tag: "{{subdomain_base}}-private" # # subnet_public_1_cidr_block: "192.168.10.0/24" # subnet_public_1_az: "{{ az_1_name }}" # subnet_public_1_name_tag: "{{subdomain_base}}-public" # # subnet_public_2_cidr_block: "192.168.20.0/24" # subnet_public_2_az: "{{ az_2_name }}" # subnet_public_2_name_tag: "{{subdomain_base}}-public" # dopt_domain_name: "{{ aws_region }}.compute.internal" # # rtb_public_name_tag: "{{subdomain_base}}-public" # rtb_private_name_tag: "{{subdomain_base}}-private" # # cf_template_description: "{{ env_type }}-{{ guid }} template" rootfs_size_node: 50 rootfs_size_infranode: 50 rootfs_size_master: 50 rootfs_size_bastion: 20 rootfs_size_support: 20 rootfs_size_loadbalancer: 20 instances: - name: "bastion" count: 1 unique: true public_dns: true dns_loadbalancer: true flavor: "ec2": "{{bastion_instance_type}}" tags: - key: "AnsibleGroup" value: "bastions" - key: "ostype" value: "linux" rootfs_size: "{{ rootfs_size_bastion }}" - name: "loadbalancer" count: "{{loadbalancer_instance_count}}" public_dns: true dns_loadbalancer: true flavor: "ec2": "{{loadbalancer_instance_type}}" tags: - key: "AnsibleGroup" value: "loadbalancers" - key: "ostype" value: "linux" rootfs_size: "{{ rootfs_size_loadbalancer }}" - name: "master" count: "{{master_instance_count}}" public_dns: false dns_loadbalancer: false flavor: "ec2": "{{master_instance_type}}" tags: - key: "AnsibleGroup" value: "masters" - key: "ostype" value: "linux" rootfs_size: "{{ rootfs_size_master }}" volumes: - device_name: "{{docker_device}}" volume_size: 20 volume_type: gp2 - name: "node" count: "{{node_instance_count}}" public_dns: false dns_loadbalancer: false flavor: "ec2": "{{node_instance_type}}" tags: - key: "AnsibleGroup" value: "nodes" - key: "ostype" value: "linux" rootfs_size: "{{ rootfs_size_node }}" volumes: - device_name: "{{docker_device}}" volume_size: 100 volume_type: gp2 - name: "infranode" count: "{{infranode_instance_count}}" public_dns: true dns_loadbalancer: true flavor: "ec2": "{{infranode_instance_type}}" tags: - key: "AnsibleGroup" value: "infranodes" - key: "ostype" value: "linux" rootfs_size: "{{ rootfs_size_infranode }}" volumes: - device_name: "{{docker_device}}" volume_size: 50 volume_type: gp2 - name: "support" count: "{{support_instance_count}}" public_dns: false dns_loadbalancer: false flavor: "ec2": "{{support_instance_type}}" tags: - key: "AnsibleGroup" value: "support" - key: "ostype" value: "linux" rootfs_size: "{{ rootfs_size_support }}" volumes: - device_name: "{{nfs_pvs}}" volume_size: "{{nfs_size}}" volume_type: gp2