Hello, I’m working through the controller configuration for an initial set up and see some discrepancies between the sample controller config given in the docs (link here), and the quickstart controller config.
The quickstart controller config (file: ziti-edge-controller.yaml
) appears significantly more comprehensive, but there are also sections where the mentioned required
config arguments don’t match up. For example, in the doc linked config, for edge
→ api
config section, we have the following with two required configuration parameters (removing extra config comments from both to keep it short):
edge:
api:
# (required) The interface and port that the Edge API should be served on.
listener: 127.0.0.1:1280
# (required) The host/port combination that is reported as publicly accessible for the Edge API
advertise: localhost:1280
But in the equivalent quickstart config, the edge
→ api
section has neither of the required parameters mentioned above; and conversely the sample doc config doesn’t have the required address
parameter shown here:
edge:
api:
sessionTimeout: 30m
# address - required
# The default address (host:port) to use for enrollment for the Client API. This value must match one of the addresses
# defined in this Controller.WebListener.'s bindPoints.
address: ziti-edge-controller:1280
It looks to me like maybe the document linked config is outdated and the newer config example is found in the quickstart? @TheLumberjack, I know you mentioned above to take a look at the quickstart config which I’m doing, but I would also assume the other OpenZiti doc linked config example is still valid config too since people are being pointed to it, right?
In examining only one each of these config documents, one would only know that only postgres exclusively or file based boltDb exclusively (if I’m interpreting what I’m seeing correctly) is supported for the controller storage backend, which is why I like to look at a single source of truth of latest documented config schemas, or alternatively, raw schemas to see all the options available before investing time trying to configure something that I might have done differently if I knew all the currently available options at the start, or might have configured incorrectly if I happened to find and use an invalid/out-of-date config without realizing it.
Similar to the questions in the thread above, I’ll ask and answer what I think are correct answers to some similar questions. Please correct me where I’m wrong!
-
What is the source of truth for the controller config?
- At this time, probably the quickstart config.
-
Is there a documented and current config schema for the controller showing all the options available for config in one place?
-
Is there raw or code based config schema available for the controller config?
- Looks like config and code source in a few places is the most helpful, like:
❯ fd options fabric/controller
fabric/controller/api_impl/query_options.go
fabric/controller/network/options.go
Oh, it actually looks like postgres config options were removed from at least some of the components a couple years ago back around Ziti release 0.15.0
, and boltDb has been default since release 0.20.10 or so? If so, then the linked controller sample document is quite outdated and would no longer work at this point, right?