Skip to content

LOG-7261: Implement AzureLogIngestion output in CLO#3223

Open
Clee2691 wants to merge 1 commit intoopenshift:masterfrom
Clee2691:LOG-7261
Open

LOG-7261: Implement AzureLogIngestion output in CLO#3223
Clee2691 wants to merge 1 commit intoopenshift:masterfrom
Clee2691:LOG-7261

Conversation

@Clee2691
Copy link
Copy Markdown
Contributor

Description

This PR adds a new azureLogsIngestion output type that sends logs to Azure Monitor via the Logs Ingestion API.
The AzureMonitor output is deprecated and will be removed in a future release. Microsoft will retire the Data Collecter API in September 2026.

What's new:

  • Output type AzureLogsIngestion with required DCR immutable ID, stream name, and URL, plus optional token scope, timestamp field, and tuning
  • Two auth modes: clientSecret - long lived credentials and workloadIdentity - short lived tokens
  • Functional tests using a Mockoon mock server (mocks both the OAuth2 token endpoint and the DCR ingestion
    endpoint over TLS)
  • Refactored Azure test helpers into a shared test/helpers/azure/ package used by both azureMonitor and
    azureLogsIngestion
  • Add deprecation API comment to AzureMonitor output

/cc @cahartma @vparfonov
/assign @jcantrill

Links

@Clee2691
Copy link
Copy Markdown
Contributor Author

/test all

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Mar 12, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Mar 12, 2026

@Clee2691: This pull request references LOG-7261 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.8.0" version, but no target version was set.

Details

In response to this:

Description

This PR adds a new azureLogsIngestion output type that sends logs to Azure Monitor via the Logs Ingestion API.
The AzureMonitor output is deprecated and will be removed in a future release. Microsoft will retire the Data Collecter API in September 2026.

What's new:

  • Output type AzureLogsIngestion with required DCR immutable ID, stream name, and URL, plus optional token scope, timestamp field, and tuning
  • Two auth modes: clientSecret - long lived credentials and workloadIdentity - short lived tokens
  • Functional tests using a Mockoon mock server (mocks both the OAuth2 token endpoint and the DCR ingestion
    endpoint over TLS)
  • Refactored Azure test helpers into a shared test/helpers/azure/ package used by both azureMonitor and
    azureLogsIngestion
  • Add deprecation API comment to AzureMonitor output

/cc @cahartma @vparfonov
/assign @jcantrill

Links

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Mar 12, 2026
@openshift-ci openshift-ci bot requested review from cahartma and vparfonov March 12, 2026 16:51
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 12, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@Clee2691 Clee2691 marked this pull request as ready for review March 20, 2026 15:39
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Mar 20, 2026
minRetryDuration: 20s
----

==== Field Reference
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we have any concerns this may get out of sync? Should we exclude it in favor of our reference doc?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

What do you mean by reference doc? The API docs?

I think we should keep this as there is some background on the different API's (data collector, logs ingestion). This can be used to expand your below comment.

// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Azure Log Ingestion"
AzureLogsIngestion *AzureLogsIngestion `json:"azureLogsIngestion,omitempty"`

// DEPRECATED: Use AzureLogsIngestion instead. This output will be removed in a future release.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

should we further expand that MS is dropping support Sept. 2026?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I think this is a good general statement and the doc created can shed more light into the change.

I also do think that someone who is forwarding to Azure now will (should) know about the removal of the data collector API as when they go to set it up, there are many warnings about it in their docs


Auth *AzureLogsIngestionAuth `json:"auth,omitempty" yaml:"auth,omitempty" toml:"auth,omitempty"`

Acknowledgements *Acknowledgements `json:"acknowledgements,omitempty" yaml:"acknowledgements,omitempty" toml:"acknowledgements,omitempty"`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can these be replaced by "BaseSink"?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I was looking to see if I could BUT this sink does NOT support compression.

Batch *Batch `json:"batch,omitempty" yaml:"batch,omitempty" toml:"batch,omitempty"`
Buffer *Buffer `json:"buffer,omitempty" yaml:"buffer,omitempty" toml:"buffer,omitempty"`
Request *Request `json:"request,omitempty" yaml:"request,omitempty" toml:"request,omitempty"`
TLS *transport.TLS `json:"tls,omitempty" yaml:"tls,omitempty" toml:"tls,omitempty"`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we know if the vector TLS config for azure supports the cipher and other profile change? Is it the same config as the other sinks?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes this is similar to other sinks and is valid.

See:https://vector.dev/docs/reference/configuration/sinks/azure_logs_ingestion/#tls

vectorhelpers "github.com/openshift/cluster-logging-operator/internal/generator/vector/helpers"
)

type AzureLogsIngestion struct {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

shouldnt need this at all with the new api changes

}

const (
AzureCredentialKindWorkloadIdentity = "workload_identity"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

does this need to be public?

@jcantrill
Copy link
Copy Markdown
Contributor

/hold
/approve

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 20, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 20, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Clee2691, jcantrill

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

The pull request process is described here

Details Needs approval from an approver in each of these files:

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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 20, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Mar 20, 2026

@Clee2691: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/functional-target b69a8e3 link true /test functional-target
ci/prow/e2e-target b69a8e3 link true /test e2e-target

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. release/6.6

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants