Re: [VOTE] FLIP-454: New Apicurio Avro format

2024-05-02 Thread Nic Townsend
+1

I believe expanding the supported list of schema registries is a valuable 
addition.

--
Kind regards

Nic Townsend
Sofware Developer – IBM Event Automation

Slack: @nictownsend
X: @nict0wnsend


From: David Radley 
Date: Thursday, 2 May 2024 at 10:43
To: dev@flink.apache.org 
Subject: [EXTERNAL] [VOTE] FLIP-454: New Apicurio Avro format
Hi everyone,

I'd like to start a vote on the FLIP-454: New Apicurio Avro format
[1]. The discussion thread is here [2].

The vote will be open for at least 72 hours unless there is an
objection
or
insufficient votes.

[1] 
https://cwiki.apache.org/confluence/display/FLINK/FLIP-454%3A+New+Apicurio+Avro+format
[2] https://lists.apache.org/thread/wtkl4yn847tdd0wrqm5xgv9wc0cb0kr8


Kind regards, David.

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: PO Box 41, North Harbour, Portsmouth, Hants. PO6 3AU

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: PO Box 41, North Harbour, Portsmouth, Hants. PO6 3AU


RE: Flink technical debt.

2024-11-07 Thread Nic Townsend
Hi Robert, David

I am very much interested in a backlog review call – personally for two reasons:


  1.  Learning a bit more about the state of Flink, understanding how each 
issue would be triaged (and understanding what/why the severity is)
  2.  Seeing if there are any obvious places that I can help, it’s often easier 
for me hearing people describe the problem

--

Nic Townsend
IBM Event Processing
Senior Engineer / Technical Lead

Slack: @nictownsend



From: Robert Metzger 
Date: Wednesday, 6 November 2024 at 15:22
To: dev@flink.apache.org 
Subject: [EXTERNAL] Re: Flink technical debt.
Hey David,

Thanks a lot for this initiative.
What do you think about setting up a call weekly or every second week, open
to the public, where we collaboratively review a backlog of Jira tickets
and triage them into:
- Closing,
- following up,
- assigning a committer owner?

The purpose of the call is not to hide anything from anybody, it is just
for quicker collaboration. All decisions from the calls need to end up in
Jira and on the mailing lists



On Mon, Nov 4, 2024 at 4:07 PM David Radley  wrote:

> Hello,
> I have been looking at the Flink Jira and git. I see a large number of
> Flink Jira issues that are open and critical or blockers
> https://issues.apache.org/jira/browse/FLINK-36655?jql=project%20%3D%20FLINK%20AND%20priority%20in%20(Blocker%2C%20Critical)
> I realise some of these issues may not actually be critical as they have
> been labelled by the submitter.
>
> I see 1239 open unmerged PRs
> https://github.com/apache/flink/pulls?q=is%3Apr+is%3Aopen. Some of these
> are not associated with assigned  issues, so may never be merged. This
> amount of unmerged PRs, means that many people have put a lot of time and
> effort into creating code that has not made it into the codebase, so they
> do not get the credit for the contribution, which must be disheartening and
> the codebase does not get the benefit of the contribution.
>
> This is a large amount of technical debt. I would like to help address
> this problem by setting up a workgroup, with others in the community who
> would like this addressed. The scope of the workgroup would be to improve
> these numbers by activities such as:
>
>   *   Triaging PRs so it is easier for committers to merge or close them.
>   *   Identifying prs that could be closed out as no longer relevant.
>   *   Getting committer buy in.
>
> Are there other ideas from the community around how this could be improved
> with or without a workgroup, or whether the existing processes should be
> sufficient or enhanced?
>
> Is there an appetite to address this in the community? I am happy to drive
> this as a community workgroup, with my team in IBM, if there is community
> support.
>
> We could call the community workgroup ?Community Health Initiative? CHI to
> energise the Flink community.
>
> WDYT?
>
> Kind regards, David.
>
> Unless otherwise stated above:
>
> IBM United Kingdom Limited
> Registered in England and Wales with number 741598
> Registered office: Building C, IBM Hursley Office, Hursley Park Road,
> Winchester, Hampshire SO21 2JN
>

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road, 
Winchester, Hampshire SO21 2JN


Java truststores

2024-12-19 Thread Nic Townsend
Hi, I have a proposal for a Flink operator change – but I’m unsure whether it’s 
a) valuable, and b) large enough for a FLIP vs a Jira issue.

Scenario:

  *   I am using a selection of connectors that will communicate via TLS
  *   I would like to be able to connect to both internal and external services 
(i.e some use company issued certificates, others are signed by public 
authorities)
  *   I don’t want to have to configure each connector with PEM certificates 
(and then edit the program whenever a certificate expires)

The problem is that all I believe I can do is override the Flink JVM truststore 
to point to a truststore with the internal CA certificates:

env.java.opts.taskmanager: >-
   -Djavax.net.ssl.trustStore=/certs/truststore.
   -Djavax.net.ssl.trustStorePassword=
env.java.opts.jobmanager: >-
   -Djavax.net.ssl.trustStore=/certs/truststore.
   -Djavax.net.ssl.trustStorePassword=

The problem here is that it overrides the default cacerts truststore in Java – 
so I cannot connect to externally signed endpoints.

I know that I can merge cacerts and my truststore into a new truststore as a 
manual process. But it means that I have to remember to extract the cacerts 
every time I have a minor java change.

Proposed scenario:

  *   New property on the CR for a secret containing an “external truststore” 
(possibly an “external keystore” as well for MTLS)
  *   The flink operator deploys Flink with an init container and mounts the 
secrets
  *   The init container then combines the default cacerts on the Flink 
job/task manager with the “external truststore” and supplies that to the Flink 
runtime

This means that you can enable connecting to both internal and externally 
signed endpoints from a Flink job.

Thoughts as to whether this is big enough for a FLIP (if valuable)?

--

Nic Townsend
IBM Event Processing
Senior Engineer / Technical Lead

Slack: @nictownsend


Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road, 
Winchester, Hampshire SO21 2JN


RE: Java truststores

2024-12-19 Thread Nic Townsend
Hi Gabor – thank you for the prompt reply!

I appreciate that building a new Flink image means the Dockerfile would allow 
me to merge certs into the JVM truststore at build time.

However, the reason for the question is that our company (IBM) has a monthly 
release cycle which includes new Flink images (maybe due to Java version 
change, dependency change etc.)

I would prefer that all our customers do not have to re-build Flink images each 
month to add in the external certificates.

If this was something the operator supported, they could update to new versions 
without needing to build a new image each time.

In addition, it would also mean that in the case of certificate expiry, you 
would just update the single k8s secret and then stop/resume clusters for the 
new certificates to be picked up.

I hope that clarifies the usecase?

--

Nic Townsend
IBM Event Processing
Senior Engineer / Technical Lead

Slack: @nictownsend



From: Gabor Somogyi 
Date: Thursday, 19 December 2024 at 11:07
To: dev@flink.apache.org 
Subject: [EXTERNAL] Re: Java truststores
Hi Nic,

Not sure I understand all of the road blockers but truststore is normally
not per application
but per company/org which is relatively static (or at least not short
lived).

Keystores are normally propagated through volume mounts.

Is it not possible to import the truststore into the JVM truststore[1] ?
Such can be done during docker image creation...

[1] https://connect2id.com/blog/importing-ca-root-cert-into-jvm-trust-store

BR,
G


On Thu, Dec 19, 2024 at 11:43 AM Nic Townsend 
wrote:

> Hi, I have a proposal for a Flink operator change – but I’m unsure whether
> it’s a) valuable, and b) large enough for a FLIP vs a Jira issue.
>
> Scenario:
>
>   *   I am using a selection of connectors that will communicate via TLS
>   *   I would like to be able to connect to both internal and external
> services (i.e some use company issued certificates, others are signed by
> public authorities)
>   *   I don’t want to have to configure each connector with PEM
> certificates (and then edit the program whenever a certificate expires)
>
> The problem is that all I believe I can do is override the Flink JVM
> truststore to point to a truststore with the internal CA certificates:
>
> env.java.opts.taskmanager: >-
>-Djavax.net.ssl.trustStore=/certs/truststore.
>-Djavax.net.ssl.trustStorePassword=
> env.java.opts.jobmanager: >-
>-Djavax.net.ssl.trustStore=/certs/truststore.
>-Djavax.net.ssl.trustStorePassword=
>
> The problem here is that it overrides the default cacerts truststore in
> Java – so I cannot connect to externally signed endpoints.
>
> I know that I can merge cacerts and my truststore into a new truststore as
> a manual process. But it means that I have to remember to extract the
> cacerts every time I have a minor java change.
>
> Proposed scenario:
>
>   *   New property on the CR for a secret containing an “external
> truststore” (possibly an “external keystore” as well for MTLS)
>   *   The flink operator deploys Flink with an init container and mounts
> the secrets
>   *   The init container then combines the default cacerts on the Flink
> job/task manager with the “external truststore” and supplies that to the
> Flink runtime
>
> This means that you can enable connecting to both internal and externally
> signed endpoints from a Flink job.
>
> Thoughts as to whether this is big enough for a FLIP (if valuable)?
>
> --
>
> Nic Townsend
> IBM Event Processing
> Senior Engineer / Technical Lead
>
> Slack: @nictownsend
>
>
> Unless otherwise stated above:
>
> IBM United Kingdom Limited
> Registered in England and Wales with number 741598
> Registered office: Building C, IBM Hursley Office, Hursley Park Road,
> Winchester, Hampshire SO21 2JN
>

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road, 
Winchester, Hampshire SO21 2JN


RE: [VOTE] FLIP-532: Donate GetInData HTTP Connector to Flink

2025-06-10 Thread Nic Townsend
+ 1 (non-binding)

Particularly excited by the idea of the community backing to help mature the 
connector towards other RPC protocols as well (e.g websockets source/sink)


--

Nic Townsend
IBM Event Processing
Architect / Senior Engineer

Slack: @nictownsend
Bluesky: @nict0wnsend.bsky.social



From: Sharath 
Date: Friday, 6 June 2025 at 18:32
To: dev@flink.apache.org 
Subject: [EXTERNAL] Re: [VOTE] FLIP-532: Donate GetInData HTTP Connector to 
Flink
+1 (non-binding)

On Fri, Jun 6, 2025 at 9:38 AM Poorvank Bhatia 
wrote:

> +1 (non-binding)
>
> On Fri, Jun 6, 2025 at 9:39 PM David Radley 
> wrote:
>
> > Hi everyone,
> >
> > I'd like to start a vote on FLIP-532: Donate GetInData HTTP Connector to
> > Flink  [1], which has been discussed in this thread [2]. The formal
> > discussion thread [3] did not have any more input.
> >
> > The vote will be open for at least 72 hours.
> >
> > kind regards,  David
> >
> > [1]
> >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-532%3A+Donate+GetInData+HTTP+Connector+to+Flink
> > [2]
> > https://lists.apache.org/thread/fdpkhqxpf0mo4gdpjwnz4yhposlxycgf
> > [3]
> > https://lists.apache.org/thread/vcfj5xgd1olj4cph6rtys01wzdtsvryd
> >
> > Unless otherwise stated above:
> >
> > IBM United Kingdom Limited
> > Registered in England and Wales with number 741598
> > Registered office: Building C, IBM Hursley Office, Hursley Park Road,
> > Winchester, Hampshire SO21 2JN
> >
>

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road, 
Winchester, Hampshire SO21 2JN


RE: Re: Flink Kubenetes Operator client version

2025-07-16 Thread Nic Townsend
Hi Gyula, Tom

I appreciate that the details are a bit wooly – but what class of 
incompatibility problems were you envisioning?

My first guess Is it that the operator maybe might start to put 
annotations/labels etc on resources that then conflict with the native 
integration?

That said – our reasons for upgrading are to support kube 1.33 – which I 
realise means we have to upgrade both; it’s not worth having an operator on 
1.33 that deploys a Flink native that won’t work!

Thanks,
Nic


On 2025/07/08 16:06:19 Gyula Fóra wrote:
> Hi David!
>
> I think we should definitely pick up the latest version if possible, we
> have to make sure that this is compatible with how Flink uses the client
> for native integration though.
>
> Cheers
> Gyula
>
> On Tue, Jul 8, 2025 at 6:02 PM David Radley 
> mailto:da...@uk.ibm.com>> wrote:
>
> > Hi,
> > I can see that the Flink operator uses the 6.13.2 Kubenetes client . We
> > are looking to move up to use 7.20 to pick up security fixes. I see
> > https://github.com/fabric8io/kubernetes-client/blob/main/doc/MIGRATION-v7.md
> > .
> >
> > Any thoughts on the impact and whether there is a community support for
> > this upgrade?
> >Kind regards, David.
> >
> >
> > Unless otherwise stated above:
> >
> > IBM United Kingdom Limited
> > Registered in England and Wales with number 741598
> > Registered office: Building C, IBM Hursley Office, Hursley Park Road,
> > Winchester, Hampshire SO21 2JN
> >
>

--

Nic Townsend
IBM Event Processing
Architect / Senior Engineer

Slack: @nictownsend
Bluesky: @nict0wnsend.bsky.social



Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road, 
Winchester, Hampshire SO21 2JN


[jira] [Created] (FLINK-38162) Use of SQL functions with time attributes causes downstream temporal functions to fail

2025-07-30 Thread Nic Townsend (Jira)
Nic Townsend created FLINK-38162:


 Summary: Use of SQL functions with time attributes causes 
downstream temporal functions to fail
 Key: FLINK-38162
 URL: https://issues.apache.org/jira/browse/FLINK-38162
 Project: Flink
  Issue Type: Bug
  Components: Table SQL / Planner
Affects Versions: 1.20.0
Reporter: Nic Townsend


In the Flink docs for window join - 
[https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/sql/queries/window-join/#innerleftrightfull-outer]
 - the outer join example does not include the use of {{window_time.}}

This means that you cannot perform a window aggregate for example on the result 
of the join - perhaps for example you want to count how many rows came from the 
left, right, or both in a given window.

 

If you use the {{COALESCE}} like in the example, then although a {{DESCRIBE}} 
will show
{code:java}
+--++--+-++--+
| name |   type | null | key | extras | 
   watermark |
+--++--+-++--+
| window_time | TIMESTAMP(3) *ROWTIME* | true | || | {code}
it will not work with a Window TVF and throws an error that {{window_time}} is 
not a time attribute.

 

Even worse - if you build the following statement set (pseduo):
 * CREATE left table
 * CREATE right table
 * CREATE temporary view joined 
 * CREATE temporary view aggregate 
 * CREATE blackhole joined_sink 
 * CREATE blackhole aggregate_sink 
 * INSERT into joined_sink
 * INSERT into aggregate_sink

 

Then you end up with a stack trace from the planner of:
{code:java}
java.lang.RuntimeException: Error while applying rule ProjectToCalcRule, args 
[rel#7305:LogicalProject.NONE.any.None: 
0.[NONE].[NONE](input=RelSubset#7304,exprs=[$4, $5, $6, $0, $1])]         at 
org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:250)
 ~[flink-table-planner_2.12-1.20.1.jar:1.20.1]
[...]
Caused by: java.lang.IllegalArgumentException: Type mismatch:
rel rowtype: RecordType(TIMESTAMP(3) windowStartTime, TIMESTAMP(3) 
windowEndTime, TIMESTAMP(3) windowResultTime, VARCHAR(2147483647) CHARACTER SET 
"UTF-16LE" user_id, VARCHAR(2147483647) CHARACTER SET "UTF-16LE" product_id) 
NOT NULL
equiv rowtype: RecordType(TIMESTAMP(3) windowStartTime, TIMESTAMP(3) 
windowEndTime, TIMESTAMP(3) *ROWTIME* windowResultTime, VARCHAR(2147483647) 
CHARACTER SET "UTF-16LE" user_id, VARCHAR(2147483647) CHARACTER SET "UTF-16LE" 
product_id) NOT NULL
Difference:
windowResultTime: TIMESTAMP(3) -> TIMESTAMP(3) *ROWTIME*  {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)