{"id":20441789,"url":"https://github.com/lightricks/fox","last_synced_at":"2025-07-08T07:35:24.539Z","repository":{"id":183970838,"uuid":"670626336","full_name":"Lightricks/fox","owner":"Lightricks","description":"This is a repo that will host a DevOps home assignment for future candidates","archived":false,"fork":false,"pushed_at":"2024-08-06T15:29:24.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T17:43:51.181Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lightricks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-25T13:21:50.000Z","updated_at":"2024-08-06T15:29:28.000Z","dependencies_parsed_at":"2024-11-15T09:36:48.379Z","dependency_job_id":"4507eb9e-b6cc-4b95-bc6c-4b796e05def5","html_url":"https://github.com/Lightricks/fox","commit_stats":null,"previous_names":["lightricks/fox"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lightricks%2Ffox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lightricks%2Ffox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lightricks%2Ffox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lightricks%2Ffox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lightricks","download_url":"https://codeload.github.com/Lightricks/fox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241989845,"owners_count":20053803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T09:34:58.632Z","updated_at":"2025-03-05T07:43:59.704Z","avatar_url":"https://github.com/Lightricks.png","language":"Python","readme":"## Fox Home Assignment\n\nWelcome to your home assignment! Your task is to deploy the ![Fox] app and configure it to autoscale using Kubernetes Event-Driven Autoscaling (KEDA). You'll need to integrate the \"Counter\" service to drive the autoscaling mechanism, ensuring the Fox app scales efficiently. We look forward to seeing your innovative solutions and approach to this challenge. Good luck!\n\n#### Counter Service\n\nService has 3 endpoints:\n- `http://\u003cservice_name\u003e/` - returns JSON object, which could be used for scaling using KEDA [Metric API Scaler](https://keda.sh/docs/2.14/scalers/metrics-api/)\n- `http://\u003cservice_name\u003e/plusone` - increments the Foxes Counter by one\n- `http://\u003cservice_name\u003e/reset` - resets the Foxes Counter\n\nHere is an example of service usage (assuming it's available on `localhost` port `8000`):\n###### Check the current counter value:\n```\n\u003e curl http://localhost:8000/\n{\"components\": {\"foxes\": {\"count\": 0.0}}}\n```\n###### Increase counter value by one:\n```\n\u003e curl http://localhost:8000/plusone\nHi, fox! Fox counter increased by one\n```\n###### Check current counter value:\n```\n\u003e curl http://localhost:8000/\n{\"components\": {\"foxes\": {\"count\": 1.0}}}\n```\n###### Reset counter value:\n```\n\u003e curl http://localhost:8000/reset\nFox counter was reset\n```\n###### Check current counter value:\n```\n\u003e curl http://localhost:8000/\n{\"components\": {\"foxes\": {\"count\": 0.0}}}\n```\n\n#### Steps to follow\n\n1. Clone the repo\n2. Build an Image for `counter` Python App /src/main.py (Push the Docker image to any Docker registry of your choice)\n3. create Kubernetes manifests, as follows:\n    - Deployment for `counter` in `default` namespace\n    - Service for the `counter` Deployment in `default` namespace\n4. Deploy the fox app using a Kubernetes deployment. You can use any simple application, such as Nginx or HelloWorld, to fulfill this requirement.\n5. After both the Deployment and Service were deployed - it's time to deploy [KEDA](https://keda.sh/)\n6. Create and deploy an ![HPA] - `add link` object using KEDA and [Metric API Scaler](https://keda.sh/docs/2.14/scalers/metrics-api/)\n    - Scaling of the fox app should be based on the `count` JSON field from the `counter` service - `http://\u003cservice_name\u003e/`\n    - Check if the scaling of the fox app is properly working using GET requests to the `counter` Service endpoints:\n        - `http://\u003cservice_name\u003e/plusone` to check Scale Up\n        - `http://\u003cservice_name\u003e/reset` to check Scale Down\n\n\n#### Python App\n- [Python App](src/main.py)\n- [requirements.txt](src/requirements.txt)\n\n#### Must use either:\n\n* Helm (include chart directory, templates, values.yaml, Chart.yaml)\n* Kustomize (include Kustomization.yaml, overlays, base configurations)\nThank you!\n\n### Post completion\n\nPlease submit your assignment as an archive (.zip or .tar.gz) including:\n\n- Kubernetes deployment files\n- Dockerfile\n- Any notes\n\n\nGood Luck!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightricks%2Ffox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flightricks%2Ffox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flightricks%2Ffox/lists"}