{"id":21721357,"url":"https://github.com/informaticsmatters/squonk2-data-manager-job-operator","last_synced_at":"2026-04-15T18:02:28.851Z","repository":{"id":37770147,"uuid":"369613215","full_name":"InformaticsMatters/squonk2-data-manager-job-operator","owner":"InformaticsMatters","description":"An arbitrary Job-execution operator for the Data Manager API","archived":false,"fork":false,"pushed_at":"2025-10-15T17:04:21.000Z","size":196,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-16T11:58:42.458Z","etag":null,"topics":["k8s-operator","squonk2"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InformaticsMatters.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-05-21T17:49:04.000Z","updated_at":"2025-10-15T16:59:36.000Z","dependencies_parsed_at":"2023-11-29T16:52:51.690Z","dependency_job_id":"855887b5-4d65-48ae-859e-86ade75c500a","html_url":"https://github.com/InformaticsMatters/squonk2-data-manager-job-operator","commit_stats":null,"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"purl":"pkg:github/InformaticsMatters/squonk2-data-manager-job-operator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Fsquonk2-data-manager-job-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Fsquonk2-data-manager-job-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Fsquonk2-data-manager-job-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Fsquonk2-data-manager-job-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InformaticsMatters","download_url":"https://codeload.github.com/InformaticsMatters/squonk2-data-manager-job-operator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Fsquonk2-data-manager-job-operator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31853279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["k8s-operator","squonk2"],"created_at":"2024-11-26T02:16:00.575Z","updated_at":"2026-04-15T18:02:28.833Z","avatar_url":"https://github.com/InformaticsMatters.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Data Manager Job Operator\n\n[![Data Manager: Operator](https://img.shields.io/badge/squonk2%20data%20manager-job%20operator-000000?labelColor=dc332e)]()\n[![Dev Stage: 1](https://img.shields.io/badge/dev%20stage-★☆☆%20%281%29-000000?labelColor=dc332e)](https://github.com/InformaticsMatters/code-repository-development-stages)\n\n![Architecture](https://img.shields.io/badge/architecture-amd64%20%7C%20arm64-lightgrey)\n\n[![build](https://github.com/informaticsmatters/squonk2-data-manager-job-operator/actions/workflows/build.yaml/badge.svg)](https://github.com/informaticsmatters/squonk2-data-manager-job-operator/actions/workflows/build.yaml)\n[![build tag](https://github.com/informaticsmatters/squonk2-data-manager-job-operator/actions/workflows/build-tag.yaml/badge.svg)](https://github.com/informaticsmatters/squonk2-data-manager-job-operator/actions/workflows/build-tag.yaml)\n\n![GitHub](https://img.shields.io/github/license/informaticsmatters/squonk2-data-manager-job-operator)\n\n![GitHub tag (latest SemVer pre-release)](https://img.shields.io/github/v/tag/informaticsmatters/squonk2-data-manager-job-operator?include_prereleases)\n\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\nThis repo contains a Kubernetes [Operator] based on the [kopf] and [kubernetes]\nPython packages that is used by the **Informatics Matters Squonk2 Data Manager API**\nto create transient Jobs (Kubernetes Pods) for the Data Manager service.\n\nPrerequisites: -\n\n-   Python\n-   Docker\n-   A kubernetes config file\n-   A compatible Kubernetes (e.g. 1.32 thru 1.34 if the operator is built for 1.33)\n\n## Contributing\nThe project uses: -\n\n- [pre-commit] to enforce linting of files prior to committing them to the\n  upstream repository\n- [Commitizen] to enforce a [Conventional Commit] commit message format\n- [Black] as a code formatter\n\nYou **MUST** comply with these choices in order to  contribute to the project.\n\nTo get started review the pre-commit utility and the conventional commit style\nand then set-up your local clone by following the **Installation** and\n**Quick Start** sections: -\n\n    pip install -r build-requirements.txt\n    pre-commit install -t commit-msg -t pre-commit\n\nNow the project's rules will run on every commit, and you can check the\ncurrent health of your clone with: -\n\n    pre-commit run --all-files\n\n## Building the operator (local development)\nPre-requisites: -\n\n- Docker Compose (v2)\n\nThe operator container, residing in the `operator` directory,\nis automatically built and pushed to Docker Hub using GitHub Actions.\n\nYou can build the image yourself using docker compose.\nThe following will build and push an operator image with a specific tag: -\n\n    export IMAGE_TAG=34.0.0-alpha.1\n    docker compose build\n    docker compose push\n\n## Versioning\nWe adopt a different approach for operator naming. At the time of writing\nwe were on version 33 and major changes do not result in changes to this\nnumber. **Why?**\n\nThe major revision is actually used to identify the Kubernetes 1.x release the\noperator is built against. So the `33.x.x` operator is built using\nthe Python 33.x Kubernetes package.\n\n\u003e   See the `kubernetes` package version in `operator/requrements.txt`.\n\nWhen we make feature changes we update the **minor** value\nand for bug-fixes we adjust the **patch** value. So, for a build against\nKubernetes 1.33 our **major** version will always be `33`.\n\n## Deploying into the Data Manager API\nWe use our peer repository [squonk2-data-manager-job-operator-ansible]\nto deploy this operator.\n\n---\n\n[ansible]: https://pypi.org/project/ansible/\n[ansible galaxy]: https://galaxy.ansible.com\n[black]: https://pypi.org/project/black/\n[commitizen]: https://pypi.org/project/commitizen\n[conventional commit]: https://www.conventionalcommits.org/en/v1.0.0/\n[kopf]: https://pypi.org/project/kopf/\n[kubernetes]: https://pypi.org/project/kubernetes/\n[operator]: https://kubernetes.io/docs/concepts/extend-kubernetes/operator/\n[pre-commit]: https://pre-commit.com\n[squonk2-data-manager-job-operator-ansible]: https://github.com/informaticsmatters/squonk2-data-manager-job-operator-ansible\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformaticsmatters%2Fsquonk2-data-manager-job-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finformaticsmatters%2Fsquonk2-data-manager-job-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformaticsmatters%2Fsquonk2-data-manager-job-operator/lists"}