diff --git a/Makefile b/Makefile index ec127b6..7790ee4 100644 --- a/Makefile +++ b/Makefile @@ -158,6 +158,7 @@ codegen-helm-docs: ## Generate helm docs codegen-install-manifest: $(HELM) ## Create install manifest @echo Generate latest install manifest... >&2 @$(HELM) template reports-server --namespace reports-server ./charts/reports-server/ \ + --set apiServicesManagement.installApiServices.enabled=true \ --set image.tag=latest \ --set templating.enabled=true \ | $(SED) -e '/^#.*/d' \ @@ -166,6 +167,7 @@ codegen-install-manifest: $(HELM) ## Create install manifest codegen-install-manifest-inmemory: $(HELM) ## Create install manifest without postgres @echo Generate latest install manifest... >&2 @$(HELM) template reports-server --namespace reports-server ./charts/reports-server/ \ + --set apiServicesManagement.installApiServices.enabled=true \ --set image.tag=latest \ --set config.debug=true \ --set postgresql.enabled=false \ @@ -244,7 +246,7 @@ kind-migrate: $(HELM) kind-load ## Build image, load it in kind cluster and depl --set image.registry=$(KO_REGISTRY) \ --set image.repository=$(PACKAGE) \ --set image.tag=$(GIT_SHA) \ - --set apiServices.enabled=false + --set apiServicesManagement.installApiServices.enabled=false .PHONY: kind-apply-api-services kind-apply-api-services: $(HELM) kind-load ## Build image, load it in kind cluster and deploy helm chart diff --git a/charts/reports-server/README.md b/charts/reports-server/README.md index 0683e97..19f115b 100644 --- a/charts/reports-server/README.md +++ b/charts/reports-server/README.md @@ -25,8 +25,6 @@ helm install reports-server --namespace reports-server --create-namespace report | postgresql.enabled | bool | `true` | Deploy postgresql dependency chart | | postgresql.auth.postgresPassword | string | `"reports"` | | | postgresql.auth.database | string | `"reportsdb"` | | -| apiServices.enabled | bool | `true` | Store reports in reports-server | -| apiServices.installEphemeralReportsService | bool | `true` | Store ephemeral reports in reports-server | | nameOverride | string | `""` | Name override | | fullnameOverride | string | `""` | Full name override | | replicaCount | int | `1` | Number of pod replicas | @@ -80,7 +78,10 @@ helm install reports-server --namespace reports-server --create-namespace report | config.db.sslkey | string | `""` | Database SSL key | | config.db.sslcert | string | `""` | Database SSL cert | | apiServicesManagement.enabled | bool | `true` | Create a helm hooks to install and delete api services | -| apiServicesManagement.image.registry | string | `nil` | Image registry | +| apiServicesManagement.installApiServices | object | `{"enabled":false,"installEphemeralReportsService":true}` | Install api services in manifest | +| apiServicesManagement.installApiServices.enabled | bool | `false` | Store reports in reports-server | +| apiServicesManagement.installApiServices.installEphemeralReportsService | bool | `true` | Store ephemeral reports in reports-server | +| apiServicesManagement.image.registry | string | `"docker.io"` | Image registry | | apiServicesManagement.image.repository | string | `"bitnami/kubectl"` | Image repository | | apiServicesManagement.image.tag | string | `"1.30.2"` | Image tag Defaults to `latest` if omitted | | apiServicesManagement.image.pullPolicy | string | `nil` | Image pull policy Defaults to image.pullPolicy if omitted | diff --git a/charts/reports-server/templates/api-service.yaml b/charts/reports-server/templates/api-service.yaml new file mode 100644 index 0000000..f8a4b30 --- /dev/null +++ b/charts/reports-server/templates/api-service.yaml @@ -0,0 +1,46 @@ +{{- if .Values.apiServicesManagement.installApiServices.enabled }} +--- +apiVersion: apiregistration.k8s.io/v1 +kind: APIService +metadata: + name: v1alpha2.wgpolicyk8s.io + namespace: {{ $.Release.Namespace }} + labels: + {{- include "reports-server.labels" . | nindent 4 }} + kube-aggregator.kubernetes.io/automanaged: "false" + annotations: + helm.sh/hook: post-install +spec: + group: wgpolicyk8s.io + groupPriorityMinimum: 100 + insecureSkipTLSVerify: true + service: + name: {{ include "reports-server.fullname" . }} + namespace: {{ $.Release.Namespace }} + version: v1alpha2 + versionPriority: 100 + +{{- if .Values.apiServicesManagement.installApiServices.installEphemeralReportsService }} +--- +apiVersion: apiregistration.k8s.io/v1 +kind: APIService +metadata: + name: v1.reports.kyverno.io + namespace: {{ $.Release.Namespace }} + labels: + {{- include "reports-server.labels" . | nindent 4 }} + kube-aggregator.kubernetes.io/automanaged: "false" + annotations: + helm.sh/hook: post-install +spec: + group: reports.kyverno.io + groupPriorityMinimum: 100 + insecureSkipTLSVerify: true + service: + name: {{ include "reports-server.fullname" . }} + namespace: {{ $.Release.Namespace }} + version: v1 + versionPriority: 100 +{{- end }} +{{- end }} + diff --git a/charts/reports-server/templates/hooks/post-install-api-services.yaml b/charts/reports-server/templates/hooks/post-install-api-services.yaml index 95531f3..f028ae6 100644 --- a/charts/reports-server/templates/hooks/post-install-api-services.yaml +++ b/charts/reports-server/templates/hooks/post-install-api-services.yaml @@ -35,7 +35,7 @@ spec: {{- end }} containers: - name: kubectl - image: bitnami/kubectl:1.30.2 + image: "{{ .Values.apiServicesManagement.image.registry }}/{{ .Values.apiServicesManagement.image.repository }}:{{ .Values.apiServicesManagement.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.apiServicesManagement.image.pullPolicy }} command: - /bin/bash @@ -43,7 +43,6 @@ spec: - |- set -euo pipefail kubectl wait -n {{ $.Release.Namespace }} pod --for=condition=ready -l app.kubernetes.io/name={{ include "reports-server.fullname" . }} --timeout=120s - {{- if .Values.apiServices.enabled }} kubectl apply -f - <