Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(docs): added falco.yaml section about config keys maturity. #3206

Merged
merged 5 commits into from
May 20, 2024

Conversation

FedeDP
Copy link
Contributor

@FedeDP FedeDP commented May 20, 2024

What type of PR is this?

/kind cleanup

Any specific area of the project related to this PR?

What this PR does / why we need it:

Also, rename Experimental -> Incubating and move prometheus_metrics_enabled to Incubating.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

See the proposal: https://github.com/falcosecurity/falco/blob/master/proposals/20231220-features-adoption-and-deprecation.md

Does this PR introduce a user-facing change?:

chore(docs): apply features adoption and deprecation proposal to config file keys

Also, rename `Experimental` -> `Incubating` and move `prometheus_metrics_enabled` to `Incubating`.

Signed-off-by: Federico Di Pierro <[email protected]>
@FedeDP
Copy link
Contributor Author

FedeDP commented May 20, 2024

/milestone 0.38.0

@poiana poiana added this to the 0.38.0 milestone May 20, 2024
@poiana poiana requested review from incertum and Kaizhe May 20, 2024 08:50
@FedeDP
Copy link
Contributor Author

FedeDP commented May 20, 2024

/cc @leogr @incertum @LucaGuerra

@poiana poiana requested review from leogr and LucaGuerra May 20, 2024 08:51
@@ -749,6 +762,8 @@ webserver:
# Can be an IPV4 or IPV6 address, defaults to IPV4
listen_address: 0.0.0.0
k8s_healthz_endpoint: /healthz
# [Incubating] `prometheus_metrics_enabled`
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Am not sure about how to integrate the feature level label here, for a sub-option of a Stable config key.

Copy link
Contributor

Choose a reason for hiding this comment

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

Makes sense to me like this.

Copy link
Member

Choose a reason for hiding this comment

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

This way works for me 👍

@@ -525,7 +538,7 @@ json_include_tags_property: true
# output mechanism. By default, buffering is disabled (false).
buffered_outputs: false

# [Experimental] `rule_matching`
# [Incubating] `rule_matching`
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Experimental -> Incubating

Copy link
Contributor

Choose a reason for hiding this comment

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

urgh ok here we should maybe also introduce a synonym rules_matching @leogr?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think singular is ok, in this case; it is rule-matching algorithm, feels ok rule_matching: foo to me.

@FedeDP
Copy link
Contributor Author

FedeDP commented May 20, 2024

I was also wondering whether we could improve somehow the way maturity labels are attached, ie: perhaps moving them to the index at the top? Or moving them just the line before the configuration key, like:

# `configs_files`
#
# Falco will load additional configs files specified here.
# Their loading is assumed to be made *after* main config file has been processed,
# exactly in the order they are specified.
# Therefore, loaded config files *can* override values from main config file.
# Also, nested include is not allowed, ie: included config files won't be able to include other config files.
#
# Like for 'rules_files', specifying a folder will load all the configs files present in it in a lexicographical order.
#
# [Stable] 
configs_files:
  - /etc/falco/config.d

falco.yaml Outdated
@@ -25,7 +25,7 @@
#
# (Falco command-line arguments)
# (Falco environment variables)
# Falco config files
# Falco configs files
Copy link
Contributor

Choose a reason for hiding this comment

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

Oh ok we may need to change the sha256 metrics name then as well. @FedeDP would you mind adding a commit for that real quick here? Thanks!

Copy link
Contributor Author

@FedeDP FedeDP May 20, 2024

Choose a reason for hiding this comment

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

Am not sure though, since we have watch_config_files too, and indeed we have multiple configuration (singular) files (plural), so config_files is not that bad after all, even if it somehow clashes with rules_files (but in this case, we have multiple files with multiple rules inside).
WDYT? Ie i am proposing to rename configs_files to config_files (not a breaking change since we introduced the new key during this release cycle, so we never went out with that).
cc @leogr

Copy link
Member

@leogr leogr May 20, 2024

Choose a reason for hiding this comment

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

I guess config_files would be more appropriate since it uses the singular form config as an adjective to describe the type of files (each file represents a configuration composed of a set of options). N.B. rules_files is different because a rulesfiles describes a single file containing many rules (each file represents a set of rules).

That said, I can't recall why we called it configs vs. config. Did we have a compelling reason to call it so? 🤔

Copy link
Contributor

Choose a reason for hiding this comment

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

So we keep config (singular form)? Works for me. Could we re-audit if we are consistent everywhere?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ok Leo is on board with changing configs_files to config_files. I will add a new commit for that.

@@ -749,6 +762,8 @@ webserver:
# Can be an IPV4 or IPV6 address, defaults to IPV4
listen_address: 0.0.0.0
k8s_healthz_endpoint: /healthz
# [Incubating] `prometheus_metrics_enabled`
Copy link
Contributor

Choose a reason for hiding this comment

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

Makes sense to me like this.

@FedeDP
Copy link
Contributor Author

FedeDP commented May 20, 2024

/hold
for discussion

@@ -749,6 +762,8 @@ webserver:
# Can be an IPV4 or IPV6 address, defaults to IPV4
listen_address: 0.0.0.0
k8s_healthz_endpoint: /healthz
# [Incubating] `prometheus_metrics_enabled`
Copy link
Member

Choose a reason for hiding this comment

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

This way works for me 👍

falco.yaml Outdated
@@ -1170,7 +1185,7 @@ base_syscalls:
# Falco libs #
##############

# [Experimental] `falco_libs` - Potentially subject to more frequent changes
# [Incubating] `falco_libs` - Potentially subject to more frequent changes
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
# [Incubating] `falco_libs` - Potentially subject to more frequent changes
# [Incubating] `falco_libs`

IMO, it would be appropriate to remove (or at least clarify what we mean by):

Potentially subject to more frequent changes

For incubating features, long-term support is not guaranteed, and before 1.0, the deprecation period length is 0. This basically means, the feature can be changed or removed at any time. This is the same for all incubating features, so I don't see any compelling reason to make any particular treatment for this specific one.

Copy link
Contributor

Choose a reason for hiding this comment

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

Agreed, remove it.

falco.yaml Outdated
@@ -25,7 +25,7 @@
#
# (Falco command-line arguments)
# (Falco environment variables)
# Falco config files
# Falco configs files
Copy link
Member

@leogr leogr May 20, 2024

Choose a reason for hiding this comment

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

I guess config_files would be more appropriate since it uses the singular form config as an adjective to describe the type of files (each file represents a configuration composed of a set of options). N.B. rules_files is different because a rulesfiles describes a single file containing many rules (each file represents a set of rules).

That said, I can't recall why we called it configs vs. config. Did we have a compelling reason to call it so? 🤔

@incertum
Copy link
Contributor

I was also wondering whether we could improve somehow the way maturity labels are attached, ie: perhaps moving them to the index at the top? Or moving them just the line before the configuration key, like:

# `configs_files`
#
# Falco will load additional configs files specified here.
# Their loading is assumed to be made *after* main config file has been processed,
# exactly in the order they are specified.
# Therefore, loaded config files *can* override values from main config file.
# Also, nested include is not allowed, ie: included config files won't be able to include other config files.
#
# Like for 'rules_files', specifying a folder will load all the configs files present in it in a lexicographical order.
#
# [Stable] 
configs_files:
  - /etc/falco/config.d

@leogr we haven't responded to this yet.

  • Adding also to the index at the top, big +1
  • Keeping # [Stable] configs_files was good would say, we can also add to the specific sub-config if needed. Don't have a strong opinion here. You can decide.

@poiana poiana added size/L and removed size/S labels May 20, 2024
@FedeDP
Copy link
Contributor Author

FedeDP commented May 20, 2024

Should've done everything:

  • configs_files -> config_files
  • experimental -> incubating
  • removed - Potentially subject to more frequent changes as @leogr suggested
  • Added maturity level to config index
  • merged under same section config_files and watch_config_files settings

Signed-off-by: Federico Di Pierro <[email protected]>
# Falco config files
# watch_config_files
# load_plugins [Stable]
# plugins [Stable]
# Falco outputs settings
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Note for eg: 1.0.0: we might add an outputs. namespace for these settings.
Similarly, for all the others, eg:

  • services.{grpc,webserver}
  • log.{stderr,syslog,level,libs}`
    ...

Copy link
Contributor

@incertum incertum left a comment

Choose a reason for hiding this comment

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

/approve

Copy link
Member

@leogr leogr left a comment

Choose a reason for hiding this comment

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

cc @LucaGuerra pls keep track of this, it may be useful in release comms.

@poiana
Copy link
Contributor

poiana commented May 20, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: FedeDP, incertum, leogr

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [FedeDP,incertum,leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@FedeDP
Copy link
Contributor Author

FedeDP commented May 20, 2024

/unhold

@poiana poiana merged commit 0bf7458 into master May 20, 2024
33 checks passed
@poiana poiana deleted the chore/maturity_config branch May 20, 2024 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants