docs.intersystems.com
Home  /  Architecture  /  InterSystems Cloud Manager Guide  /  Sharing ICM Deployments


InterSystems Cloud Manager Guide
Sharing ICM Deployments
[Back] 
InterSystems: The power behind what matters   
Search:  


ICM deployment results in the generation of several state files. Without access to those state files or the ICM container from which the cluster was deployed, it is difficult for anyone to manage or monitor the deployment (including the original deployer, should those files be lost).
This section describes which state files are required to share a deployment, methods of accessing them from outside the container, and how to persist those files so an ICM-driven deployment can be shared with other users or accessed from another location.
State Files
The state files are read from and written to the current working directory, though all of them can be overridden to use a custom name and location. Input files are as follows:
Any security keys, InterSystems IRIS™ licenses, or other files referenced from within these configuration files should be considered input as well.
Output files are as follows:
The layout of the files under ICM-GUID/ is as follows:
definition 0/
definition 1/
...
definition N/
Under each definition directory are the following files:
A variety of log files, temporary files, and other files appear in this hierarchy as well, but they are not required for sharing a deployment.
Note: For provider PreExisting, no Terraform files are generated.
Maintaining Immutability
InterSystems recommends that you avoid generating state files local to the ICM container, for the following reasons:
A better practice is to mount a directory from the host within the ICM container to use as your working directory; that way all changes within the container are always available on the host. This can be accomplished using the Docker --volume option when the ICM container is first created, as follows:
$ docker run it -cap-add SYS_TIME --volume <host_path>:<container_path> <image>
Overall, you would take these steps:
  1. Stage input files on the host in host_path.
  2. Create, start, and attach to ICM container.
  3. Navigate to container_path.
  4. Issue ICM commands.
  5. Exit or detach from ICM container.
The state files (both input and output) are then present in host_path. See the sample script in Launch ICM for an example of this approach.
Persisting State Files
Methods of preserving and sharing state files with others include:
The advantage of the latter three methods is that they allow others to modify the deployment. Note however that ICM does not support simultaneous operations issued from more than one ICM container at a time, so a policy ensuring exclusive read-write access would need to be enforced.