text: = ocp4-workload-cost-uploader - Upload data from OCP to cloud.redhat.com
  
  * sets up the cost uploading tools on the bastion
  * creates a cron job belonging to {{ student_name }} to regularly upload the data with insights-client
  
  Docs: https://koku.readthedocs.io/en/latest/providers.html
  
  == Role overview
  
  * This role installs and sets up the OCP Cost Management usage uploader
  
  ** Playbook: link:./tasks/pre_workload.yml[pre_workload.yml] - Sets up an environment for the workload deployment.
  *** Debug task will print out: `pre_workload Tasks completed successfully.`
  
  ** Playbook: link:./tasks/workload.yml[workload.yml] - Used to deploy the entire solution
  *** Debug task will print out: `workload Tasks completed successfully.`
  
  ** Playbook: link:./tasks/post_workload.yml[post_workload.yml] - Used to configure the workload after deployment
  *** This role doesn't do anything here
  *** Debug task will print out: `post_workload Tasks completed successfully.`
  
  ** Playbook: link:./tasks/remove_workload.yml[remove_workload.yml] - Used to delete the workload
  *** This role does nothing
  *** Debug task will print out: `remove_workload Tasks completed successfully.`
  
  == Review the defaults variable file
  
  * This file link:./defaults/main.yml[./defaults/main.yml] contains all the variables you need to define to control the deployment of your workload.
  * The variable *ocp_username* is mandatory to assign the workload to the correct OpenShift user.
  * A variable *silent=True* can be passed to suppress debug messages.
  * Other variables:
  
  * You can modify any of these default values by adding `-e "variable_name=variable_value"` to the command line
  
  === Deploy a Workload with the `ocp-workload` playbook [Mostly for testing]
  
  ----
  TARGET_HOST="bastion.na311.openshift.opentlc.com"
  OCP_USERNAME="shacharb-redhat.com"
  WORKLOAD="ocp4-workload-metering"
  GUID=1001
  
  # a TARGET_HOST is specified in the command line, without using an inventory file
  ansible-playbook -i ${TARGET_HOST}, ./configs/ocp-workloads/ocp-workload.yml \
      -e"ansible_ssh_private_key_file=~/.ssh/keytoyourhost.pem" \
      -e"ansible_user=ec2-user" \
      -e"ocp_username=${OCP_USERNAME}" \
      -e"ocp_workload=${WORKLOAD}" \
      -e"silent=False" \
      -e"guid=${GUID}" \
      -e"ACTION=create"
  ----
  
  === To Delete an environment
  
  ----
  TARGET_HOST="bastion.na311.openshift.opentlc.com"
  OCP_USERNAME="ankay-redhat.com"
  WORKLOAD="ocp4-workload-automation-broker"
  GUID=1002
  
  # a TARGET_HOST is specified in the command line, without using an inventory file
  ansible-playbook -i ${TARGET_HOST}, ./configs/ocp-workloads/ocp-workload.yml \
      -e"ansible_ssh_private_key_file=~/.ssh/keytoyourhost.pem" \
      -e"ansible_user=ec2-user" \
      -e"ocp_username=${OCP_USERNAME}" \
      -e"ocp_workload=${WORKLOAD}" \
      -e"guid=${GUID}" \
      -e"ACTION=remove"
  ----
  
  
  == Other related information:
  
  === Deploy Workload on OpenShift Cluster from an existing playbook:
  
  [source,yaml]
  ----
  - name: Deploy a workload role on a master host
    hosts: all
    become: true
    gather_facts: False
    tags:
      - step007
    roles:
      - { role: "{{ocp_workload}}", when: 'ocp_workload is defined' }
  ----
  NOTE: You might want to change `hosts: all` to fit your requirements
  
  
  === Set up your Ansible inventory file
  
  * You can create an Ansible inventory file to define your connection method to your host (Master/Bastion with `oc` command)
  * You can also use the command line to define the hosts directly if your `ssh` configuration is set to connect to the host correctly
  * You can also use the command line to use localhost or if your cluster is already authenticated and configured in your `oc` configuration
  
  .Example inventory file
  [source, ini]
  ----
  [gptehosts:vars]
  ansible_ssh_private_key_file=~/.ssh/keytoyourhost.pem
  ansible_user=ec2-user
  
  [gptehosts:children]
  openshift
  
  [openshift]
  bastion.cluster1.openshift.opentlc.com
  bastion.cluster2.openshift.opentlc.com
  bastion.cluster3.openshift.opentlc.com
  bastion.cluster4.openshift.opentlc.com
  
  [dev]
  bastion.cluster1.openshift.opentlc.com
  bastion.cluster2.openshift.opentlc.com
  
  [prod]
  bastion.cluster3.openshift.opentlc.com
  bastion.cluster4.openshift.opentlc.com
  ----
  