Time Machine Configuration Guide -------------------------------- -------------------------------------- 1. Time Machine Operator Prerequisites -------------------------------------- Time Machine Operator needs to be installed in a specific namespace, and not on all namespaces on the cluster. If you need Time Machine Operator installed in multiple namespaces, please repeat the installation process to each of the desired namespaces. To use Time Machine running in a operand (custom resource), you will need to install the following Time Machine supplementary products: 1. Time Machine Floating License Server (TMFLS), which will provide licensing for each Time Machine operator custom resource created. 2. Time Machine Enterprise Console (TMEMC), Java based GUI that will allow you to create and remove virtual clocks from the desired pods, and also serve as GUI for TM Sync Server (see next bullet). 3. *Optionally - Time Machine Sync Server (TMSS), in case you need to simultaneously time travel pods accross different namespaces to the same virtual time. Please note that all of these products are typically installed on system(s) outside the OpenShift cluster, but able to reach the cluster via network. While TMFLS and TMSS are available for both Windows and Linux, TMEMC is only available for Windows (though it can manage Linux targets, such as Docker containers running in OpenShift pods). The suggested setup could be to have all three products (TMFLS, TMEMC and TMSS) on the same Windows system (any physical or virtual Windows machine, on premise or in the cloud, or even a PC, or your laptop), having network access to the cluster, but you could choose to put them on separate systems as well, if needed. Solution-Soft also provides an AWS image, available on the AWS Marketplace, with all three supplementary products preinstalled, which you can locate on the following URL: https://aws.amazon.com/marketplace/pp/B08X6RVZBV If you want to separately download these products and install them yourself, please proceed as below. To download TMFLS, please reach out to Solution-Soft support at: support@solution-soft.com You will be provided with detailed download, installation and licensing instructions. To download TMEMC, please go to the following location: ftp://ftp.solution-soft.com/pub/tm/tmconsole/enterprise/ In the same location you'll find a readme-tmconsole-enterprise.txt file with installation and licensing instructions. Please note that TMEMC can only be installed on Windows OS. To download TMSS, please go to the following location: ftp://ftp.solution-soft.com/pub/tm/tmsync/ Once there, please navigate to the respective folder depending on the OS where you'll install TMSS. In the same location you'll find a readme-tmss.txt file with installation and licensing instructions. You can read more about this in the Time Machine Quick Start Guide, section "Application Installation". -------------------------------------------------- 2. Creating Time Machine Operand (Custom Resource) -------------------------------------------------- When creating a Time Machine custom resource, you are supposed to specify the following in the custom resource yaml file: 1. Three parameters pointing to TMFLS you previously installed and licensed (as mentioned in section 1. Time Machine Operator Prerequisites): TM_LICHOST - IP address of the host on which TMFLS is running. TM_LICPORT - TCP port number* on which TMFLS listens for requests - by default it is 57777, if not configured otherwise. TM_LICPASS - Security Key* that must match the value configured in TMFLS. * The values for the security key and the listening port number can be configured in the TMFLS configuration file that’s located on the TMFLS host under: opt/solutionsoft/tmlicserver/conf/licserver.cf Please note that the default values for these three parameters offered in the sample yaml file (for creating a custom resource), are pointing to an actual Solution-Soft managed TMFLS, that can be used for trial purposes. This TMFLS is not running by default, but can be made available upon request to support@solution-soft.com When contacting Solution-Soft to choose this option, please specify that you're using a Time Machine Operator trial offered on the Red Hat Marketplace, and provide basic information about your company. 2. Storage class - a suitable storage class that will be used for persistence volume claim creation and later adding of a shared storage to the deployment you want to be affected by virtual time (as explained in the next section). Please check with your OpenShift Cluster Administrators (cluster-admin) or Storage Administrators (storage-admin) which StorageClass objects are available to you for this purpose. The Persistence Volume Claim which will be created during the operator installation will request 50 MB of available space, and it will have ReadWriteMany access mode. You can read more about this in the Time Machine Quick Start Guide, section "Application Installation". ---------------------------------------------------------- 3. Configuring a Deployment to be Affected by Virtual Time ---------------------------------------------------------- To configure a deployment you want to be affected by virtual time, you need to complete the following steps: 1. Add Storage to the deployment, using the persistence volume claim created during Time Machine Operator installation, named 'timemachine-pvc'. The mount path should be: /opt/ssstm 2. Mount a ConfigMap created during Time Machine Operator installation (named 'timemachine-configmap') to the deployment. The mount path should be: /etc/ld.so.preload The subPath should be: ld.so.preload 3. Add Environment variable to the deployment, as shown below: NAME: TM_SERVER_INFO VALUE: server-info..svc.cluster.local:5777 where is the actual namespace where the deployment/pods you want affected by virtual time are. You can read more about this in the Time Machine Quick Start Guide, section "Configuring a Target Deployment to be affected by Virtual Time". --------------------------------------------- 4. Creating Virtual Clocks Within a Namespace --------------------------------------------- After Time Machine custom resource is created and licensed, and the target deployments are configured for time travelling (as explained in the previous section), you'll need to connect to Time Machine service running in the custom resource. To do that, you will use the Time Machine Enterprise Console (TMEMC) you have previously installed and licensed, as mentioned in the section '1. Time Machine Operator Prerequisites'. You need to create a new connection in TMEMC, where the type of connection will be TMAgent, and for the connection string you need to specify the route named 'timemachine-route' generated during the custom resource creation (just copy/paste the route from the OpenShift Web Console to Connection String field in TMEMC). You can read about this in more details in the TMEMC manual, which is located in TMEMC install folder (by default it is: C:\Program Files\SolutionSoft Systems\TMConsoleEE\tm_console_manual.pdf). Once you connect to Time Machine running inside the custom resource pod, you can create/remove virtual clocks. The way to create/remove virtual clocks inside the namespace is explained in the Time Machine Quick Start Guide, section "Creating Virtual Clocks within a Namespace". ----------------------------------------------------- 5. Simultaneously Time Travelling Multiple Namespaces ----------------------------------------------------- If there is a need to simultaneously time travel pods across different namespaces, or to be more precise, different Time Machine deployments and the target pods configured to get virtual time from them (be it in the different or same namespace), you need to use Time Machine Sync Server (TMSS). To connect to a previously deployed TMSS (as mentioned in the earlier section '1. Time Machine Operator Prerequisites'), use the same TMEMC GUI, click on the New Connection button and choose TM Sync Server connection type, then specify the Connection String (depending on the details of the actual TMSS that’s available to you - more details explained in the TMSS manual located in its installation folder). TMSS uses the concept of “Sync Groups” to group together the targets that you simultaneously want to time travel. Once connected to TMSS, click on the Add New Sync Group button. In the new Sync Group Management & Settings window, specify the sync group name and the virtual time desired, and then click on the Add Target button in the top left corner to add desired Time Machine deployment(s) to the group (custom resources created in different namespaces), by specifying the respective OpenShift route(s) for 'timemachine-route' service(s) from different namespaces. Finally, to create synchronized virtual clocks in multiple Time Machine custom resources (existing in different namespaces) at the same time (and all other deployments in those namespaces configured to see virtual time), click on the Enable Sync Group button. To remove created virtual clocks and revert back to the system time, we just need to disable the sync group. Please note that TMSS offers the possibility of fully automating time traveling via the built-in URL API, using any programming language that can make simple web service calls (via http or https), and automation frameworks of your choice. For more details on TMSS API, please refer to the TMSS Manual, available in the installation folder, or upon request from the Solution-Soft team. You can read more about this in the Time Machine Quick Start Guide, section "Simultaneously Time Travelling Multiple Namespaces and/or Automating Time Travelling via URL API". --------------------- 6. Contacting Support --------------------- If you encounter any issues with Time Machine you cannot resolve yourself, please contact Solution-Soft: Solution-Soft Phone: US 1+ 408 346 1414 Email: support@solution-soft.com Web: www.solution-soft.com