|
1 | 1 | # atom-operator |
2 | | -// TODO(user): Add simple overview of use/purpose |
| 2 | +_Kubernetes controller/operator to serve an Atomfeed according to spec._ |
| 3 | + |
| 4 | +[](https://github.com/PDOK/atom-operator/actions/workflows/build-and-publish-image.yml) |
| 5 | +[](https://github.com/PDOK/atom-operator/actions/workflows/lint.yml) |
| 6 | +[](https://github.com/PDOK/atom-operator/blob/master/LICENSE) |
3 | 7 |
|
4 | 8 | ## Description |
5 | | -// TODO(user): An in-depth paragraph about your project and overview of use |
| 9 | +This Kubernetes controller cq operator (an operator could be described as a specialized controller) |
| 10 | +ensures that the necessary resources are created or kept up-to-date in a cluster |
| 11 | +to serve feeds of the [Atom Syndication Format](https://www.ietf.org/rfc/rfc4287.txt). This repository is a complete solution to generate Atomfeeds according to a CR schema. |
| 12 | +This operator uses a Custom Resource(CR) called _Atom_ as the input for the deployment, which is also defined in this repository. |
| 13 | + |
6 | 14 |
|
7 | 15 | ## Getting Started |
8 | 16 |
|
9 | 17 | ### Prerequisites |
10 | | -- go version v1.23.0+ |
| 18 | +- go version v1.24.0+ |
11 | 19 | - docker version 17.03+. |
12 | 20 | - kubectl version v1.11.3+. |
13 | 21 | - Access to a Kubernetes v1.11.3+ cluster. |
@@ -66,70 +74,55 @@ make uninstall |
66 | 74 | make undeploy |
67 | 75 | ``` |
68 | 76 |
|
69 | | -## Project Distribution |
| 77 | +## Develop |
70 | 78 |
|
71 | | -Following the options to release and provide this solution to the users. |
| 79 | +The project is written in Go and scaffolded with [kubebuilder](https://kubebuilder.io). |
72 | 80 |
|
73 | | -### By providing a bundle with all YAML files |
| 81 | +### kubebuilder |
74 | 82 |
|
75 | | -1. Build the installer for the image built and published in the registry: |
| 83 | +Read the manual when you want/need to make changes. |
| 84 | +E.g. run `make test` before committing. |
76 | 85 |
|
77 | | -```sh |
78 | | -make build-installer IMG=<some-registry>/atom-operator:tag |
79 | | -``` |
| 86 | +### Linting |
80 | 87 |
|
81 | | -**NOTE:** The makefile target mentioned above generates an 'install.yaml' |
82 | | -file in the dist directory. This file contains all the resources built |
83 | | -with Kustomize, which are necessary to install this project without its |
84 | | -dependencies. |
| 88 | +Install [golangci-lint](https://golangci-lint.run/usage/install/) and run `golangci-lint run` |
| 89 | +from the root. |
| 90 | +(Don't run `make lint`, it uses an old version of golangci-lint.) |
85 | 91 |
|
86 | | -2. Using the installer |
| 92 | +# Contributing |
87 | 93 |
|
88 | | -Users can just run 'kubectl apply -f <URL for YAML BUNDLE>' to install |
89 | | -the project, i.e.: |
| 94 | +### How to contribute |
| 95 | +Smooth-operator is solely developed by PDOK. Contributions are however always welcome. If you have any questions or suggestions you can create an issue in the issue tracker. |
90 | 96 |
|
91 | | -```sh |
92 | | -kubectl apply -f https://raw.githubusercontent.com/<org>/atom-operator/<tag or branch>/dist/install.yaml |
93 | | -``` |
| 97 | +### Contact |
| 98 | +The maintainers can be contacted through the issue tracker. |
94 | 99 |
|
95 | | -### By providing a Helm Chart |
| 100 | +# Authors |
| 101 | +This project is developed by [PDOK](https://www.pdok.nl/), a platform for publication of geographic datasets of Dutch governmental institutions. |
96 | 102 |
|
97 | | -1. Build the chart using the optional helm plugin |
| 103 | +# License |
98 | 104 |
|
99 | | -```sh |
100 | | -kubebuilder edit --plugins=helm/v1-alpha |
101 | 105 | ``` |
102 | | - |
103 | | -2. See that a chart was generated under 'dist/chart', and users |
104 | | -can obtain this solution from there. |
105 | | - |
106 | | -**NOTE:** If you change the project, you need to update the Helm Chart |
107 | | -using the same command above to sync the latest changes. Furthermore, |
108 | | -if you create webhooks, you need to use the above command with |
109 | | -the '--force' flag and manually ensure that any custom configuration |
110 | | -previously added to 'dist/chart/values.yaml' or 'dist/chart/manager/manager.yaml' |
111 | | -is manually re-applied afterwards. |
112 | | - |
113 | | -## Contributing |
114 | | -// TODO(user): Add detailed information on how you would like others to contribute to this project |
115 | | - |
116 | | -**NOTE:** Run `make help` for more information on all potential `make` targets |
117 | | - |
118 | | -More information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html) |
119 | | - |
120 | | -## License |
121 | | - |
122 | | -Copyright 2025. |
123 | | - |
124 | | -Licensed under the Apache License, Version 2.0 (the "License"); |
125 | | -you may not use this file except in compliance with the License. |
126 | | -You may obtain a copy of the License at |
127 | | - |
128 | | - http://www.apache.org/licenses/LICENSE-2.0 |
129 | | - |
130 | | -Unless required by applicable law or agreed to in writing, software |
131 | | -distributed under the License is distributed on an "AS IS" BASIS, |
132 | | -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
133 | | -See the License for the specific language governing permissions and |
134 | | -limitations under the License. |
| 106 | +MIT License |
| 107 | +
|
| 108 | +Copyright (c) 2025 Publieke Dienstverlening op de Kaart |
| 109 | +
|
| 110 | +Permission is hereby granted, free of charge, to any person obtaining a copy |
| 111 | +of this software and associated documentation files (the "Software"), to deal |
| 112 | +in the Software without restriction, including without limitation the rights |
| 113 | +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| 114 | +copies of the Software, and to permit persons to whom the Software is |
| 115 | +furnished to do so, subject to the following conditions: |
| 116 | +
|
| 117 | +The above copyright notice and this permission notice shall be included in all |
| 118 | +copies or substantial portions of the Software. |
| 119 | +
|
| 120 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 121 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 122 | +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| 123 | +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 124 | +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| 125 | +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| 126 | +SOFTWARE. |
| 127 | +``` |
135 | 128 |
|
0 commit comments