Skip to content

Describe node analysis deployment configurations#75

Merged
brucetony merged 4 commits intomasterfrom
74-add-information-on-analysis-deployment
Oct 30, 2025
Merged

Describe node analysis deployment configurations#75
brucetony merged 4 commits intomasterfrom
74-add-information-on-analysis-deployment

Conversation

@brucetony
Copy link
Copy Markdown
Contributor

No description provided.

@brucetony brucetony linked an issue Oct 27, 2025 that may be closed by this pull request
* [NetworkPolicy](#network-policy)

## Deployments
When a FLAME Analysis is started, the Pod Orchestrator service creates two separate deployments: one for the analysis itself, and one for a nginx instance. Both are required for the analysis to be able to run and transmit its results, but as shown below, both have very stringent policies in place to severely limit their traffic.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The network policy is only on the analysis, not the nginx I would write it more like this

"When a FLAME Analysis is started, the Pod Orchestrator service creates two separate deployments: one for the analysis itself and one for an NGINX instance. Both are required for the analysis to run and transmit its results. A network policy is placed on the analysis pod that only allows communication from the analysis pod to the NGINX deployment (and to the K8s DNS to resolve the NGINX address). "

### Nginx Deployment
Nginx serves as a sidecar proxy, acting as the *only* means of communication between the analysis pod and everything else. The partnered analysis container can communicate only through the endpoints defined within this Nginx deployment (endpoint descriptions can be found in the [ConfigMap](#configmap) section), and like the analysis deployment, the same restrictive Network Policy is applied to the pods in this deployment through the use of specific labels and selectors.

The created Nginx pod is only capable of communication with the partnered analysis pod, itself, and the DNS service for your kubernetes cluster. Because the analysis pod needs to communicate with other FLAME components, it must be able to discover those services within the kubernetes cluster and thus requires access to the kubernetes DNS service to resolve these service names.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The created Nginx pod is configured to only communicate with the partnered analysis pod, the other Flame components."

ther is no restriction from the network policy on the nginx so it should not be hear

```

## ConfigMap
A kubernetes [ConfigMap](https://kubernetes.io/docs/concepts/configuration/configmap/) is used in the FLAME Node to define the endpoints for the Nginx sidecar pod by providing the imported Nginx configuration. Because the traffic from the analysis pod is tightly controlled, it is necessary to pre-define the Nginx endpoints with which this pod can use for communication and transmitting results. The endpoints are to enable communication with other Flame Node components and are configured such that each one will only accept connections from the analysis container (as defined by its Service IP).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would just link back to the nginx template and keep it form repeating
"A kubernetes ConfigMap is used in the FLAME Node to define the endpoints for the Nginx sidecar pod by providing the imported Nginx configuration."

spec:
podSelector:
matchLabels:
app: <analysis deployment name>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hear only the analysis, not the nginx

```

## Network Policy
The Network Policy resource is a policy which restricts traffic either exiting (egress) or entering (ingress) a matching pod. It is applied to any pod with a matching label, in the case of the FLAME Node, the label is `app: <analysis deployment name>` meaning that any resource in the kubernetes cluster with a matching label selector will have this network policy applied to it e.g. the analysis and nginx pods. the applied policy contains rules for both ingress and egress. The ingress policy makes it so that only traffic coming from the associated Nginx pod is allowed, while the egress policy only allows requests to be sent to either the Nginx pod or the kubernetes cluster's DNS pod.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Network Policy resource is a policy that restricts traffic either entering (ingress) or exiting (egress) a matching pod. It is applied to any pod with a matching label. In the case of the FLAME Node, the label is app: <analysis deployment name>, meaning that any resource in the Kubernetes cluster with a matching label selector will have this network policy applied to it, e.g., the analysis.

@Nightknight3000
Copy link
Copy Markdown
Member

@brucetony We're going to create another commit with our changes in a bit.

antidodo and others added 3 commits October 30, 2025 13:14
@brucetony brucetony merged commit 0690577 into master Oct 30, 2025
1 check passed
@brucetony brucetony deleted the 74-add-information-on-analysis-deployment branch October 30, 2025 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add information on analysis deployment

3 participants