Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andrewthetechie/healthchecksio-check-k8s-operator
An operator for managing healthchecks.io checks via kubernetes
https://github.com/andrewthetechie/healthchecksio-check-k8s-operator
Last synced: about 1 month ago
JSON representation
An operator for managing healthchecks.io checks via kubernetes
- Host: GitHub
- URL: https://github.com/andrewthetechie/healthchecksio-check-k8s-operator
- Owner: andrewthetechie
- License: mit
- Created: 2022-01-06T23:55:30.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-19T18:23:52.000Z (about 1 month ago)
- Last Synced: 2024-11-19T19:38:12.456Z (about 1 month ago)
- Language: Python
- Size: 57.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# healthchecksio-check-k8s-operator
A kubernetes operator to manage healthchecks.io checks as kubernetes objects.
Written using [kopf](https://kopf.readthedocs.io/en/stable/) and [py-healthchecks.io](https://github.com/andrewthetechie/py-healthchecks.io)
## Features
- Supports self-hosted or saas healthchecks.io instances.
- Can Create, Update, and Delete checks.
- Supports Healthchecks.io SAAS and self-hosted instances## Requirements
- helm
- kubernetes 1.19+
- A healthchecks.io api key## Installation
You can install the operator via helm.
First, define a secret with your healthchecks.io API key. If you are using a self-hosted instance, add your API URL to the secret too in the format "http(s)://yourinstancedomain.com/api/"
You will need to add these values to a values.yaml. If you named your secret "hcio-secret" and put your API key as a API_KEY and your api url as URL, your values.yaml would look as below.
```
secret:
name: "hcio-secret"
api_key: API_KEY
url_key: URL
```> **_NOTE:_** Make sure to setup this secret in the same namespace you plan to install the operator
> **_NOTE:_** If you're using healthcheks.io saas, leave the url_key blank.
Now, you're ready to install the operator via helm. This will install the operator, a service account, and the CRD
``` console
$ helm repo add andrewthetechie https://andrewthetechie.github.io/healthchecksio-check-k8s-operator/
$ helm repo update
$ helm install (--namespace yournamespace --create-namespace) hcio-operator andrewthetechie/hcio-check-operator -f values.yaml
```You can then check to see if the operator is running properly by looking for a pod in your namespace and checking for the crd
```
$ kubectl get pods --namespace yournamespace
NAME READY STATUS RESTARTS AGE
hcio-operator-hcio-check-operator-557b5cfc74-6zs5w 1/1 Running 0 30s
$ kubectl get crds
NAME CREATED AT
checks.healthchecks.io 2022-01-13T04:15:44Z
```## Creating a check
Once the operator and crd are installed, you can create a check by adding a kubernetes object. The only required value for a new check is a name
```
apiVersion: healthchecks.io/v1
kind: Check
metadata:
name: test-check
spec: {}
```You can use any key/value in the [healthchecks.io create check api](https://healthchecks.io/docs/api/#create-check) in your spec. The [CRD](./charts/templates/crd.yml) also has a spec you can look at to craft your check.
```
$ kubectl apply -f test-check.yaml
check.healthchecks.io/test-check created
$ kubectl get checks
NAME UUID AGE
test-check 313d57cc-5340-4cf8-ae3e-6f149e900c87 38s
$ kubectl describe check test-check
Name: test-check
Namespace: test
Labels:
Annotations: kopf.zalando.org/last-handled-configuration: {"spec":{"grace":3600,"manual_resume":false,"methods":"","timeout":86400,"tz":"UTC"}}
API Version: healthchecks.io/v1
Kind: Check
Metadata:
Creation Timestamp: 2022-01-13T04:38:07Z
Finalizers:
kopf.zalando.org/KopfFinalizerMarker
Generation: 2
Resource Version: 3015
UID: 9c1109d8-e7b8-45a3-b9b8-21f170308e9e
Spec:
Grace: 3600
manual_resume: false
Methods:
Timeout: 86400
Tz: UTC
Status:
Channels:
create_fn: Success
Desc:
Grace: 3600
manual_resume: false
Methods:
n_pings: 0
Name: test-check
pause_url: healthchecks.io/api/v1/checks/313d57cc-5340-4cf8-ae3e-6f149e900c87/pause
ping_url: healthchecks.io/ping/313d57cc-5340-4cf8-ae3e-6f149e900c87
Slug: test-check
Status: new
Tags:
Timeout: 86400
update_url: healthchecks.io/api/v1/checks/313d57cc-5340-4cf8-ae3e-6f149e900c87
Uuid: 313d57cc-5340-4cf8-ae3e-6f149e900c87
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Logging 51s kopf Creation is processed: 1 succeeded; 0 failed.
Normal Logging 51s kopf Handler 'create_fn' succeeded.
```## Contributing
Contributions are very welcome. To learn more, see the [Contributor
Guide](CONTRIBUTING.md).## License
Distributed under the terms of the [MIT
license](https://opensource.org/licenses/MIT)## Issues
If you encounter any problems, please [file an
issue](https://github.com/andrewthetechie/healthchecksio-check-k8s-operator/issues)
along with a detailed description.