@@ -57,7 +57,7 @@ The following list outlines all of NKG's requirements for an agent and whether t
5757-  [x]  It can report the status of configuration attempts to the control plane.
5858-  [x]  It should not crash because of bad config.
5959-  [x]  It can authenticate with the control plane.
60- -  [x]  It supports mTLS  between the control plane and the agent.
60+ -  [x]  It supports TLS  between the control plane and the agent.
6161-  [x]  It registers itself with the control plane.
6262-  [x]  Many agents can register to a single control plane.
6363-  [x]  It can scale separately from the control plane.
@@ -75,7 +75,7 @@ The nginx agent is missing a few requirements we will need to add for our use ca
7575
7676Features needed (in priority order, more or less):
7777
78- -  Add support for certificate rotation for the agent <-> control plane gRPC channel
78+ -  Add support for TLS CA  certificate rotation for the agent <-> control plane gRPC channel
7979-  Deterministically confirm that a nginx reload succeeds (e.g. check that new worker processes are running)
8080-  Add an option to configure the server's token via a file
8181-  Add an option to refresh server token from a file
@@ -395,21 +395,20 @@ section.
395395For the full ` NginxConfig `  message definition, see
396396this [ file] ( https://github.com/nginx/agent/blob/main/sdk/proto/nginx.proto ) .
397397
398- ### Authentication  
398+ ### Encryption  
399399
400- The agent and control plane will mutually authenticate each other using mTLS . We will store the server and client 
401- certificates, key pairs, and  CA certificates  in Kubernetes Secrets. The user will install the Secrets in
402- the  ` nginx-gateway ` namespace under the  following names:
400+ The agent and control plane communication channel will be encrypted . We will store the server certificate, key pair, and 
401+ CA certificate  in Kubernetes Secrets. The user will install the Secrets in the  ` nginx-gateway `  namespace under the 
402+ following names:
403403
404404-  ` nginx-gateway-cert ` : This Secret will contain the TLS certificate and private key that the control plane will use to
405-   serve gRPC traffic, as well as the CA bundle that validates the agent’s certificate.
406- -  ` nginx-agent-cert ` : This Secret will contain the TLS certificate and private key that the agent will use to connect to
407-   the control plane, as well as the CA bundle that validates the control plane’s certificate.
405+   serve gRPC traffic.
406+ -  ` nginx-agent-cert ` : This Secret will contain the CA bundle that validates the control plane’s certificate.
408407
409408The Secrets will be mounted to the control plane and agent containers, respectively. If desired, we can make the Secret
410409names and mount path configurable via flags. For production, we will direct the user to provide their own certificates.
411410For development and testing purposes, we will provide a self-signed default certificate. In order to be secure by
412- default, NKG should generate the default keypair during installation using a Kubernetes Job.
411+ default, NKG should generate the default certificates and  keypair during installation using a Kubernetes Job.
413412
414413#### Certificate Rotation  
415414
@@ -431,8 +430,8 @@ authenticate the token by sending a request to the Kubernetes [TokenReview API][
431430
432431On start-up the agent will create a gRPC [ ` CommanderClient ` ] [ client ]  and connect to the control plane
433432[ ` CommanderServer ` ] [ server ]  using the server address, server token, and TLS options specified in the agent’s
434- configuration file (see [ Agent Configuration] ( #agent-configuration ) ). This connection is secured by mTLS ; see the
435- [ Authentication ] ( #authentication  )  section for more information. The control plane will validate the token with
433+ configuration file (see [ Agent Configuration] ( #agent-configuration ) ). This connection is secured by TLS ; see the
434+ [ Encryption ] ( #encryption  )  section for more information. The control plane will validate the token with
436435Kubernetes by sending a TokenReview API request. If the token is valid, the bidirectional streaming ` CommandChannel ` 
437436between the agent and the control plane is established and left open for the lifetime of the agent.
438437
0 commit comments