Skip to content

Commit 0bec646

Browse files
committed
fixed adaptor
1 parent 413ea60 commit 0bec646

File tree

4 files changed

+27
-22
lines changed

4 files changed

+27
-22
lines changed

control.rst

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ that we can build upon.
155155
from (1) a GUI, which is itself typically built using another
156156
framework, such as AngularJS; (2) a CLI; or (3) a closed-loop
157157
control program. There are other differences—for example,
158-
Adapters (a kind of Controller) use gNMI as a standard
158+
Adaptors (a kind of Controller) use gNMI as a standard
159159
interface for controlling backend components, and persistent
160160
state is stored in a key-value store instead of a SQL DB—but the
161161
biggest difference is the use of a declarative rather than an
@@ -168,11 +168,11 @@ x-config, in turn, uses Atomix (a key-value store microservice), to
168168
make configuration state persistent. Because x-config was originally
169169
designed to manage configuration state for devices, it uses gNMI as
170170
its southbound interface to communicate configuration changes to
171-
devices (or in our case, software services). An Adapter has to be
171+
devices (or in our case, software services). An Adaptor has to be
172172
written for any service/device that does not support gNMI
173-
natively. These adapters are shown as part of Runtime Control in
173+
natively. These adaptors are shown as part of Runtime Control in
174174
:numref:`Figure %s <fig-roc>`, but it is equally correct to view each
175-
adapter as part of the backend component, responsible for making that
175+
adaptor as part of the backend component, responsible for making that
176176
component management-ready. Finally, Runtime Control includes a
177177
Workflow Engine that is responsible for executing multi-step
178178
operations on the data model. This happens, for example, when a change
@@ -467,15 +467,15 @@ the case of Aether, Open Policy Agent (OPA) serves this role.
467467
<https://www.openpolicyagent.org/>`__.
468468

469469

470-
5.2.4 Adapters
470+
5.2.4 Adaptors
471471
~~~~~~~~~~~~~~
472472

473473
Not every service or subsystem beneath Runtime Control supports gNMI,
474-
and in the case where it is not supported, an adapter is written to
474+
and in the case where it is not supported, an adaptor is written to
475475
translate between gNMI and the service’s native API. In Aether, for
476-
example, a gNMI :math:`\rightarrow` REST adapter translates between
476+
example, a gNMI :math:`\rightarrow` REST adaptor translates between
477477
the Runtime Control’s southbound gNMI calls and the SD-Core
478-
subsystem’s RESTful northbound interface. The adapter is not
478+
subsystem’s RESTful northbound interface. The adaptor is not
479479
necessarily just a syntactic translator, but may also include its own
480480
semantic layer. This supports a logical decoupling of the models
481481
stored in x-config and the interface used by the southbound
@@ -484,15 +484,15 @@ Control to evolve independently. It also allows for southbound
484484
devices/services to be replaced without affecting the northbound
485485
interface.
486486

487-
An adapter does not necessarily support only a single service. An
488-
adapter is one means of taking an abstraction that spans multiple
487+
An adaptor does not necessarily support only a single service. An
488+
adaptor is one means of taking an abstraction that spans multiple
489489
services and applying it to each of those services. An example in
490490
Aether is the *User Plane Function* (the main packet-forwarding module
491491
in the SD-Core User Plane) and *SD-Core*, which are jointly
492-
responsible for enforcing *Quality of Service*, where the adapter
492+
responsible for enforcing *Quality of Service*, where the adaptor
493493
applies a single set of models to both services. Some care is needed
494494
to deal with partial failure, in case one service accepts the change,
495-
but the other does not. In this case, the adapter keeps trying the
495+
but the other does not. In this case, the adaptor keeps trying the
496496
failed backend service until it succeeds.
497497

498498
5.2.5 Workflow Engine
@@ -519,7 +519,7 @@ ongoing development.
519519
gNMI naturally lends itself to mutual TLS for authentication, and that
520520
is the recommended way to secure communications between components
521521
that speak gNMI. For example, communication between x-config and
522-
its adapters uses gNMI, and therefore, uses mutual TLS. Distributing
522+
its adaptors uses gNMI, and therefore, uses mutual TLS. Distributing
523523
certificates between components is a problem outside the scope of
524524
Runtime Control. It is assumed that another tool will be responsible
525525
for distributing, revoking, and renewing certificates.
@@ -738,7 +738,7 @@ that it supports the option of spinning up an entirely new copy of the
738738
SD-Core rather than sharing an existing UPF with another Slice. This is
739739
done to ensure isolation, and illustrates one possible touch-point
740740
between Runtime Control and the Lifecycle Management subsystem:
741-
Runtime Control, via an Adapter, engages Lifecycle Management to
741+
Runtime Control, via an Adaptor, engages Lifecycle Management to
742742
launch the necessary set of Kubernetes containers that implement an
743743
isolated slice.
744744

@@ -802,7 +802,7 @@ Giving enterprises the ability to set isolation and QoS parameters is
802802
an illustrative example in Aether. Auto-generating that API from a
803803
set of models is an attractive approach to realizing such a control
804804
interface, if for no other reason than it forces a decoupling of the
805-
interface definition from the underlying implementation (with Adapters
805+
interface definition from the underlying implementation (with Adaptors
806806
bridging the gap).
807807

808808
.. sidebar:: UX Considerations
@@ -839,15 +839,15 @@ configuration change requires a container restart, then there may be
839839
little choice. But ideally, microservices are implemented with their
840840
own well-defined management interfaces, which can be invoked from
841841
either a configuration-time Operator (to initialize the component at
842-
boot time) or a control-time Adapter (to change the component at
842+
boot time) or a control-time Adaptor (to change the component at
843843
runtime).
844844

845845
For resource-related operations, such as spinning up additional
846846
containers in response to a user request to create a *Slice* or
847847
activate an edge service, a similar implementation strategy is
848848
feasible. The Kubernetes API can be called from either Helm (to
849849
initialize a microservice at boot time) or from a Runtime Control
850-
Adapter (to add resources at runtime). The remaining challenge is
850+
Adaptor (to add resources at runtime). The remaining challenge is
851851
deciding which subsystem maintains the authoritative copy of that
852852
state, and ensuring that decision is enforced as a system invariant.\ [#]_
853853
Such decisions are often situation-dependent, but our experience is

dict.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
Acknowledgements
2+
Adaptor
3+
Adaptors
24
Aether
35
Alertmanager
46
Ansible
@@ -85,6 +87,8 @@ VMware
8587
Vemuri
8688
Weaveworks
8789
absorber
90+
adaptor
91+
adaptors
8892
analytics
8993
architected
9094
auth

lifecycle.rst

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -655,10 +655,11 @@ when.
655655
overloaded the repo. A "polling-frequency" parameter change
656656
improved the situation, but led people to wonder why Jenkins'
657657
trigger mechanism hadn't caused the same problem. The answer is
658-
that Jenkins is better integrated with the repo (specifically,
659-
Gerrit running on top of Git), with the repo pushing event
660-
notifications to Jenkins when a file check-in actually occurs.
661-
There is no polling.*
658+
that Jenkins is better integrated with the repo, with a GitHub
659+
webhook pushing event notifications to Jenkins when a file
660+
check-in actually occurs. There is no polling. (Polling can also
661+
be disabled in Fleet, in favor of webhooks, but polling is the
662+
default.)*
662663

663664
This focus on Fleet as the agent triggering the execution of Helm
664665
Charts should not distract from the central role of the charts

provision.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ Kubernetes cluster. For starters, the API needs to provide a means to
432432
install and configure Kubernetes on each physical cluster. This
433433
includes specifying which version of Kubernetes to run, selecting the
434434
right combination of Container Network Interface (CNI) plugins
435-
(virtual network adapters), and connecting Kubernetes to the local
435+
(virtual network adaptors), and connecting Kubernetes to the local
436436
network (and any VPNs it might need). This layer also needs to provide
437437
a means to set up accounts (and associated credentials) for accessing
438438
and using each Kubernetes cluster, and a way to manage

0 commit comments

Comments
 (0)