{"id":21639547,"url":"https://github.com/mig4/pingdom-operator","last_synced_at":"2026-05-19T17:02:20.783Z","repository":{"id":64303496,"uuid":"203471446","full_name":"mig4/pingdom-operator","owner":"mig4","description":"Kubernetes operator that maintains resources in Pingdom","archived":false,"fork":false,"pushed_at":"2019-09-18T22:26:33.000Z","size":145,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T03:13:54.211Z","etag":null,"topics":["kubernetes","kubernetes-operator","pingdom"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mig4.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}},"created_at":"2019-08-20T23:47:31.000Z","updated_at":"2023-10-18T13:31:02.000Z","dependencies_parsed_at":"2023-01-15T10:01:08.423Z","dependency_job_id":null,"html_url":"https://github.com/mig4/pingdom-operator","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mig4%2Fpingdom-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mig4%2Fpingdom-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mig4%2Fpingdom-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mig4%2Fpingdom-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mig4","download_url":"https://codeload.github.com/mig4/pingdom-operator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244339044,"owners_count":20437169,"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":["kubernetes","kubernetes-operator","pingdom"],"created_at":"2024-11-25T04:14:08.424Z","updated_at":"2026-05-19T17:02:15.745Z","avatar_url":"https://github.com/mig4.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pingdom Operator\n\n[![tag-badge][]]() [![goreport-badge][]][goreport-target] [![pipeline-badge][]][pipeline-target]\n\n\u003e Kubernetes Operator that maintains resources in Pingdom.\n\nAn operator that monitors CRDs and creates, updates or deletes resources in\nPingdom (currently checks) to ensure they match the specification.\n\n![pingdom-operator-demo][demo-gif]\n\nFeatures:\n\n* support for **check** resources ✓\n  * supports `name`, `host`, `type`, `port`, `resolution`, `userids`, `url`\n    and `encryption` parameters\n  * supports pausing/un-pausing\n* support for _HTTP_, _TCP_, _Ping_, _SMTP_, _POP3_ and _IMAP_ check types\n  with common parameters\n* per-resource credentials (allows maintaining multiple Pingdom accounts from\n  a single Kubernetes installation)\n\nBuilt with the help of [Kubebuilder][] framework.\n\n## Installing\n\nTL;DR\n\nWith `kubectl` configured and authenticated to run against your Kubernetes\ncluster:\n\n``` sh\nmake install deploy\n```\n\nAssuming you run this in a tree with a tagged commit or any commit on master\nchecked out, it will **install** the CRDs and then **deploy** the operator\ncontroller application.\n\nContainer images are built automatically by the [CI Pipeline][pipeline-target]\nin [GitLab][] for every commit, and published to a [registry][], with image\ntags matching the format `PROJECT/BRANCH:COMMIT_ID_OR_TAG`.\n\nThe `deploy` target in Makefile will infer the correct image tag for current\ncommit, update the manifests and apply them using `kubectl apply`. This can be\nused to easily deploy any commit that's already been built by CI by simply\nchecking it out locally and running `make deploy`.\n\nFinally to deploy a local-only commit (e.g. in development) you need to build\nthe image, push it to a registry and then deploy, like so:\n\n``` sh\nmake docker-build docker-push deploy\n\n# you can also override the tag, e.g. to use a different registry\nmake IMG=docker.io/user/pingdom-operator:latest docker-build docker-push deploy\n```\n\n## Usage\n\nOnce the CRD is installed (with `make install`) you can deploy Pingdom checks.\n\nFirst thing you'll need is a\n[secret](https://kubernetes.io/docs/concepts/configuration/secret/) with\nPingdom API credentials, e.g.:\n\n``` sh\nkubectl create secret generic my-pd-secret \\\n  --from-literal=username=PINGDOM_USER \\\n  --from-literal=password=PINGDOM_PASS\n```\n\nOr create a YAML manifest and apply it.\n\nThen there are sample manifests in [config/samples/](config/samples/) directory\nfor different types of checks, which you will need to modify to point to your\nsecret and then you can apply them with:\n\n``` sh\n$ kubectl apply -f config/samples/observability_v1alpha1_check_http.yaml\ncheck.observability.pingdom.mig4.gitlab.io/sample-1 created\n$ kubectl apply -f config/samples/observability_v1alpha1_check_ping.yaml\ncheck.observability.pingdom.mig4.gitlab.io/sample-2 created\n```\n\nIf the controller manager is running you should then see it pick up the\nresource and create a check on Pingdom. See a list of checks:\n\n``` sh\n$ kubectl get checks\nNAME           ID        TYPE   STATUS   HOST\nsample-1       5399365   http   up       wtfismyip.com\nsample-2       5401834   ping   down     error-service.io\n```\n\n## Uninstalling\n\nTo remove all resources created by `make deploy` run `make destroy` which will\nrun `kubectl delete` on the [default manifests](config/default/).\n\n## Contributing\n\nSee known issues on [GitLab][gl-issues] (or [GitHub][gh-issues]), if you found\none that's not on the list or have a suggestion for improvement, open a new\nissue. If you can, fork and send an MR/PR, it will be appreciated 💖.\n\n## Hacking\n\n`make` will generate code and compile a binary in `./bin/manager`. Then\n`make install` will generate the manifests and install them to a Kubernetes\ncluster (needs `kubectl` configured correctly).\n\nYou can then run the manager locally, just `./bin/manager` or `make run`.\n\nRun tests with `make test` or `make gtest` (using\n[Ginkgo](http://onsi.github.io/ginkgo/) runner).\n\n## Acknowledgements 👍\n\n* [kubebuilder][]\n* [go-pingdom][]\n\n## License\n\n[![license-badge][]](LICENSE)\n\n\n[tag-badge]: https://img.shields.io/github/v/tag/mig4/pingdom-operator\n[goreport-badge]: https://goreportcard.com/badge/gitlab.com/mig4/pingdom-operator\n[goreport-target]: https://goreportcard.com/report/gitlab.com/mig4/pingdom-operator\n[pipeline-badge]: https://gitlab.com/mig4/pingdom-operator/badges/master/pipeline.svg\n[pipeline-target]: https://gitlab.com/mig4/pingdom-operator/pipelines\n[demo-gif]: https://gitlab.com/mig4/pingdom-operator/uploads/d88c23b703d080e80a72356f0c27826e/pingdom-operator-demo.gif\n[gitlab]: https://gitlab.com/\n[registry]: https://gitlab.com/mig4/pingdom-operator/container_registry\n[gl-issues]: https://gitlab.com/mig4/pingdom-operator/issues\n[gh-issues]: https://github.com/mig4/pingdom-operator/issues\n[kubebuilder]: https://github.com/kubernetes-sigs/kubebuilder\n[go-pingdom]: https://github.com/russellcardullo/go-pingdom\n[license-badge]: https://img.shields.io/github/license/mig4/pingdom-operator?style=for-the-badge\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmig4%2Fpingdom-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmig4%2Fpingdom-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmig4%2Fpingdom-operator/lists"}