{"id":22003003,"url":"https://github.com/rssnyder/harness-autostopping-python","last_synced_at":"2025-03-23T06:12:50.754Z","repository":{"id":108372345,"uuid":"601334541","full_name":"rssnyder/harness-autostopping-python","owner":"rssnyder","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-27T15:01:15.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-28T12:39:52.713Z","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/rssnyder.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-02-13T21:09:17.000Z","updated_at":"2023-02-13T21:14:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"f81c5ba8-65ee-4742-9fd4-9c257def5b1f","html_url":"https://github.com/rssnyder/harness-autostopping-python","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssnyder%2Fharness-autostopping-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssnyder%2Fharness-autostopping-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssnyder%2Fharness-autostopping-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssnyder%2Fharness-autostopping-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rssnyder","download_url":"https://codeload.github.com/rssnyder/harness-autostopping-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245061390,"owners_count":20554563,"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-29T23:42:16.577Z","updated_at":"2025-03-23T06:12:50.728Z","avatar_url":"https://github.com/rssnyder.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# harness-autostopping-python\n\ncreate a basic (no http or tcp workloads) autostopping rule\n\n```python\nrule = create_ec2_autostopping_rule(\"myec2srule\", \"i-02ddfd484e2ee6016\", \"ondemand\", \"rileyharnessccm\")\ncreate_autostopping_schedule(\"rileyharnessccm\", rule[\"response\"][\"id\"], [1,2,3,4,5], 8, 17)\n```\n\n```python\nrule = create_k8s_autostopping_rule(\"myk8srule\", \"web-app\", \"web\", \"rileyharnessccm\", \"codeserverCostaccess\")\ncreate_autostopping_schedule(\"rileyharnessccm\", rule[\"response\"][\"id\"], [1,2,3,4,5], 8, 17)\n```\n\nfunctions for both ec2 and kubernetes workloads\n\nattach an uptime schedule for created rule\n\n## Configuration\n\n### Environment\n\n- HARNESS_PLATFORM_API_KEY\n- HARNESS_ACCOUNT_ID\n\ncurl 'https://app.harness.io/gateway/lw/api/accounts/wlgELJ0TTre5aZhzpt8gVA/autostopping/v2/rules/13161?routingId=wlgELJ0TTre5aZhzpt8gVA\u0026accountIdentifier=wlgELJ0TTre5aZhzpt8gVA' \\\n  -X 'PUT' \\\n  -H 'authority: app.harness.io' \\\n  -H 'accept: */*' \\\n  -H 'accept-language: en-US,en;q=0.9' \\\n  -H 'authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdXRoVG9rZW4iOiI2NDA2MzdhYTVkNGFjNDI4MjcyNDUyOTYiLCJpc3MiOiJIYXJuZXNzIEluYyIsImV4cCI6MTY3ODQ2MjkxMywiZW52IjoiZ2F0ZXdheSIsImlhdCI6MTY3ODM3NjQ1M30.96j7LZAmenzeq5BPKsPLB7KbpRAuXA820p-absQWRGc' \\\n  -H 'content-type: application/json' \\\n  --data-raw '{\n  \"service\": {\n    \"name\": \"coqznkpuoszdylpaapwf-rule\",\n    \"account_identifier\": \"wlgELJ0TTre5aZhzpt8gVA\",\n    \"fulfilment\": \"kubernetes\",\n    \"kind\": \"k8s\",\n    \"cloud_account_id\": \"rileyharnessccm\",\n    \"idle_time_mins\": 5,\n    \"custom_domains\": [],\n    \"health_check\": null,\n    \"routing\": {\n      \"k8s\": {\n        \"RuleJson\": \"{\\\"kind\\\":\\\"AutoStoppingRule\\\",\\\"apiVersion\\\":\\\"ccm.harness.io/v1\\\",\\\"metadata\\\":{\\\"name\\\":\\\"coqznkpuoszdylpaapwf-rule\\\",\\\"namespace\\\":\\\"coqznkpuoszdylpaapwf\\\",\\\"annotations\\\":{\\\"harness.io/cloud-connector-id\\\":\\\"rileyharnessccm\\\"}},\\\"spec\\\":{\\\"idleTimeMins\\\":5,\\\"hideProgressPage\\\":false,\\\"workloadName\\\":\\\"coqznkpuoszdylpaapwf-app\\\",\\\"workloadType\\\":\\\"Deployment\\\",\\\"notifications\\\":{},\\\"dependencies\\\":[{\\\"selector\\\":{\\\"ruleName\\\":\\\"code-server\\\"},\\\"wait\\\":5}]}}\",\n        \"ConnectorID\": \"codeserverCostaccess\",\n        \"Namespace\": \"coqznkpuoszdylpaapwf\"\n      }\n    },\n    \"opts\": {\n      \"preservePrivateIP\": false,\n      \"deleteCloudResources\": false,\n      \"alwaysUsePrivateIP\": false,\n      \"hide_progress_page\": false,\n      \"dry_run\": false,\n      \"preserve_private_ip\": false,\n      \"always_use_private_ip\": false\n    },\n    \"metadata\": {\n      \"target_group_details\": null,\n      \"access_details\": null,\n      \"cloud_provider_details\": null,\n      \"service_errors\": null,\n      \"kubernetes_connector_id\": \"codeserverCostaccess\",\n      \"health_check_details\": null,\n      \"custom_domain_providers\": null,\n      \"port_config\": null,\n      \"dns_mapping_to_retain\": null,\n      \"autostopping_proxy_config\": null,\n      \"host_names\": null\n    },\n    \"access_point_id\": null,\n    \"id\": 13161\n  },\n  \"deps\": [\n    { \"delay_secs\": 5, \"dep_id\": 12338 }\n  ],\n  \"apply_now\": false\n}' \\\n  --compressed","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frssnyder%2Fharness-autostopping-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frssnyder%2Fharness-autostopping-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frssnyder%2Fharness-autostopping-python/lists"}