🎯
Saurav Upadhyay
@upsaurav12
Joined on 27 October 2022
LFX'25 CNCF @headlamp-k8s | FOSS Contirbutor @CNCF
GitHub Stats
7
Followers
99
Repositories
0
Organizations
0
Gists
87
Pull Requests
107
Issues
167
Commits
0
Sponsors
9
Contributed To
1
Star Earned
Most Used Languages
77.04%
TypeScript
15.38%
Go
4.13%
JavaScript
2.26%
CSS
1.19%
HTML
Popular Projects
Top Contributions
Top contributions made by the user in the last year.
Charts
Follow Up
Activity Graph
Contributions Calendar
Contributions made by the user in the last 365 days.
Recent Activity
8/18/2025, 2:10:20 AM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add cache invalidation for modifying requests This add logic for handling cache invalidation for the requests which are modifigying POST, PUT, DELETE etc. which would delete keys by generating keys.
8/18/2025, 1:47:23 AM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add ReturnAuthResponse that will be used to return the Error response if the user is not Authorized to access the resources This add new function ReturnAuthResponse that help to return the UnAuthorized Response to the client if the user is not Authorized this let not to proxyRequest again to get the AuthError Response we can just directly send this.
8/17/2025, 5:08:11 PM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add ReturnAuthResponse that will be used to return the Error response if the user is not Authorized to access the resources This add new function ReturnAuthResponse that help to return the UnAuthorized Response to the client if the user is not Authorized this let not to proxyRequest again to get the AuthError Response we can just directly send this.
8/17/2025, 10:52:51 AM
Pushed 1 commit(s) to upsaurav12/headlamp on branch pagination
- backend: cmd/pagination: Add pagination implementation to return only page that was requested from the client. This improves the pagination functionality, which help to return only page that was requested from the client not the full list, this help the frontend to fetch only page that the user wants to see the page not the full list. Currently the page size is limit =15, we can make it dynamic according to the headlamp.
8/16/2025, 10:35:33 PM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add CheckForChanges to invalidate resource data if staled This add CheckForChanges which will help to delete the data which has become staled due to changes by external tools like kubectl, helm etc. this helps to keep the cache updated with the latest changes.
8/16/2025, 10:17:37 PM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add CheckForChanges to invalidate resource data if staled This add CheckForChanges which will help to delete the data which has become staled due to changes by external tools like kubectl, helm etc. this helps to keep the cache updated with the latest changes.
8/16/2025, 10:16:42 PM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add CheckForChanges to invalidate resource data if staled This add CheckForChanges which will help to delete the data which has become staled due to changes by external tools like kubectl, helm etc. this helps to keep the cache updated with the latest changes.
8/16/2025, 10:13:41 PM
Pushed 14 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add ExtractNamespaces to extract namespaces and kind This adds a new function ExtractNamespaces which will return resource namespace and kind from the requested URL. For example, if the URL path is /api/v1/namespace/test_namespaces/pods namespace: test_namespaces kind: pods.
- backend: k8cache/k8cache: Add UnmarshalCachedData to deserialize JSON string from cache This adds a new function, UnmarshalCachedData which helps to deserialize a JSON string received from cache. This helps to reconstructing the full HTTP response (status, headers, body) when serving the K8's to the client. this helps to provide the clarity about the incoming k8's responses to the client.
- backend: k8cache/k8cache: Add SetHeader function to serve response from cache This adds SetHeader function to help to serve response from cache to make sure that the client recive the correct metadata about the response. This also has it test to test whether it is returning correct response data.
- backend: k8cache/k8cache: Add MarshalToStore to serialize cacheResponseData into JSON []byte This add MarshalToStore serialize cacheResponseData struct into JSON []byte. this function is used before storing the k8's response data into cache ensuring a consistent and structured format for all cached entries. Also added unit test to test MarshalToStore
- backend: k8cache/k8cache: Add FilterHeaderForCache to reflect the state of the decompressed body This adds FilterHeaderForCache ensures that the cached headers accurately reflect the state of the decompressed body is being stored, and prevents client side decompression issues serving from cache. This also adds unit test for testing FilterHeaderForCache.
- backend: k8cache/k8cache: Add getClientSet to get clientset for given context and token This add getClientMD is used to get a clientset for the given context and token. It will reuse clientsets if a matching one is already cached.
- backend: k8cache/k8cache: Add IsAllowed to authorize user for based on the request This add GetKindAndVerb and IsAllowed function to Authorized user based on user's permission to access resources. this also add unit tests for GetKindAndVerb and IsAllowed to make sure the functions are authenticating users correctly.
- backend: k8cache/k8cache: Add LoadFromCache to return data if exists in the cache This add LoadFromCache to ensure that if the user has the permission to view the resources then it will check if the generated key is found in cache if the key is present in the cache then it will return directly to the client in []byte. This also adds unit test for LoadFromCache to ensure reliability of the LoadFromCache.
- backend: k8cache/k8cache: Add RequestK8ClusterAPIClusterAndStore to store the K8's API resposne in cache This function adds RequestK8ClusterAPIAndStore ensures if the key was not found inside the cache then this will make actual call to k8's and this will capture the response body and convert the captured response to string. After converting it will store the response with the key and TTL of 10*min.
- backend: k8cache/k8ache: Add StoresAfterError to store response in cache and return if exist in the cache This add StoreAfterAuthError Stores resource(pods , nodes , etc) and returns to client if we get error while Authorizing user's permissions for every resources. This also add unit test for StoreAfterAuthError to test reliability.
- backend: pkg/config: Add CacheEnabled flag to make cache optional This add CacheEnabled flag to allow user to make cache as optional. this would also help to test the cache implementation
- backend: cmd: Add CacheMiddleWare for caching implementation This add CacheMiddleWare that would be used in ClusterAPIHandler function. this help to implement Cache in different layer which help not to effect the core logic of backend. so if things breaks from cache it can be removed easily.
- backend: cmd/headlamp: Add CacheEnabled condition in handlerClusterAPI function This adds CacheEnabled condition to handleClusterAPI for making cache implementation optional and moved the logic for clusterAPI request to new function called clusterRequestHandler to ensure the reusability for cluster requests.
- backend: k8cache/k8cache: Add CheckForChanges to invalidate resource data if staled This add CheckForChanges which will help to delete the data which has become staled due to changes by external tools like kubectl, helm etc. this helps to keep the cache updated with the latest changes.
8/16/2025, 10:10:18 PM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add CheckForChanges to invalidate resource data if staled This add CheckForChanges which will help to delete the data which has become staled due to changes by external tools like kubectl, helm etc. this helps to keep the cache updated with the latest changes.
8/16/2025, 10:08:44 PM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add CheckForChanges to invalidate resource data if staled This add CheckForChanges which will help to delete the data which has become staled due to changes by external tools like kubectl, helm etc. this helps to keep the cache updated with the latest changes.
8/16/2025, 8:41:30 PM
Pushed 14 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add ExtractNamespaces to extract namespaces and kind This adds a new function ExtractNamespaces which will return resource namespace and kind from the requested URL. For example, if the URL path is /api/v1/namespace/test_namespaces/pods namespace: test_namespaces kind: pods.
- backend: k8cache/k8cache: Add UnmarshalCachedData to deserialize JSON string from cache This adds a new function, UnmarshalCachedData which helps to deserialize a JSON string received from cache. This helps to reconstructing the full HTTP response (status, headers, body) when serving the K8's to the client. this helps to provide the clarity about the incoming k8's responses to the client.
- backend: k8cache/k8cache: Add SetHeader function to serve response from cache This adds SetHeader function to help to serve response from cache to make sure that the client recive the correct metadata about the response. This also has it test to test whether it is returning correct response data.
- backend: k8cache/k8cache: Add MarshalToStore to serialize cacheResponseData into JSON []byte This add MarshalToStore serialize cacheResponseData struct into JSON []byte. this function is used before storing the k8's response data into cache ensuring a consistent and structured format for all cached entries. Also added unit test to test MarshalToStore
- backend: k8cache/k8cache: Add FilterHeaderForCache to reflect the state of the decompressed body This adds FilterHeaderForCache ensures that the cached headers accurately reflect the state of the decompressed body is being stored, and prevents client side decompression issues serving from cache. This also adds unit test for testing FilterHeaderForCache.
- backend: k8cache/k8cache: Add getClientSet to get clientset for given context and token This add getClientMD is used to get a clientset for the given context and token. It will reuse clientsets if a matching one is already cached.
- backend: k8cache/k8cache: Add IsAllowed to authorize user for based on the request This add GetKindAndVerb and IsAllowed function to Authorized user based on user's permission to access resources. this also add unit tests for GetKindAndVerb and IsAllowed to make sure the functions are authenticating users correctly.
- backend: k8cache/k8cache: Add LoadFromCache to return data if exists in the cache This add LoadFromCache to ensure that if the user has the permission to view the resources then it will check if the generated key is found in cache if the key is present in the cache then it will return directly to the client in []byte. This also adds unit test for LoadFromCache to ensure reliability of the LoadFromCache.
- backend: k8cache/k8cache: Add RequestK8ClusterAPIClusterAndStore to store the K8's API resposne in cache This function adds RequestK8ClusterAPIAndStore ensures if the key was not found inside the cache then this will make actual call to k8's and this will capture the response body and convert the captured response to string. After converting it will store the response with the key and TTL of 10*min.
- backend: k8cache/k8ache: Add StoresAfterError to store response in cache and return if exist in the cache This add StoreAfterAuthError Stores resource(pods , nodes , etc) and returns to client if we get error while Authorizing user's permissions for every resources. This also add unit test for StoreAfterAuthError to test reliability.
- backend: pkg/config: Add CacheEnabled flag to make cache optional This add CacheEnabled flag to allow user to make cache as optional. this would also help to test the cache implementation
- backend: cmd: Add CacheMiddleWare for caching implementation This add CacheMiddleWare that would be used in ClusterAPIHandler function. this help to implement Cache in different layer which help not to effect the core logic of backend. so if things breaks from cache it can be removed easily.
- backend: cmd/headlamp: Add CacheEnabled condition in handlerClusterAPI function This adds CacheEnabled condition to handleClusterAPI for making cache implementation optional and moved the logic for clusterAPI request to new function called clusterRequestHandler to ensure the reusability for cluster requests.
- backend: k8cache/k8cache: Add CheckForChanges to invalidate resource data if staled This add CheckForChanges which will help to delete the data which has become staled due to changes by external tools like kubectl, helm etc. this helps to keep the cache updated with the latest changes.
8/16/2025, 12:39:54 AM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: k8cache/k8cache: Add CheckForChanges to invalidate resource data if staled This add CheckForChanges which will help to delete the data which has become staled due to changes by external tools like kubectl, helm etc. this helps to keep the cache updated with the latest changes.
8/16/2025, 12:06:20 AM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: cmd/headlamp: Add CacheEnabled condition in handlerClusterAPI function This adds CacheEnabled condition to handleClusterAPI for making cache implementation optional and moved the logic for clusterAPI request to new function called clusterRequestHandler to ensure the reusability for cluster requests.
8/15/2025, 11:42:38 PM
Pushed 1 commit(s) to upsaurav12/headlamp on branch cacheImplementation
- backend: cmd: Add CacheMiddleWare for caching implementation This add CacheMiddleWare that would be used in ClusterAPIHandler function. this help to implement Cache in different layer which help not to effect the core logic of backend. so if things breaks from cache it can be removed easily.