System and method for reference-aware application identification in container deployment environments
A system for identifying a plurality of resources that define an application in a container deployment environment is presented. The system includes a reference detection module configured to detect and store one or more reference paths corresponding to each resource type. The system includes a resource identification module configured to receive at least one information corresponding to an application definition from a user and identify each resource corresponding to at least one information. The system includes an application definition module configured to (a) scan one or more references at a reference path of each identified resource to identify one or more additional referenced resources; (b) repeat step (a) for the one or more additional referenced resources until all the resources of the plurality of resources that define the application are identified; and (c) generate an application definition based on all the resources identified. A related method is also presented.
1 . A system for identifying a plurality of resources that define an application in a container deployment environment, the system comprising:
a memory storing one or more processor-executable routines; and
a processor communicatively coupled to the memory, the processor configured to execute the one or more processor-executable routines to:
(a) prior to receiving application-specific information, automatically detect one or more reference paths corresponding to each resource type in the container deployment environment by at least one of:
(i) scan binary schemas using reflection techniques, or
(ii) scan text schemas based on reference signatures,
wherein each reference path identifies a field path through which a first resource type can reference a second resource type;
(b) store the detected one or more reference paths in association with their corresponding resource types to create a reusable reference path knowledge base;
(c) receive, as the application specific information, wherein the application-specific information comprises at least one identifier comprising a Helm release name from a user;
(d) identify each resource instance corresponding to the Helm release name;
(e) for each identified resource instance, scan one or more references at a reference path to identify one or more additional referenced resource instances, wherein the reference path is selected from the stored reference path knowledge base based on the resource type of the identified resource instance;
(f) repeat step (e) for the one or more additional referenced resource instances until all resource instances that define the application are identified; and
(g) generate an application definition based on all the resource instances identified.
2 . The system of claim 1 , wherein the processor is configured to execute the one or more processor-executable routines to automatically detect the one or more reference paths corresponding to each resource type at start-up or when a new resource definition is identified.
3 . The system of claim 2 , wherein the processor is configured to execute the one or more processor-executable routines to automatically detect the one or more reference paths corresponding to each resource type by scanning binary schemas using reflection techniques for one or more resource types in the container deployment environment.
4 . The system of claim 2 , wherein the processor is configured to execute the one or more processor-executable routines to automatically detect the one or more reference paths corresponding to each resource type by scanning text schemas based on reference signatures for one or more resource types in the container deployment environment.
5 . The system of claim 1 , wherein the at least one information corresponding to an application definition comprises one or more of label selectors, custom operators, Kubernetes applications, packaging specifications, or deployment specifications.
6 . The system of claim 1 , wherein the container deployment environment is a Kubernetes environment.
7 . A method for identifying a plurality of resources that define an application in a container deployment environment, the method comprising:
(a) prior to receiving application-specific information, automatically detecting one or more reference paths corresponding to each resource type in the container deployment environment by at least one of:
(i) scanning binary schemas using reflection techniques, or
(ii) scanning text schemas based on reference signatures,
wherein each reference path identifies a field path through which a first resource type can reference a second resource type;
(b) storing the detected one or more reference paths in association with their corresponding resource types to create a reusable reference path knowledge base;
(c) receiving, as the application specific information, wherein the application-specific information comprises at least one identifier comprising a Helm release name from a user;
(d) identifying each resource instance corresponding to the Helm release name;
(e) for each identified resource instance, scanning one or more references at a reference path to identify one or more additional referenced resource instances, wherein the reference path is selected from the stored reference path knowledge base based on the resource type of the identified resource instance;
(f) repeating step (e) for the one or more additional referenced resource instances until all resource instances that define the application are identified; and
(g) generating an application definition based on all the resource instances identified.
8 . The method of claim 7 , wherein the method comprises automatically detecting the one or more reference paths corresponding to each resource type at start-up or when a new resource definition is identified.
9 . The method of claim 8 , wherein the method comprises automatically detecting the one or more reference paths corresponding to a resource type by scanning binary schemas using reflection techniques for one or more resource types in the container deployment environment.
10 . The method of claim 8 , wherein the method comprises automatically detecting the one or more reference paths corresponding to a resource type by scanning the text schemas based on reference signatures for one or more resource types in the container deployment environment.
11 . The method of claim 8 , further comprising augmenting auto-detection of the one or more reference paths corresponding to a resource type based on manual updates.
12 . The method of claim 7 , wherein the at least one information corresponding to an application definition comprises one or more of label selectors, custom operators, Kubernetes applications, packaging specifications, or deployment specifications.
13 . The method of claim 7 , wherein the container deployment environment is a Kubernetes environment.