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