|
| 1 | +# kubernetes-mcp-server |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +Helm Chart for the Kubernetes MCP Server |
| 6 | + |
| 7 | +**Homepage:** <https://github.com/containers/kubernetes-mcp-server> |
| 8 | + |
| 9 | +## Maintainers |
| 10 | + |
| 11 | +| Name | Email | Url | |
| 12 | +| ---- | ------ | --- | |
| 13 | +| Andrew Block | <ablock@redhat.com> | | |
| 14 | +| Marc Nuri | <marc.nuri@redhat.com> | | |
| 15 | + |
| 16 | +## Installing the Chart |
| 17 | + |
| 18 | +The Chart can be installed quickly and easily to a Kubernetes cluster. Since an _Ingress_ is added as part of the default install of the Chart, the `ingress.host` Value must be specified. |
| 19 | + |
| 20 | +Install the Chart using the following command from the root of this directory: |
| 21 | + |
| 22 | +```shell |
| 23 | +helm upgrade -i -n kubernetes-mcp-server --create-namespace kubernetes-mcp-server . --set openshift=true --set ingress.host=<hostname> |
| 24 | +``` |
| 25 | + |
| 26 | +### Optimized OpenShift Deployment |
| 27 | + |
| 28 | +Functionality has bee added to the Chart to simplify the deployment to OpenShift Cluster. |
| 29 | + |
| 30 | +## Values |
| 31 | + |
| 32 | +| Key | Type | Default | Description | |
| 33 | +|-----|------|---------|-------------| |
| 34 | +| affinity | object | `{}` | | |
| 35 | +| config.port | string | `"{{ .Values.service.port }}"` | | |
| 36 | +| configFilePath | string | `"/etc/kubernetes-mcp-server/config.toml"` | | |
| 37 | +| defaultPodSecurityContext | object | `{"seccompProfile":{"type":"RuntimeDefault"}}` | Default Security Context for the Pod when one is not provided | |
| 38 | +| defaultSecurityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"runAsNonRoot":true}` | Default Security Context for the Container when one is not provided | |
| 39 | +| extraVolumeMounts | list | `[]` | Additional volumeMounts on the output Deployment definition. | |
| 40 | +| extraVolumes | list | `[]` | Additional volumes on the output Deployment definition. | |
| 41 | +| fullnameOverride | string | `""` | | |
| 42 | +| image | object | `{"pullPolicy":"IfNotPresent","registry":"quay.io","repository":"containers/kubernetes_mcp_server","version":"latest"}` | This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/ | |
| 43 | +| image.pullPolicy | string | `"IfNotPresent"` | This sets the pull policy for images. | |
| 44 | +| image.version | string | `"latest"` | This sets the tag or sha digest for the image. | |
| 45 | +| imagePullSecrets | list | `[]` | This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ | |
| 46 | +| ingress | object | `{"annotations":{},"className":"","enabled":true,"host":"","hosts":null,"path":"/","pathType":"ImplementationSpecific","termination":"edge","tls":null}` | This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/ | |
| 47 | +| livenessProbe | object | `{"httpGet":{"path":"/healthz","port":"http"}}` | Liveness and readiness probes for the container. | |
| 48 | +| nameOverride | string | `""` | | |
| 49 | +| nodeSelector | object | `{}` | | |
| 50 | +| openshift | bool | `false` | Enable OpenShift specific features | |
| 51 | +| podAnnotations | object | `{}` | For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ | |
| 52 | +| podLabels | object | `{}` | For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ | |
| 53 | +| podSecurityContext | object | `{}` | Define the Security Context for the Pod | |
| 54 | +| readinessProbe.httpGet.path | string | `"/healthz"` | | |
| 55 | +| readinessProbe.httpGet.port | string | `"http"` | | |
| 56 | +| replicaCount | int | `1` | This will set the replicaset count more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/ | |
| 57 | +| resources | object | `{"limits":{"cpu":"100m","memory":"128Mi"},"requests":{"cpu":"100m","memory":"128Mi"}}` | Resource requests and limits for the container. | |
| 58 | +| securityContext | object | `{}` | Define the Security Context for the Container | |
| 59 | +| service | object | `{"port":8080,"type":"ClusterIP"}` | This is for setting up a service more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/ | |
| 60 | +| service.port | int | `8080` | This sets the ports more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports | |
| 61 | +| service.type | string | `"ClusterIP"` | This sets the service type more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types | |
| 62 | +| serviceAccount | object | `{"annotations":{},"create":true,"name":""}` | This section builds out the service account more information can be found here: https://kubernetes.io/docs/concepts/security/service-accounts/ | |
| 63 | +| serviceAccount.annotations | object | `{}` | Annotations to add to the service account | |
| 64 | +| serviceAccount.create | bool | `true` | Specifies whether a service account should be created | |
| 65 | +| serviceAccount.name | string | `""` | If not set and create is true, a name is generated using the fullname template | |
| 66 | +| tolerations | list | `[]` | | |
| 67 | + |
| 68 | +## Updating the README |
| 69 | + |
| 70 | +The contents of the README.md file is generated using [helm-docs](https://github.com/norwoodj/helm-docs). Whenever changes are introduced to the Chart and its _Values_, the documentation should be regenerated. |
| 71 | + |
| 72 | +Execute the following command to regenerate the documentation from within the Helm Chart directory. |
| 73 | + |
| 74 | +```shell |
| 75 | +helm-docs -t README.md.gotpl |
| 76 | +``` |
0 commit comments