Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • How to use Websockets with Knative
  • How to scale resources with regards to Websocket connectionsSee if KEDA could be used to scale the subscription manager
  • How to design application to work efficiently with GraphQL

Possible tasks for this project :

...

Go through the EAT workshop, extending the existing AT testsuites, creating a new testsuite using the AT Structures, improving the dependency AT analyzer (dynamic testing), etc


Github repo:  https://github.com/jbossEAT-set/eap-additional-testsuiteJBCOMMUNITY/EAT

Contact / potential mentors: Panagiotis Sotiropoulos (psotirop@redhat.com)

...

Associated JBoss community project: Knative upstream

Knative - Alternative Knative Broker Implementation based on Apache Kafka

Summary of idea:

 


Knative - Alternative Knative Broker Implementation based on Apache Kafka

Summary of idea:

Based on the Knative proposal: Alternative Broker Based on the Knative proposal: Alternative Broker Proposal (you need to join knative-dev user group to see the document)

Current Broker implementation in Knative Eventing is implemented using channels. We would like to have an alternative broker, without using channels, that is using Apache Kafka instead.

The goal is to implement a Kafka native broker since the default channel based broker has a few unnecessary network hops between HTTP and Kafka protocols.

Possible Possible tasks for this project :

  • TODO

Required knowledge

  • Kubernetes
  • Knative
  • Apache Kafka
  • Golang (must)
  • Design and implementation of a Kafka native broker implementation
  • Conformance tests for broker to match expected API
  • Trigger/filter query for broker specific event routing and demo'ing
  • Performance tests to compare the design against channel based broker
  • Write documentation

Required knowledge

  • Kubernetes
  • Knative
  • Apache Kafka
  • Golang (must)

NOTENOTE: all the skills listed above are big things. We don't expect students to be experts in any of these. However, we expect students to have experimented with these technologies and have experience in majority of them.

...

Associated JBoss community project: Knative upstream

Project Starfish - Open anything anywhere in any IDE/editor

 


Project Starfish - Open anything anywhere in any IDE/editor

Summary of Summary of idea:

Implement a client side app that supports urlhandlers (i.e. ide://clone-url?url=https://github... , ide://open-file?, ide://open-debugger?port=..&project=url, etc.)

...

  • Open choice on language, but most likely Java, or Go or Python based
  • Basic understanding of IDE and/or Browser extensions
  • Access to more than one of the Operating Systems, virtual machines okey.

Github repo:

Skill level: Beginner/Intermediate

Contact(s) / potential mentors(s): Max Rydahl Andersen (manderse@redhat.com)

Associated JBoss community project(s): Quarkus, vscode extensions, JBoss Tools

Improve Kotlin support in Quarkus

Summary of idea:

Help improve the existing Kotlin support in Quarkus. Although Kotlin is a supported language in Quarkus there are a few rough edges that need improvement, especially with regards to the GraalVM native image support.

This project will require some level of research:

  • Understanding the bytecode the Kotlin compiler produces
  • Understanding the limitations of GraalVM's native images and what techniques Quarkus uses to overcome them

Possible tasks for this project:

  • Improve the interaction of Kotlin Data Classes with Json libraries (like Jackson) when working with GraalVM
  • Explore the use Kotlin Data Classes as Hibernate and / or Mongo Panache entities

Knowledge prerequisite: 

  • Java and Kotlin programming language
  • Basic understanding of Java build tools

Github repo: https://github.com/quarkusio/quarkus

       Since this is a new idea there are no direct current github repo for it - for now created https://github.com/maxandersen/starfish for having a place of discussion/conversion.

       If you want to explore/work in this area and show your

       experience/interest you can look into contributing to projects like  https://github.com/maxandersen/jbang or any vscode-* repo under https://github.com/redhat-developer/  or for more advanced

        https://github.com/quarkusio.  Basically any project that relates to developer tools, desktop tools, scripts or browser extensions will be useful experience. 

Slides:

        An outline of the idea with some screenshots/overview can be found here - feel free to comment.

    

Skill level: Beginner/Skill level: Intermediate

Contact(s) / potential mentors(s): Georgios Andrianakis (gandrian@redhat Max Rydahl Andersen (manderse@redhat.com)

Associated JBoss community project(s): Quarkus

...

, vscode extensions, JBoss Tools


Improve Kotlin support in Quarkus

Summary of the Ideaidea:

Help improve the existing Kotlin support in Quarkus is a Kubernetes Native Java framework tailored for GraalVM and HotSpot, crafted from best-of-breed Java libraries and standards.

Currently in Quarkus, support of the maven build system is mature. Gradle is another build system. Gradle is an open-source build-automation system that introduces a Groovy and Kotlin-based domain-specific language (DSL) and a more declarative description of dependencies allowing for more repeatable and faster incremental builds  

Possible tasks:

Required Knowledge

  • Java
  • Gradle build system

Skill Level: Intermediate

NOTE: all the skills listed above are big things. We don't expect students to be experts in any of these. However, we expect students to have experimented with these technologies and have experience in the majority of them.

Github Repo : https://github.com/quarkusio/quarkus

Associated JBoss community project(s): Quarkus

Contact/Potential Mentors : Max Rydahl Andersen (manderse@redhat.com), Georgios Andrianakis (gandrian@redhat.com), Rohan Maity(rmaity@redhat.com)

Extend Apache Tomcat Kubernetes operator

Summary of idea:

Extend the current tomcat operator . Functionality and planning should be discussed between mentors and students

Knowledge prerequisite: Go, Kubernetes, Java, Tomcat

Github repo:  https://github.com/web-servers/tomcat-operator

Skill level: Intermediate

Contact(s) / potential mentors(s): Petros Prokopiou (pprokopi@redhat.com

Associated JBoss community project(s): JWS / Apache Tomcat

HTTP/3 Tomcat connector

Summary of idea:

Create and demo HTTP/3 connector for Tomcat using java h3 libs.

Knowledge prerequisite: Tomcat, Java, HTTP protocols (HTTP)

Github repo:  N/A for the moment, should be created from scratch

Skill level: Intermediate

Contact(s) / potential mentors(s): Jean-Frederic Clere, George Zaronikas

Associated JBoss community project(s): JWS / Apache Tomcat / Apache httpd

Add Kubernetes dynamic proxy configuration to Apache httpd

Summary of idea:

The purpose of this project is for a student to create a custom Kubernetes dynamic proxy configuration for Apache httpd

Knowledge prerequisite: Kubernetes, httpd

Github repo:  Should be added here https://github.com/web-servers

Skill level: Intermediate

Contact(s) / potential mentors(s): Jean-Frederic Clere

Associated JBoss community project(s): JBCS, Apache httpd

k3s vs k8s 

Summary of idea:

The purpose of this project is for the students is to research, evaluate, compare k3s & k8s by building their own clusters and compare middleware and jboss offerings on these. Student should conduct experiments and investigations that will conclude in community blogposts. This project idea is open for discussion between students and potential mentors

Knowledge prerequisite: Kubernetes

Skill level: Beginner

. Although Kotlin is a supported language in Quarkus there are a few rough edges that need improvement, especially with regards to the GraalVM native image support.

This project will require some level of research:

  • Understanding the bytecode the Kotlin compiler produces
  • Understanding the limitations of GraalVM's native images and what techniques Quarkus uses to overcome them

Possible tasks for this project:

  • Improve the interaction of Kotlin Data Classes with Json libraries (like Jackson) when working with GraalVM
  • Explore the use Kotlin Data Classes as Hibernate and / or Mongo Panache entities

Knowledge prerequisite: 

  • Java and Kotlin programming language
  • Basic understanding of Java build tools

Github repo: https://github.com/quarkusio/quarkus

Skill level: Intermediate

Contact(s) / potential mentors(s): Georgios Andrianakis (gandrian@redhat.com)

Associated JBoss community project(s): Quarkus

Quarkus - Improve Gradle support

Summary of the Idea:

Quarkus is a Kubernetes Native Java framework tailored for GraalVM and HotSpot, crafted from best-of-breed Java libraries and standards.

Currently in Quarkus, support of the maven build system is mature. Gradle is another build system. Gradle is an open-source build-automation system that introduces a Groovy and Kotlin-based domain-specific language (DSL) and a more declarative description of dependencies allowing for more repeatable and faster incremental builds  

Possible tasks:

Required Knowledge

  • Java
  • Gradle build system

Skill Level: Intermediate

NOTE: all the skills listed above are big things. We don't expect students to be experts in any of these. However, we expect students to have experimented with these technologies and have experience in the majority of them.

Github Repo : https://github.com/quarkusio/quarkus

Associated JBoss community project(s): Quarkus

Contact/Potential Mentors : Max Rydahl Andersen (manderse@redhat.com), Georgios Andrianakis (gandrian@redhat.com), Rohan Maity(rmaity@redhat.com)

Extend Apache Tomcat Kubernetes operator

Summary of idea:

Extend the current tomcat operator . Functionality and planning should be discussed between mentors and students

Knowledge prerequisite: Go, Kubernetes, Java, Tomcat

Github repo:  https://github.com/web-servers/tomcat-operator

Skill level: Intermediate

Contact(s) / potential mentors(s): Petros Prokopiou (pprokopi@redhat.com) George Zaronikas (gzaronik@redhat.com)

Associated JBoss community project(s): JWS / Apache Tomcat


HTTP/3 Tomcat connector

Summary of idea:

Create and demo HTTP/3 connector for Tomcat using java http/3 QUiC libraries. Look to https://github.com/quicwg/base-drafts/wiki/Implementations for existing implementations. The idea is to evaluate the existing libraries and find one that can be use to create an HTTP/3 connector. If no libraries are OK for the project we might have to write the HTTP/3 code we need for the prototype.

We don't plan to use a native library like Quiche for the moment but that might be a solution to get prove of concept quickly. Note the IETF has published a new draft (https://quicwg.org/base-drafts/draft-ietf-quic-http.html) of the protocol.

Knowledge prerequisite: Tomcat, Java, HTTP protocols (HTTP)

Github repo:  N/A for the moment, should be created from scratch

Skill level: Intermediate

Contact(s) / potential mentors(s): Jean-Frederic Clere (jfclere@redhat.com), George Zaronikas (gzaronik@redhat.com)

Associated JBoss community project(s): JWS / Apache Tomcat


Add Kubernetes dynamic proxy configuration to Apache httpd

Summary of idea:

The purpose of this project is for a student to create a custom Kubernetes dynamic proxy configuration for Apache httpd. mod_proxy_balancer allows some dynamic creation of work, the idea is to use the kubernetes APU to discover the nodes where an application is running and the port on which the service is exposed in kubernetes.

kubectl get nodes gives the list of nodes (all nodes)

kubectl get services display the service port (and the VirtualHost).

To create a worker for mod_proxy_balancer we need the node (name or IP) and the port, for the VirtualHost that is linked to webapp name.

The idea is to create the VirtualHost and workers dynamically using the information from the kubernetes API.

Knowledge prerequisite: Kubernetes, httpd, mod_proxy.

Github repo:  Should be added here https://github.com/web-servers

Skill level: Intermediate

Contact(s) / potential mentors(s): Jean-Frederic Clere (jfclere@redhat.com)

Associated JBoss community project(s): JBCS, Apache httpd


k3s vs k8s 

Summary of idea:

The purpose of this project is for the students is to research, evaluate, compare k3s & k8s by building their own clusters and compare middleware and jboss offerings on these. Student should conduct experiments and investigations that will conclude in community blogposts. This project idea is open for discussion between students and potential mentors and prepare scenarios for a possible demos.

Knowledge prerequisite: Kubernetes

Skill level: Beginner

Contact(s) / potential mentors(s): Jean-Frederic Clere (jfclere@redhat.com)

Associated JBoss community project(s): Apache Tomcat, Wildfly, Apache httpd and more upon discussion.



Teiid Translators for AVRO, Paraquet

Summary of idea:

Teiid (https://teiid.io) is Data Virtualization system that allows reading data from various different data sources and data types. The idea of this project is to extend the support for Apache AVRO, Apache Paraquet files on HDFS or in any other store. The Serializers and deserializers for these are already defined https://docs.aws.amazon.com/athena/latest/ug/avro.html and https://docs.aws.amazon.com/athena/latest/ug/parquet.html 

Teiid has a concept called a Translator, one need to write a new translator(s) for above where they need to use these SerDes from these links and convert the data.

Knowledge prerequisite: Java, Spring Boot

Github repo: https://github.com/teiid

Skill level: Intermediate

Contact(s) / potential mentors(s): Ramesh Reddy (rareddy@redhat.com), Steven Hawkins (shawkins@redhat.com)

Associated JBoss community project(s): Teiid


Intrusion Detection Using Elytron Security Events

Summary of idea:

Without intrusion detection, an attacker can attempt attacks many times until an attack is finally successful. Intrusion detection allows for these attacks to be identified before a successful attack is likely to occur. The purpose of this project is to add the ability to detect attacks using Elytron, the security framework used by the WildFly Application Server. In particular, Elytron already provides support for security events which can indicate things like a failed authentication attempt for a particular user. Can we leverage these events to detect things like multiple failed authentication attempts for a particular user? Once detected, what kind of action can we take (e.g., a server administrator could be notified, an account could be disabled, etc.)?

This project will need some level of research into the following areas before starting on the implementation:

  • What kinds of attacks can be detected using Elytron security events?
  • Should more security events be added to Elytron? Should more information be added to existing Elytron security events?
  • What kinds of actions can be taken upon intrusion detection?

Possible tasks for this project:

  • Identify a specific type of attack to focus on initially.
  • Create a document that describes the attack you will be focusing on, how you plan to use security events to detect this attack, and what kind of action you plan to take upon detecting this attack.
  • Implement the ability to detect this type of attack using security events.
  • Implement the ability to take action upon detecting this type of attack.
  • Implement appropriate test cases.
  • Write documentation.
  • Create a blog post that gives an overview of your project.
  • Look into other attacks that could be detected.

Required knowledge:

  • Experience with Java and a good understanding of object-oriented programming concepts
  • Experience in data sciences, machine learning, or AI in general would be ideal

GitHub repo: https://github.com/wildfly-security/wildfly-elytron

Elytron website: https://wildfly-security.github.io/wildfly-elytron/

Elytron getting started guide: https://wildfly-security.github.io/wildfly-elytron/getting-started-for-developers 

Skill level: Intermediate

Contact(s) / potential mentor(s): Darran Lofthouse (darran.lofthouse@redhat.com) and Farah Juma (fjuma@redhat.com)Contact(s) / potential mentors(s): Jean-Frederic Clere

Associated JBoss community project(s): Apache Tomcat, Wildfly, Apache httpd and more upon discussion.

Teiid Translators for AVRO, Paraquet

Summary of idea:

Teiid (https://teiid.io) is Data Virtualization system that allows reading data from various different data sources and data types. The idea of this project is to extend the support for Apache AVRO, Apache Paraquet files on HDFS or in any other store. The Serializers and deserializers for these are already defined https://docs.aws.amazon.com/athena/latest/ug/avro.html and https://docs.aws.amazon.com/athena/latest/ug/parquet.html 

Teiid has a concept called a Translator, one need to write a new translator(s) for above where they need to use these SerDes from these links and convert the data.

Knowledge prerequisite: Java, Spring Boot

Elytron, WildFly

Kubernetes Client - Improve tests

Summary of the Idea:

Kubernetes Client is a Java client for Kubernetes and OpenShift. The client provides access to the full Kubernetes & OpenShift REST APIs via a fluent DSL.

The current level of code coverage and tests for the client is, in general, quite good. However, in the recent months, we've added several extensions and updated some of the API versions, and the project requires an update of the current tests and the addition of newer ones to cover the missing points.

Possible tasks for this project:

  • Provide more unit tests for the new auto-generated fluent DSL classes from new extensions and updated APIs.
  • Improve current integration tests and our Mock Web Server implementation.
  • Implement E2E tests using a real cluster (Minikube) > We have examples for this in some of the other projects our team manages.

Required knowledge:

  • Java
  • Some experience with Kubernetes or OpenShift

Skill Level: Intermediate

Github RepoGithub repo: https://github.com/teiidSkill level: Intermediate/fabric8io/kubernetes-client

Contact(s) / potential mentorsmentor(s):  Ramesh Reddy, Steven HawkinsDevang Gaur (dgaur@redhat.com), Rohan Kumar (rokumar@redhat.com) and Marc Nuri (marc.nuri@redhat.com)

Associated JBoss community project(s): Teiidfabric8io/kubernetes-client