Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/helm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:

- name: Run Helm Unit Tests
run: |
helm unittest charts/nrr-controller --strict -d
helm unittest charts/node-readiness-controller --strict -d

- name: Run chart-testing (list-changed)
id: list-changed
Expand Down
10 changes: 5 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -490,17 +490,17 @@ crd-ref-docs:
HELM ?= go run helm.sh/helm/v3/cmd/helm@v3.15.1

lint-chart:
$(HELM) lint ./charts/nrr-controller
$(HELM) lint ./charts/node-readiness-controller

inject-helm-version: ## Inject the release version into the Helm chart's appVersion and image tag
sed 's/tag: .*/tag: "$(RELEASE_VERSION)"/' charts/nrr-controller/values.yaml > charts/nrr-controller/values.yaml.tmp && mv charts/nrr-controller/values.yaml.tmp charts/nrr-controller/values.yaml
sed 's/^appVersion: .*/appVersion: "$(RELEASE_VERSION)"/' charts/nrr-controller/Chart.yaml > charts/nrr-controller/Chart.yaml.tmp && mv charts/nrr-controller/Chart.yaml.tmp charts/nrr-controller/Chart.yaml
sed 's/tag: .*/tag: "$(RELEASE_VERSION)"/' charts/node-readiness-controller/values.yaml > charts/node-readiness-controller/values.yaml.tmp && mv charts/node-readiness-controller/values.yaml.tmp charts/node-readiness-controller/values.yaml
sed 's/^appVersion: .*/appVersion: "$(RELEASE_VERSION)"/' charts/node-readiness-controller/Chart.yaml > charts/node-readiness-controller/Chart.yaml.tmp && mv charts/node-readiness-controller/Chart.yaml.tmp charts/node-readiness-controller/Chart.yaml

build-helm: inject-helm-version
$(HELM) package ./charts/nrr-controller --dependency-update --destination ./bin/chart
$(HELM) package ./charts/node-readiness-controller --dependency-update --destination ./bin/chart

publish-helm: ## Publish the packaged Helm chart to an OCI registry
$(HELM) push ./bin/chart/nrr-controller-*.tgz oci://$(HELM_IMAGE)
$(HELM) push ./bin/chart/node-readiness-controller-*.tgz oci://$(HELM_IMAGE)

kind-multi-node:
kind create cluster --name $(KIND_CLUSTER) --config ./config/testing/kind/kind-3node-config.yaml --wait 2m
Expand Down
8 changes: 4 additions & 4 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ After the release tag is pushed, the images and Helm chart must be built, pushed
```sh
skopeo list-tags docker://us-central1-docker.pkg.dev/k8s-staging-images/node-readiness-controller/node-readiness-controller | grep vX.Y.Z
```
- Verify the chart exists in the staging repository (replace `<chart-version>` with the version in `charts/nrr-controller/Chart.yaml` at the tagged commit):
- Verify the chart exists in the staging repository (replace `<chart-version>` with the version in `charts/node-readiness-controller/Chart.yaml` at the tagged commit):
```sh
helm pull oci://us-central1-docker.pkg.dev/k8s-staging-images/node-readiness-controller/charts/nrr-controller --version <chart-version>
helm pull oci://us-central1-docker.pkg.dev/k8s-staging-images/node-readiness-controller/charts/node-readiness-controller --version <chart-version>
```

### B. Create PR for Promotion
Expand All @@ -47,7 +47,7 @@ After the release tag is pushed, the images and Helm chart must be built, pushed
```
- Identify the chart digest:
```sh
skopeo inspect --raw docker://us-central1-docker.pkg.dev/k8s-staging-images/node-readiness-controller/charts/nrr-controller:<chart-version> | sha256sum
skopeo inspect --raw docker://us-central1-docker.pkg.dev/k8s-staging-images/node-readiness-controller/charts/node-readiness-controller:<chart-version> | sha256sum
```
Alternatively, note the digest printed by `helm push`/`helm pull` when the chart was published/verified above.
- Fork [kubernetes/k8s.io](https://github.com/kubernetes/k8s.io).
Expand All @@ -68,7 +68,7 @@ Before publishing the release, verify the images and chart are available at k8s-
```
- Ensure the chart is available at `registry.k8s.io`:
```sh
helm pull oci://registry.k8s.io/node-readiness-controller/charts/nrr-controller --version <chart-version>
helm pull oci://registry.k8s.io/node-readiness-controller/charts/node-readiness-controller --version <chart-version>
```

### B. Test Release Artifacts
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
apiVersion: v2
name: nrr-controller
name: node-readiness-controller
description: A Helm chart for the Node Readiness Controller
type: application
version: 0.1.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
```shell
git clone https://github.com/kubernetes-sigs/node-readiness-controller.git
cd node-readiness-controller
helm install my-release --namespace nrr-system --create-namespace ./charts/nrr-controller
helm install my-release --namespace nrr-system --create-namespace ./charts/node-readiness-controller

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Priyankasaggu11929 does this need to be created again?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

```

> Published chart releases via `registry.k8s.io` OCI are WIP.
Expand All @@ -25,7 +25,7 @@ This chart bootstraps a [node-readiness-controller](https://github.com/kubernete
To install the chart with the release name `my-release`:

```shell
helm install --namespace nrr-system --create-namespace my-release ./charts/nrr-controller
helm install --namespace nrr-system --create-namespace my-release ./charts/node-readiness-controller
```

The command deploys the _node-readiness-controller_ on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
Expand All @@ -34,7 +34,7 @@ The command deploys the _node-readiness-controller_ on the Kubernetes cluster in

## CRD Upgrades

Helm installs CRDs from the chart `crds/` directory during initial install, but Helm does not upgrade or delete CRDs from that directory during `helm upgrade` or `helm uninstall`. Before upgrading to a chart version that changes the `NodeReadinessRule` schema, apply the updated CRD from the release artifacts or from `charts/nrr-controller/crds`.
Helm installs CRDs from the chart `crds/` directory during initial install, but Helm does not upgrade or delete CRDs from that directory during `helm upgrade` or `helm uninstall`. Before upgrading to a chart version that changes the `NodeReadinessRule` schema, apply the updated CRD from the release artifacts or from `charts/node-readiness-controller/crds`.

## Uninstalling the Chart

Expand All @@ -56,8 +56,8 @@ The following table lists the configurable parameters of the _node-readiness-con
| `image.tag` | Docker tag to use | `v[chart appVersion]` |
| `image.pullPolicy` | Docker image pull policy | `IfNotPresent` |
| `imagePullSecrets` | Docker repository secrets | `[]` |
| `nameOverride` | String to partially override `nrr-controller.fullname` template (will prepend the release name) | `""` |
| `fullnameOverride` | String to fully override `nrr-controller.fullname` template | `""` |
| `nameOverride` | String to partially override `node-readiness-controller.fullname` template (will prepend the release name) | `""` |
| `fullnameOverride` | String to fully override `node-readiness-controller.fullname` template | `""` |
| `namespaceOverride` | Override the deployment namespace; defaults to .Release.Namespace | `""` |
| `replicaCount` | The replica count for Deployment | `1` |
| `controller.kubeAPIQPS` | Maximum QPS to the Kubernetes API server. `-1` means no limit. | `-1` |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "nrr-controller.name" -}}
{{- define "node-readiness-controller.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

Expand All @@ -11,11 +11,11 @@ Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "nrr-controller.fullname" -}}
{{- define "node-readiness-controller.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := include "nrr-controller.name" . -}}
{{- $name := include "node-readiness-controller.name" . -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
Expand All @@ -28,23 +28,23 @@ If release name contains chart name it will be used as a full name.
Expand the namespace of the release.
Allows overriding it for multi-namespace deployments in combined charts.
*/}}
{{- define "nrr-controller.namespace" -}}
{{- define "node-readiness-controller.namespace" -}}
{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "nrr-controller.chart" -}}
{{- define "node-readiness-controller.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Common labels
*/}}
{{- define "nrr-controller.labels" -}}
app.kubernetes.io/name: {{ include "nrr-controller.name" . }}
helm.sh/chart: {{ include "nrr-controller.chart" . }}
{{- define "node-readiness-controller.labels" -}}
app.kubernetes.io/name: {{ include "node-readiness-controller.name" . }}
helm.sh/chart: {{ include "node-readiness-controller.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
Expand All @@ -58,18 +58,18 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
{{/*
Selector labels
*/}}
{{- define "nrr-controller.selectorLabels" -}}
app.kubernetes.io/name: {{ include "nrr-controller.name" . }}
{{- define "node-readiness-controller.selectorLabels" -}}
app.kubernetes.io/name: {{ include "node-readiness-controller.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
control-plane: controller-manager
{{- end -}}

{{/*
Create the name of the service account to use
*/}}
{{- define "nrr-controller.serviceAccountName" -}}
{{- define "node-readiness-controller.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "nrr-controller.fullname" .) .Values.serviceAccount.name }}
{{ default (include "node-readiness-controller.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
Expand Down
44 changes: 44 additions & 0 deletions charts/node-readiness-controller/templates/certificates.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{{- if and .Values.certManager.enabled .Values.certManager.metricsCertificate.create .Values.metrics.enabled .Values.metrics.secure }}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: {{ include "node-readiness-controller.fullname" . }}-{{ .Values.certManager.metricsCertificate.name }}
namespace: {{ include "node-readiness-controller.namespace" . }}
labels:
{{- include "node-readiness-controller.labels" . | nindent 4 }}
spec:
secretName: {{ .Values.metrics.certSecretName }}
{{- with .Values.certManager.certificateSubject }}
subject:
{{- toYaml . | nindent 4 }}
{{- end }}
dnsNames:
- {{ include "node-readiness-controller.fullname" . }}-metrics-service.{{ include "node-readiness-controller.namespace" . }}.svc
- {{ include "node-readiness-controller.fullname" . }}-metrics-service.{{ include "node-readiness-controller.namespace" . }}.svc.cluster.local
issuerRef:
kind: Issuer
name: {{ include "node-readiness-controller.fullname" . }}-{{ .Values.certManager.issuer.name }}
{{- end }}
{{- if and .Values.certManager.enabled .Values.webhook.enabled .Values.certManager.webhookCertificate.create }}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: {{ include "node-readiness-controller.fullname" . }}-{{ .Values.certManager.webhookCertificate.name }}
namespace: {{ include "node-readiness-controller.namespace" . }}
labels:
{{- include "node-readiness-controller.labels" . | nindent 4 }}
spec:
secretName: {{ .Values.webhook.certSecretName }}
{{- with .Values.certManager.certificateSubject }}
subject:
{{- toYaml . | nindent 4 }}
{{- end }}
dnsNames:
- {{ include "node-readiness-controller.fullname" . }}-webhook-service.{{ include "node-readiness-controller.namespace" . }}.svc
- {{ include "node-readiness-controller.fullname" . }}-webhook-service.{{ include "node-readiness-controller.namespace" . }}.svc.cluster.local
issuerRef:
kind: Issuer
name: {{ include "node-readiness-controller.fullname" . }}-{{ .Values.certManager.issuer.name }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "nrr-controller.fullname" . }}-manager
namespace: {{ include "nrr-controller.namespace" . }}
name: {{ include "node-readiness-controller.fullname" . }}-manager
namespace: {{ include "node-readiness-controller.namespace" . }}
labels:
{{- include "nrr-controller.labels" . | nindent 4 }}
{{- include "node-readiness-controller.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "nrr-controller.selectorLabels" . | nindent 6 }}
{{- include "node-readiness-controller.selectorLabels" . | nindent 6 }}
template:
metadata:
annotations:
{{- if .Values.podAnnotations }}
{{- .Values.podAnnotations | toYaml | nindent 10 }}
{{- end }}
labels:
{{- include "nrr-controller.selectorLabels" . | nindent 8 }}
{{- include "node-readiness-controller.selectorLabels" . | nindent 8 }}
{{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
serviceAccountName: {{ include "nrr-controller.serviceAccountName" . }}
serviceAccountName: {{ include "node-readiness-controller.serviceAccountName" . }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
Expand Down
11 changes: 11 additions & 0 deletions charts/node-readiness-controller/templates/issuer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{{- if and .Values.certManager.enabled .Values.certManager.issuer.create }}
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: {{ include "node-readiness-controller.fullname" . }}-{{ .Values.certManager.issuer.name }}
namespace: {{ include "node-readiness-controller.namespace" . }}
labels:
{{- include "node-readiness-controller.labels" . | nindent 4 }}
spec:
selfSigned: {}
{{- end }}
Loading
Loading