InterSystems Cloud Manager Guide
Sharing ICM Deployments
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.
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:
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.
InterSystems recommends that you avoid generating state files local to the ICM container, for the following reasons:
Immutability is violated.
Data can be lost if container removed/updated/replaced.
Ability to edit configuration files within the ICM container is limited.
Tedious and error-prone copying of state files out of the container is required.
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:
Create, start, and attach to ICM container.
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.
Methods of preserving and sharing state files with others include:
The resulting archive can be emailed, put on an FTP site, a USB stick, and so on.
Make backups to a location from which others can restore
Register the path to the state files on the host with a backup service.
Mount a disk volume accessible by others in your organization
The path to the state files could be an NFS or Samba mount.
Specify a disk location backed up to the cloud
You might use services such as Dropbox, Google Drive, OneDrive, and so on.
Store in a document database
This could be cloud-based or on-premises.
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.