Execution of remote configuration files at control nodes
Control nodes can execute configuration files from remote locations according to some examples described herein. For example, a control node may receive an input indicating a remote location, which can include configuration files. In response to receiving the input, the control node may retrieve a configuration file from the remote location. The configuration file can be used by the control node to deploy a software entity at one or more nodes. The control node may analyze the configuration file to detect one or more references indicating one or more resources associated with the configuration file. The control node can then generate an executable version of the configuration file by retrieving each of the resources. The control node can further execute the executable version of the configuration file to deploy the software entity at each of the nodes.
1 . A system comprising:
a processing device; and
a memory device that includes instructions executable by the processing device for causing the processing device to perform operations comprising:
receiving, at a control node, an input indicating a remote location comprising an orchestration playbook that defines a plurality of tasks for deploying a containerized software application and comprising a plurality of modules usable to perform the plurality of tasks;
in response to receiving the input:
retrieving, by the control node, the orchestration playbook from the remote location, wherein the orchestration playbook is usable by the control node to deploy a container comprising the containerized software application to each node of a plurality of nodes, and wherein the orchestration playbook comprises a plurality of references indicating the plurality of modules;
generating, by the control node and based on the plurality of references, an executable version of the orchestration playbook by retrieving each module of the plurality of modules from the remote location; and
executing, by the control node, the executable version of the orchestration playbook to deploy the containerized software application in the container at each node of the plurality of nodes by performing the plurality of tasks using the plurality of modules.
2 . The system of claim 1 , wherein the memory device further includes instructions executable by the processing device for causing the processing device to perform operations comprising:
subsequent to retrieving the orchestration playbook from the remote location, storing the orchestration playbook in volatile memory of the control node.
3 . The system of claim 1 , wherein the operation of retrieving each module of the plurality of modules comprises:
requesting each module of the plurality of modules from the remote location; and
receiving each module of the plurality of modules from the remote location.
4 . The system of claim 1 , wherein the memory device further includes instructions executable by the processing device for causing the processing device to perform operations comprising:
establishing a first network connection between the control node and the remote location; and
establishing a second network connection between the control node and each node of the plurality of nodes.
5 . The system of claim 1 , wherein the remote location comprises a Git Repository.
6 . The system of claim 1 , wherein the input comprises a Hypertext Transfer Protocol (HTTP) Uniform Resource Locator (URL).
7 . A method comprising:
receiving, at a control node, an input indicating a remote location comprising an orchestration playbook that defines a plurality of tasks for deploying a containerized software application and comprising a plurality of modules usable to perform the plurality of tasks;
in response to receiving the input:
retrieving, by the control node, the orchestration playbook from the remote location, wherein the orchestration playbook is usable by the control node to deploy a container comprising the containerized software application to each node of a plurality of nodes, and wherein the orchestration playbook comprises a plurality of references indicating the plurality of modules;
generating, by the control node and based on the plurality of references, an executable version of the orchestration playbook by retrieving each module of the plurality of modules; and
executing, by the control node, the executable version of the orchestration playbook to deploy the containerized software application in the container at each node of the plurality of nodes by performing the plurality of tasks using the plurality of modules.
8 . The method of claim 7 , further comprising, subsequent to retrieving the orchestration playbook from the remote location, storing the orchestration playbook in volatile memory of the control node.
9 . The method of claim 7 , wherein retrieving each module of the plurality of modules comprises:
requesting each module of the plurality of modules from the remote location; and
receiving each module of the plurality of modules from the remote location.
10 . The method of claim 7 , further comprising:
establishing a first network connection between the control node and the remote location; and
establishing a second network connection between the control node and each node of the plurality of nodes.
11 . The method of claim 7 , wherein the remote location comprises a Git Repository.
12 . The method of claim 7 , wherein the input comprises a Hypertext Transfer Protocol (HTTP) Uniform Resource Locator (URL).
13 . A non-transitory computer-readable medium comprising instructions that are executable by a processing device for causing the processing device to perform operations comprising:
receiving, at a control node, an input indicating a remote location comprising an orchestration playbook that defines a plurality of tasks for deploying a containerized software application and comprising a plurality of modules usable to perform the plurality of tasks;
in response to receiving the input:
retrieving, by the control node, the orchestration playbook from the remote location, wherein the orchestration playbook is usable by the control node to deploy a container comprising the containerized software application to each node of a plurality of nodes, and wherein the orchestration playbook comprises a plurality of references indicating the plurality of modules;
generating, by the control node and based on the plurality of references, an executable version of the orchestration playbook by retrieving each module of the plurality of modules; and
executing, by the control node, the executable version of the orchestration playbook to deploy the containerized software application in the container at each node of the plurality of nodes by performing the plurality of tasks using the plurality of modules.
14 . The non-transitory computer-readable medium of claim 13 , further comprising instructions executable by the processing device for causing the processing device to perform operations comprising:
subsequent to retrieving the orchestration playbook from the remote location, storing the orchestration playbook in volatile memory of the control node.
15 . The non-transitory computer-readable medium of claim 13 , wherein the operation of retrieving each module of the plurality of modules comprises:
requesting each module of the plurality of modules from the remote location; and
receiving each module of the plurality of modules from the remote location.
16 . The non-transitory computer-readable medium of claim 13 , further comprising instructions executable by the processing device for causing the processing device to perform operations comprising:
establishing a first network connection between the control node and the remote location; and
establishing a second network connection between the control node and each node of the plurality of nodes.
17 . The non-transitory computer-readable medium of claim 13 , wherein the remote location comprises a Git Repository.