diff --git a/.editorconfig b/.editorconfig index 12ea09c..da97967 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,8 +9,5 @@ insert_final_newline = true max_line_length = 120 tab_width = 4 -[{*.yaml,*.yml}] -indent_size = 2 - -[*.json] -indent_size = 2 \ No newline at end of file +[Makefile*] +indent_style = tab diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7d2b3a8..c9423da 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,7 +7,10 @@ on: branches: - main paths: - - 'multicluster-resiliency-addon/**' + - templates/** + - Chart.yaml + - values.schema.json + - values.yaml pull_request: branches: - main @@ -23,7 +26,7 @@ jobs: - name: Get Helm version id: helm run: | - version=$(cat Makefile | grep "HELM_VERSION :=" | cut -d'=' -f2 | xargs) + version=$(cat Makefile | grep "VERSION_HELM =" | cut -d'=' -f2 | xargs) echo "version=$version" >> $GITHUB_OUTPUT - name: Install helm @@ -32,7 +35,7 @@ jobs: version: ${{ steps.helm.outputs.version }} - name: Lint chart - run: helm lint multicluster-resiliency-addon + run: helm lint . - name: Test templates - run: helm template multicluster-resiliency-addon > /dev/null + run: helm template . > /dev/null diff --git a/.gitignore b/.gitignore index 7439e84..8c99b1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ bin *.tgz +operator_tmp +regional-dr-trigger-operator* diff --git a/.helmignore b/.helmignore new file mode 100644 index 0000000..d66d1ff --- /dev/null +++ b/.helmignore @@ -0,0 +1,6 @@ +.* +*.tgz +regional-dr-trigger-operator* +bin +opeartor_tmp +Makefile diff --git a/Chart.yaml b/Chart.yaml new file mode 100644 index 0000000..93a28c6 --- /dev/null +++ b/Chart.yaml @@ -0,0 +1,15 @@ +# Copyright (c) 2023 Red Hat, Inc. + +apiVersion: v2 +name: regional-dr-trigger-operator +description: This Operator will use ODF's Regional DR API for triggering a Failover process for all Applications affiliated with a cluster which is reported as not available by ACM's Managed Cluster API. +version: 1.0.0 +appVersion: "0.1.0" +home: https://github.com/RHEcosystemAppEng/regional-dr-trigger-operator +keywords: + - acm + - odf + - openshift + - regional dr + - disaster recovery +icon: https://raw.githubusercontent.com/RHEcosystemAppEng/regional-dr-trigger-operator/main/hack/logo-rh-icon-standard-rgb.png diff --git a/DCO b/DCO deleted file mode 100644 index 0cdce0c..0000000 --- a/DCO +++ /dev/null @@ -1,37 +0,0 @@ -Developer Certificate of Origin -Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. -1 Letterman Drive -Suite D4700 -San Francisco, CA, 94129 - -Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - -(b) The contribution is based upon previous work that, to the best - of my knowledge, is covered under an appropriate open source - license and I have the right under that license to submit that - work with modifications, whether created in whole or in part - by me, under the same open source license (unless I am - permitted to submit under a different license), as indicated - in the file; or - -(c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - -(d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. \ No newline at end of file diff --git a/Makefile b/Makefile index a47bae1..56640da 100644 --- a/Makefile +++ b/Makefile @@ -1,27 +1,50 @@ +# Copyright (c) 2023 Red Hat, Inc. + +################################################ +###### Regional DR Trigger Operator Chart ###### +################################################ LOCALBIN = $(shell pwd)/bin -OS_ARCH = $(shell go env GOOS)-$(shell go env GOARCH) +$(LOCALBIN): + mkdir -p $(LOCALBIN) + +OS=$(shell go env GOOS) +ARCH=$(shell go env GOARCH) + +BIN_CURL ?= curl +BIN_YQ ?= yq + BIN_HELM ?= $(LOCALBIN)/helm -HELM_VERSION := v3.13.0 -HELM_URL := https://get.helm.sh/helm-$(HELM_VERSION)-$(OS_ARCH).tar.gz +VERSION_HELM = v3.14.0 + +OPERATOR_REPO ?= https://github.com/RHEcosystemAppEng/regional-dr-trigger-operator +OPERATOR_BRANCH =? main + +CHART_VERSION ?= $(shell $(BIN_YQ) '.version' Chart.yaml) + +TEMP_FOLDER = operator_tmp # ignored by git .PHONY: lint -lint: $(LOCALBIN) $(BIN_HELM) - @$(BIN_HELM) lint multicluster-resiliency-addon +lint: $(BIN_HELM) + $(BIN_HELM) lint . .PHONY: package -package: $(LOCALBIN) $(BIN_HELM) - @$(BIN_HELM) package multicluster-resiliency-addon +package: $(BIN_HELM) + $(BIN_HELM) package . .PHONY: test -test: $(LOCALBIN) $(BIN_HELM) - @$(BIN_HELM) template multicluster-resiliency-addon > /dev/null +test: $(BIN_HELM) + $(BIN_HELM) template . > /dev/null .PHONY: install -install: $(LOCALBIN) $(BIN_HELM) - @$(BIN_HELM) install --generate-name multicluster-resiliency-addon +install: $(BIN_HELM) + $(BIN_HELM) install --generate-name . -$(BIN_HELM): - curl -sSL "$(HELM_URL)" | tar xzf - -C $(LOCALBIN) --strip-components=1 --wildcards '*/helm' +.PHONY: generate +generate: + rm -rf $(TEMP_FOLDER) + git clone --branch $(OPERATOR_BRANCH) $(OPERATOR_REPO) $(TEMP_FOLDER) + cd $(TEMP_FOLDER) && $(MAKE) generate/chart CHART_VERSION=$(CHART_VERSION) CHART_TARGET=$(PWD) + rm -rf $(TEMP_FOLDER) -$(LOCALBIN): - mkdir -p $(LOCALBIN) +$(BIN_HELM): $(LOCALBIN) + $(BIN_CURL) -sSL https://get.helm.sh/helm-$(VERSION_HELM)-$(OS)-$(ARCH).tar.gz | tar xzf - -C $(LOCALBIN) --strip-components=1 --wildcards '*/helm' diff --git a/README.md b/README.md index baf905f..e71c314 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ -# MultiCluster Resiliency Addon Chart +# Regional DR Trigger Operator Helm Chart -_Helm Chart_ for the [MultiCluster Resiliency Addon][mcra] for [ACM][acm]. +This chart is generated automatically, see [Makefile](Makefile). Please do not attempt to contribute to the chart +elements directly. Instead, check the [Regional DR Operator repository](https://github.com/RHEcosystemAppEng/regional-dr-trigger-operator) +for the scripts used to generate this chart. - - -[acm]: https://www.redhat.com/en/technologies/management/advanced-cluster-management -[mcra]: https://github.com/RHEcosystemAppEng/multicluster-resiliency-addon +This chart is used as part of the [Regional Resiliency Pattern](https://github.com/RHEcosystemAppEng/regional-resiliency-pattern). diff --git a/multicluster-resiliency-addon/.helmignore b/multicluster-resiliency-addon/.helmignore deleted file mode 100644 index 0e8a0eb..0000000 --- a/multicluster-resiliency-addon/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/multicluster-resiliency-addon/Chart.yaml b/multicluster-resiliency-addon/Chart.yaml deleted file mode 100644 index 1e84f78..0000000 --- a/multicluster-resiliency-addon/Chart.yaml +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright (c) 2023 Red Hat, Inc. - -apiVersion: v2 -name: multicluster-resiliency-addon -description: Helm chart for the MultiCluster Resiliency ACM Addon -version: 1.0.0 -appVersion: "0.0.1" -home: https://github.com/RHEcosystemAppEng/multicluster-resiliency-addon-chart -keywords: - - openshift - - acm - - disaster-recovery diff --git a/multicluster-resiliency-addon/crds/appeng.ecosystem.redhat.com_resilientclusters.yaml b/multicluster-resiliency-addon/crds/appeng.ecosystem.redhat.com_resilientclusters.yaml deleted file mode 100644 index b0248c6..0000000 --- a/multicluster-resiliency-addon/crds/appeng.ecosystem.redhat.com_resilientclusters.yaml +++ /dev/null @@ -1,104 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - service.beta.openshift.io/inject-cabundle: "true" - name: resilientclusters.appeng.ecosystem.redhat.com -spec: - group: appeng.ecosystem.redhat.com - names: - kind: ResilientCluster - listKind: ResilientClusterList - plural: resilientclusters - shortNames: - - rstc - singular: resilientcluster - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.currentStatus.availability - name: Available - type: string - name: v1 - schema: - openAPIV3Schema: - description: ResilientCluster is used by the MultiCluster-Resiliency-Addon - for maintain the status and state of each cluster running the Addon Agent. - CRs should live in the relevant cluster-namespaces. One per Spoke, named - after the cluster it represents. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - status: - description: ResilientClusterStatus encapsulated the initial, current, - and previous statuses of the ResilientCluster. - properties: - currentStatus: - description: ClusterStatus represents a status of the Spoke cluster - at a specific time. - properties: - availability: - description: ClusterAvailability is a bool representing whether - not the Spoke cluster is available. Use ClusterAvailable and - ClusterNotAvailable. - enum: - - "True" - - "False" - type: string - time: - format: date-time - type: string - type: object - initialStatus: - description: ClusterStatus represents a status of the Spoke cluster - at a specific time. - properties: - availability: - description: ClusterAvailability is a bool representing whether - not the Spoke cluster is available. Use ClusterAvailable and - ClusterNotAvailable. - enum: - - "True" - - "False" - type: string - time: - format: date-time - type: string - type: object - previousStatus: - description: ClusterStatus represents a status of the Spoke cluster - at a specific time. - properties: - availability: - description: ClusterAvailability is a bool representing whether - not the Spoke cluster is available. Use ClusterAvailable and - ClusterNotAvailable. - enum: - - "True" - - "False" - type: string - time: - format: date-time - type: string - type: object - required: - - currentStatus - - initialStatus - type: object - required: - - status - type: object - served: true - storage: true - subresources: {} diff --git a/multicluster-resiliency-addon/templates/_helpers.tpl b/multicluster-resiliency-addon/templates/_helpers.tpl deleted file mode 100644 index 5408c7b..0000000 --- a/multicluster-resiliency-addon/templates/_helpers.tpl +++ /dev/null @@ -1,23 +0,0 @@ -{{/* mcra.labels generates labels */}} -{{- define "mcra.labels" -}} -app.kubernetes.io/name: {{ .Chart.Name }} -helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -app.kubernetes.io/instance: {{ .Release.Name }} -app.kubernetes.io/version: {{ .Chart.AppVersion }} -{{- end }} - -{{/* mcra.manager-image composes the manager image */}} -{{- define "mcra.manager-image" -}} -{{- printf "%s/%s/%s:%s" .Values.manager.image.registry .Values.manager.image.owner .Values.manager.image.name .Values.manager.image.tag -}} -{{- end -}} - -{{/* mcra.agent-image composes the manager image */}} -{{- define "mcra.agent-image" -}} -{{- printf "%s/%s/%s:%s" .Values.agent.image.registry .Values.agent.image.owner .Values.agent.image.name .Values.agent.image.tag -}} -{{- end -}} - -{{/* mcra.metrics-proxy-image composes the manager image */}} -{{- define "mcra.metrics-proxy-image" -}} -{{- printf "%s/%s/%s:%s" .Values.manager.metrics.proxy.image.registry .Values.manager.metrics.proxy.image.owner .Values.manager.metrics.proxy.image.name .Values.manager.metrics.proxy.image.tag -}} -{{- end -}} diff --git a/multicluster-resiliency-addon/templates/addondeploymentconfig.yaml b/multicluster-resiliency-addon/templates/addondeploymentconfig.yaml deleted file mode 100644 index 7050ba5..0000000 --- a/multicluster-resiliency-addon/templates/addondeploymentconfig.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: addon.open-cluster-management.io/v1alpha1 -kind: AddOnDeploymentConfig -metadata: - labels: - app.kubernetes.io/component: manager-workload - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-deploy-config - namespace: {{ .Values.manager.namespace }} -spec: -{{/* agentInstallNamespace: {{ .Values.agent.namespace }}*/}} - customizedVariables: - - name: AgentReplicas - value: {{ .Values.agent.replicas | quote }} diff --git a/multicluster-resiliency-addon/templates/clustermanagementaddon.yaml b/multicluster-resiliency-addon/templates/clustermanagementaddon.yaml deleted file mode 100644 index 386e4e6..0000000 --- a/multicluster-resiliency-addon/templates/clustermanagementaddon.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: addon.open-cluster-management.io/v1alpha1 -kind: ClusterManagementAddOn -metadata: - labels: - app.kubernetes.io/component: manager-workload - {{- include "mcra.labels" . | nindent 4 }} - name: multicluster-resiliency-addon - namespace: {{ .Values.manager.namespace }} -spec: - addOnMeta: - description: TODO add description - displayName: MultiCluster Resiliency Addon - supportedConfigs: - - defaultConfig: - name: {{ .Chart.Name }}-deploy-config - namespace: {{ .Values.manager.namespace }} - group: addon.open-cluster-management.io - resource: addondeploymentconfigs diff --git a/multicluster-resiliency-addon/templates/clusterrole.yaml b/multicluster-resiliency-addon/templates/clusterrole.yaml deleted file mode 100644 index 818e785..0000000 --- a/multicluster-resiliency-addon/templates/clusterrole.yaml +++ /dev/null @@ -1,208 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - app.kubernetes.io/component: manager-rbac - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-role -rules: - - apiGroups: - - "" - resources: - - configmaps - - events - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch - - apiGroups: - - addon.open-cluster-management.io - resources: - - addondeploymentconfigs - verbs: - - '*' - - apiGroups: - - addon.open-cluster-management.io - resources: - - clustermanagementaddons - verbs: - - get - - list - - watch - - apiGroups: - - addon.open-cluster-management.io - resources: - - clustermanagementaddons/finalizers - verbs: - - update - - apiGroups: - - addon.open-cluster-management.io - resources: - - clustermanagementaddons/status - verbs: - - patch - - update - - apiGroups: - - addon.open-cluster-management.io - resources: - - managedclusteraddons - verbs: - - create - - delete - - get - - list - - update - - watch - - apiGroups: - - addon.open-cluster-management.io - resources: - - managedclusteraddons/finalizers - verbs: - - update - - apiGroups: - - addon.open-cluster-management.io - resources: - - managedclusteraddons/status - verbs: - - patch - - update - - apiGroups: - - appeng.ecosystem.redhat.com - resources: - - resilientclusterclaimbinding - verbs: - - '*' - - apiGroups: - - appeng.ecosystem.redhat.com - resources: - - resilientclusterclaimbinding/finalizer - verbs: - - '*' - - apiGroups: - - appeng.ecosystem.redhat.com - resources: - - resilientclusters - verbs: - - '*' - - apiGroups: - - appeng.ecosystem.redhat.com - resources: - - resilientclusters/finalizer - verbs: - - '*' - - apiGroups: - - authentication.k8s.io - resources: - - tokenreviews - verbs: - - create - - apiGroups: - - authorization.k8s.io - resources: - - subjectaccessreviews - verbs: - - create - - get - - apiGroups: - - certificates.k8s.io - resources: - - certificatesigningrequests - - certificatesigningrequests/approval - verbs: - - create - - get - - list - - update - - watch - - apiGroups: - - certificates.k8s.io - resources: - - signers - verbs: - - approve - - apiGroups: - - cluster.open-cluster-management.io - resources: - - managedclusters - verbs: - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - get - - list - - patch - - update - - watch - - apiGroups: - - hive.openshift.io - resources: - - clusterclaims - verbs: - - create - - get - - list - - update - - watch - - apiGroups: - - hive.openshift.io - resources: - - clusterclaims/finalizers - verbs: - - update - - apiGroups: - - hive.openshift.io - resources: - - clusterdeployments - verbs: - - create - - delete - - get - - list - - watch - - apiGroups: - - hive.openshift.io - resources: - - clusterpools - verbs: - - get - - list - - watch - - apiGroups: - - rbac.authorization.k8s.io - resources: - - rolebindings - - roles - verbs: - - create - - delete - - get - - list - - update - - watch - - apiGroups: - - work.open-cluster-management.io - resources: - - manifestworks - verbs: - - create - - delete - - deletecollection - - get - - list - - patch - - update - - watch diff --git a/multicluster-resiliency-addon/templates/clusterrolebinding.yaml b/multicluster-resiliency-addon/templates/clusterrolebinding.yaml deleted file mode 100644 index b3cf1b8..0000000 --- a/multicluster-resiliency-addon/templates/clusterrolebinding.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - labels: - app.kubernetes.io/component: manager-rbac - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-rb -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: {{ .Chart.Name }}-role -subjects: - - kind: ServiceAccount - name: {{ .Chart.Name }}-sa - namespace: {{ .Values.manager.namespace }} diff --git a/multicluster-resiliency-addon/templates/configmap.yaml b/multicluster-resiliency-addon/templates/configmap.yaml deleted file mode 100644 index 069ff0a..0000000 --- a/multicluster-resiliency-addon/templates/configmap.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - labels: - app.kubernetes.io/component: manager-workload - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-config - namespace: {{ .Values.manager.namespace }} -data: - hive_pool_name: {{ .Values.hive.pool | quote }} diff --git a/multicluster-resiliency-addon/templates/deployment.yaml b/multicluster-resiliency-addon/templates/deployment.yaml deleted file mode 100644 index f822c2d..0000000 --- a/multicluster-resiliency-addon/templates/deployment.yaml +++ /dev/null @@ -1,100 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app.kubernetes.io/component: manager-workload - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-manager - namespace: {{ .Values.manager.namespace }} -spec: - replicas: {{ .Values.manager.replicas }} - selector: - matchLabels: - app.kubernetes.io/component: manager-workload - app.kubernetes.io/name: {{ .Chart.Name }} - app.kubernetes.io/instance: {{ .Release.Name }} - template: - metadata: - annotations: - kubectl.kubernetes.io/default-container: manager - labels: - app.kubernetes.io/component: manager-workload - app.kubernetes.io/name: {{ .Chart.Name }} - app.kubernetes.io/instance: {{ .Release.Name }} - spec: - containers: - - args: - - manager - - --agent-image={{ template "mcra.agent-image" . }} - - --service-account={{ .Chart.Name }}-sa - - --configmap-name={{ .Chart.Name }}-config - - --controller-leader-election - - --controller-probe-address=:8081 - - --controller-metric-address=127.0.0.1:8080 - - --enable-validation-webhook - {{- if .Values.agent.installAll }} - - --install-all-strategy - - --install-all-namespace={{ .Values.agent.namespace }} - {{- end }} - env: - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - image: {{ template "mcra.manager-image" . }} - imagePullPolicy: {{ .Values.manager.image.pullPolicy }} - livenessProbe: - httpGet: - path: /healthz - port: 8081 - initialDelaySeconds: 15 - periodSeconds: 20 - name: manager - ports: - - containerPort: 9443 - name: webhook-server - protocol: TCP - readinessProbe: - httpGet: - path: /readyz - port: 8081 - initialDelaySeconds: 5 - periodSeconds: 10 - resources: - {{- .Values.manager.resources | toYaml | nindent 12 }} - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - volumeMounts: - - mountPath: /tmp/k8s-webhook-server/serving-certs - name: cert - readOnly: true - - args: - - --secure-listen-address=0.0.0.0:8383 - - --upstream=http://127.0.0.1:8080/ - - --logtostderr=true - - --v=0 - image: {{ template "mcra.metrics-proxy-image" . }} - imagePullPolicy: {{ .Values.manager.metrics.proxy.image.pullPolicy }} - name: kube-rbac-proxy - ports: - - containerPort: 8383 - name: https - protocol: TCP - resources: - {{- .Values.manager.resources | toYaml | nindent 12 }} - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - securityContext: - runAsNonRoot: true - serviceAccountName: {{ .Chart.Name }}-sa - volumes: - - name: cert - secret: - defaultMode: 420 - secretName: {{ .Chart.Name }}-webhook-server-cert diff --git a/multicluster-resiliency-addon/templates/metrics_service.yaml b/multicluster-resiliency-addon/templates/metrics_service.yaml deleted file mode 100644 index 9832e0e..0000000 --- a/multicluster-resiliency-addon/templates/metrics_service.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/component: metrics - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-metrics-service - namespace: {{ .Values.manager.namespace }} -spec: - ports: - - name: metrics - port: 8383 - protocol: TCP - selector: - app.kubernetes.io/name: {{ .Chart.Name }} - app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/multicluster-resiliency-addon/templates/prometheus_clusterrolebinding.yaml b/multicluster-resiliency-addon/templates/prometheus_clusterrolebinding.yaml deleted file mode 100644 index 2643d82..0000000 --- a/multicluster-resiliency-addon/templates/prometheus_clusterrolebinding.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - labels: - app.kubernetes.io/component: metrics - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-monitoring-rb -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: {{ .Chart.Name }}-monitoring-role -subjects: - - kind: ServiceAccount - name: prometheus-k8s - namespace: {{ .Values.manager.metrics.monitoring.namespace }} diff --git a/multicluster-resiliency-addon/templates/prometheus_servicemonitor.yaml b/multicluster-resiliency-addon/templates/prometheus_servicemonitor.yaml deleted file mode 100644 index 5342b07..0000000 --- a/multicluster-resiliency-addon/templates/prometheus_servicemonitor.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - labels: - app.kubernetes.io/component: metrics - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-sm - namespace: {{ .Values.manager.metrics.monitoring.namespace }} -spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - path: /metrics - port: metrics - scheme: https - tlsConfig: - insecureSkipVerify: true - namespaceSelector: - matchNames: - - {{ .Values.manager.namespace }} - selector: - matchLabels: - app.kubernetes.io/name: {{ .Chart.Name }} - app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/multicluster-resiliency-addon/templates/serviceaccount.yaml b/multicluster-resiliency-addon/templates/serviceaccount.yaml deleted file mode 100644 index 29785e8..0000000 --- a/multicluster-resiliency-addon/templates/serviceaccount.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - app.kubernetes.io/component: manager-rbac - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-sa - namespace: {{ .Values.manager.namespace }} diff --git a/multicluster-resiliency-addon/templates/validating_webhook_service.yaml b/multicluster-resiliency-addon/templates/validating_webhook_service.yaml deleted file mode 100644 index 6f2b3e1..0000000 --- a/multicluster-resiliency-addon/templates/validating_webhook_service.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: - service.beta.openshift.io/serving-cert-secret-name: {{ .Chart.Name }}-webhook-server-cert - labels: - app.kubernetes.io/component: admission-webhook - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-webhook-service - namespace: {{ .Values.manager.namespace }} -spec: - ports: - - port: 443 - protocol: TCP - targetPort: 9443 - selector: - app.kubernetes.io/name: {{ .Chart.Name }} - app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/multicluster-resiliency-addon/templates/validatingwebhookconfiguration.yaml b/multicluster-resiliency-addon/templates/validatingwebhookconfiguration.yaml deleted file mode 100644 index 363dc9e..0000000 --- a/multicluster-resiliency-addon/templates/validatingwebhookconfiguration.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: admissionregistration.k8s.io/v1 -kind: ValidatingWebhookConfiguration -metadata: - annotations: - service.beta.openshift.io/inject-cabundle: "true" - labels: - app.kubernetes.io/component: admission-webhook - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-validating-webhook-configuration -webhooks: -- admissionReviewVersions: - - v1 - clientConfig: - service: - name: {{ .Chart.Name }}-webhook-service - namespace: {{ .Values.manager.namespace }} - path: /validate-appeng-ecosystem-redhat-com-v1-resilientcluster - failurePolicy: Fail - name: resilientcluster.appeng.ecosystem - rules: - - apiGroups: - - appeng.ecosystem.redhat.com - apiVersions: - - v1 - operations: - - CREATE - - UPDATE - - DELETE - resources: - - resilientclusters - sideEffects: None diff --git a/multicluster-resiliency-addon/values.schema.json b/multicluster-resiliency-addon/values.schema.json deleted file mode 100644 index 99e2227..0000000 --- a/multicluster-resiliency-addon/values.schema.json +++ /dev/null @@ -1,183 +0,0 @@ -{ - "$schema": "http://json-schema.org/schema#", - "type": "object", - "required": [ - "hive", - "manager", - "agent" - ], - "properties": { - "hive": { - "type": "object", - "required": [ - "pool" - ], - "properties": { - "pool": { - "type": "string", - "pattern": "^[a-zA-Z0-9-_]+$" - } - } - }, - "manager": { - "type": "object", - "required": [ - "image", - "namespace", - "replicas", - "resources", - "metrics" - ], - "properties": { - "image": { - "$ref": "#/$defs/image" - }, - "namespace": { - "$ref": "#/$defs/namespace" - }, - "replicas": { - "$ref": "#/$defs/replicas" - }, - "resources": { - "$ref": "#/$defs/resources" - }, - "metrics": { - "type": "object", - "required": [ - "monitoring", - "proxy" - ], - "properties": { - "monitoring": { - "type": "object", - "required": [ - "namespace" - ], - "properties": { - "namespace": { - "$ref": "#/$defs/namespace" - } - } - }, - "proxy": { - "type": "object", - "required": [ - "image", - "resources" - ], - "properties": { - "image": { - "$ref": "#/$defs/image" - }, - "resources": { - "$ref": "#/$defs/resources" - } - } - } - } - } - } - }, - "agent": { - "type": "object", - "required": [ - "image", - "namespace", - "replicas", - "resources" - ], - "properties": { - "image": { - "$ref": "#/$defs/image" - }, - "installAll": { - "type": "boolean" - }, - "namespace": { - "$ref": "#/$defs/namespace" - }, - "replicas": { - "$ref": "#/$defs/replicas" - }, - "resources": { - "$ref": "#/$defs/resources" - } - } - } - }, - "$defs": { - "image": { - "type": "object", - "required": [ - "registry", - "owner", - "name", - "tag", - "pullPolicy" - ], - "properties": { - "registry": { - "type": "string", - "pattern": "^[a-zA-Z0-9-.]+$" - }, - "owner": { - "type": "string", - "pattern": "^[a-zA-Z0-9-_]+$" - }, - "name": { - "type": "string", - "pattern": "^[a-zA-Z0-9-_]+$" - }, - "tag": { - "type": "string", - "pattern": "^[a-zA-Z0-9-_.]+$" - }, - "pullPolicy": { - "type": "string", - "pattern": "^(Always|Never|IfNotPresent)$" - } - } - }, - "namespace": { - "type": "string", - "maxLength": 63, - "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" - }, - "replicas": { - "type": "integer", - "minimum": 1 - }, - "resources": { - "type": "object", - "required": [ - "limits", - "requests" - ], - "properties": { - "limits": { - "$ref": "#/$defs/memcpu" - }, - "requests": { - "$ref": "#/$defs/memcpu" - } - } - }, - "memcpu": { - "type": "object", - "required": [ - "cpu", - "memory" - ], - "properties": { - "cpu": { - "type": "string", - "pattern": "^(([1-9]+|[0-9]+[.][0-9]+)|([0-9]+m))$" - }, - "memory": { - "type": "string", - "pattern": "^[1-9][0-9]+([EPTGMk]|([EPTGMK]i))$" - } - } - } - } -} diff --git a/multicluster-resiliency-addon/values.yaml b/multicluster-resiliency-addon/values.yaml deleted file mode 100644 index 15970f1..0000000 --- a/multicluster-resiliency-addon/values.yaml +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright (c) 2023 Red Hat, Inc. - -# hive holds configuration for OpenShift Hive access -hive: - # pool is the name of the global ClusterPool for claiming clusters from. - pool: vp-pool - -# manager holds configuration for the Addon Manager deployment running on the Hub -manager: - image: - registry: quay.io - owner: ecosystem-appeng - name: multicluster-resiliency-addon - tag: 0.0.1 - pullPolicy: IfNotPresent - namespace: open-cluster-management - replicas: 1 - resources: - limits: - cpu: 500m - memory: 128Mi - requests: - cpu: 10m - memory: 64Mi - metrics: - monitoring: - namespace: openshift-monitoring - proxy: - image: - registry: gcr.io - owner: kubebuilder - name: kube-rbac-proxy - tag: v0.14.1 - pullPolicy: IfNotPresent - resources: - limits: - cpu: 500m - memory: 128Mi - requests: - cpu: 5m - memory: 64Mi - -# agent holds configuration for the Addon Agent deployment running on Spokes -agent: - image: - registry: quay.io - owner: ecosystem-appeng - name: multicluster-resiliency-addon - tag: 0.0.1 - # TODO pull policy not yet implemented - pullPolicy: IfNotPresent - installAll: false - namespace: open-cluster-management-agent-addon - replicas: 1 - # TODO resources not yet implemented - resources: - limits: - cpu: 500m - memory: 128Mi - requests: - cpu: 10m - memory: 64Mi diff --git a/multicluster-resiliency-addon/templates/prometheus_clusterrole.yaml b/templates/ClusterRole-regional-dr-trigger-monitoring-role.yml similarity index 54% rename from multicluster-resiliency-addon/templates/prometheus_clusterrole.yaml rename to templates/ClusterRole-regional-dr-trigger-monitoring-role.yml index 2618ef9..3819d1f 100644 --- a/multicluster-resiliency-addon/templates/prometheus_clusterrole.yaml +++ b/templates/ClusterRole-regional-dr-trigger-monitoring-role.yml @@ -1,10 +1,16 @@ +--- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: - app.kubernetes.io/component: metrics - {{- include "mcra.labels" . | nindent 4 }} - name: {{ .Chart.Name }}-monitoring-role + app.kubernetes.io/component: operator + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/name: regional-dr-trigger-operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + name: regional-dr-trigger-monitoring-role rules: - apiGroups: - "" diff --git a/templates/ClusterRole-regional-dr-trigger-role.yml b/templates/ClusterRole-regional-dr-trigger-role.yml new file mode 100644 index 0000000..2480719 --- /dev/null +++ b/templates/ClusterRole-regional-dr-trigger-role.yml @@ -0,0 +1,58 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/component: operator + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/name: regional-dr-trigger-operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + name: regional-dr-trigger-role +rules: + - apiGroups: + - "" + resources: + - events + verbs: + - create + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + - get + - apiGroups: + - cluster.open-cluster-management.io + resources: + - managedclusters + verbs: + - get + - list + - watch + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - get + - update + - apiGroups: + - ramendr.openshift.io + resources: + - drplacementcontrols + verbs: + - get + - list + - patch + - watch diff --git a/templates/ClusterRoleBinding-regional-dr-trigger-monitoring-rb.yml b/templates/ClusterRoleBinding-regional-dr-trigger-monitoring-rb.yml new file mode 100644 index 0000000..699ee3d --- /dev/null +++ b/templates/ClusterRoleBinding-regional-dr-trigger-monitoring-rb.yml @@ -0,0 +1,21 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: operator + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/name: regional-dr-trigger-operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + name: regional-dr-trigger-monitoring-rb +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: regional-dr-trigger-monitoring-role +subjects: + - kind: ServiceAccount + name: prometheus-k8s + namespace: openshift-monitoring diff --git a/templates/ClusterRoleBinding-regional-dr-trigger-rb.yml b/templates/ClusterRoleBinding-regional-dr-trigger-rb.yml new file mode 100644 index 0000000..c1baaef --- /dev/null +++ b/templates/ClusterRoleBinding-regional-dr-trigger-rb.yml @@ -0,0 +1,21 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/component: operator + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/name: regional-dr-trigger-operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + name: regional-dr-trigger-rb +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: regional-dr-trigger-role +subjects: + - kind: ServiceAccount + name: regional-dr-trigger-sa + namespace: {{ .Values.operator.namespace }} diff --git a/templates/Deployment-regional-dr-trigger-operator.yml b/templates/Deployment-regional-dr-trigger-operator.yml new file mode 100644 index 0000000..86aad5d --- /dev/null +++ b/templates/Deployment-regional-dr-trigger-operator.yml @@ -0,0 +1,80 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: operator + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/name: regional-dr-trigger-operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + name: regional-dr-trigger-operator + namespace: {{ .Values.operator.namespace }} +spec: + replicas: {{ .Values.operator.replicas | int }} + selector: + matchLabels: + app.kubernetes.io/component: operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: rdrtrigger + labels: + app.kubernetes.io/component: operator + app.kubernetes.io/instance: rdrtrigger-0.1.0 + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: regional-dr-trigger-operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + app.kubernetes.io/version: 0.1.0 + spec: + containers: + - args: + - --secure-listen-address=0.0.0.0:8383 + - --upstream=http://127.0.0.1:8080/ + - --logtostderr=true + - --v=0 + image: {{ .Values.operator.kube_rbac_proxy.image }} + imagePullPolicy: {{ .Values.operator.kube_rbac_proxy.imagePullPolicy }} + name: kube-rbac-proxy + ports: + - containerPort: 8383 + name: https + protocol: TCP + resources: {{ .Values.operator.kube_rbac_proxy.resources | toYaml | nindent 12 }} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + - args: + - rdrtrigger + - --leader-election + - --probe-address=:8081 + - --metric-address=127.0.0.1:8080 + image: {{ .Values.operator.rdrtrigger.image }} + imagePullPolicy: {{ .Values.operator.rdrtrigger.imagePullPolicy }} + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: rdrtrigger + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: {{ .Values.operator.rdrtrigger.resources | toYaml | nindent 12 }} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + securityContext: + runAsNonRoot: true + serviceAccountName: regional-dr-trigger-sa diff --git a/templates/NOTES.txt b/templates/NOTES.txt new file mode 100644 index 0000000..26bd288 --- /dev/null +++ b/templates/NOTES.txt @@ -0,0 +1,13 @@ +Thank you for installing {{ .Chart.Name }}. + +Your release is named {{ .Release.Name }}. + +To learn more about the release, try: + + $ helm status {{ .Release.Name }} + $ helm get all {{ .Release.Name }} + +Sources for the operator + https://github.com/RHEcosystemAppEng/regional-dr-trigger-operator +Sources for the chart + https://github.com/RHEcosystemAppEng/regional-dr-trigger-operator-chart diff --git a/templates/Namespace-regional-dr-trigger.yml b/templates/Namespace-regional-dr-trigger.yml new file mode 100644 index 0000000..4218240 --- /dev/null +++ b/templates/Namespace-regional-dr-trigger.yml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Namespace +metadata: + labels: + app.kubernetes.io/component: operator + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/name: regional-dr-trigger-operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + name: {{ .Values.operator.namespace }} diff --git a/templates/Service-regional-dr-trigger-metrics-service.yml b/templates/Service-regional-dr-trigger-metrics-service.yml new file mode 100644 index 0000000..9712fcb --- /dev/null +++ b/templates/Service-regional-dr-trigger-metrics-service.yml @@ -0,0 +1,22 @@ +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/component: operator + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/name: regional-dr-trigger-operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + name: regional-dr-trigger-metrics-service + namespace: {{ .Values.operator.namespace }} +spec: + ports: + - name: metrics + port: 8383 + protocol: TCP + selector: + app.kubernetes.io/component: operator + app.kubernetes.io/part-of: regional-dr-trigger-operator diff --git a/templates/ServiceAccount-regional-dr-trigger-sa.yml b/templates/ServiceAccount-regional-dr-trigger-sa.yml new file mode 100644 index 0000000..e795bd0 --- /dev/null +++ b/templates/ServiceAccount-regional-dr-trigger-sa.yml @@ -0,0 +1,14 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/component: operator + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/name: regional-dr-trigger-operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + name: regional-dr-trigger-sa + namespace: {{ .Values.operator.namespace }} diff --git a/templates/ServiceMonitor-regional-dr-trigger-sm.yml b/templates/ServiceMonitor-regional-dr-trigger-sm.yml new file mode 100644 index 0000000..bef6aff --- /dev/null +++ b/templates/ServiceMonitor-regional-dr-trigger-sm.yml @@ -0,0 +1,29 @@ +--- +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + labels: + app.kubernetes.io/component: operator + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/name: regional-dr-trigger-operator + app.kubernetes.io/part-of: regional-dr-trigger-operator + app.kubernetes.io/version: {{ .Chart.AppVersion }} + helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + name: regional-dr-trigger-sm + namespace: regional-dr-trigger +namespace: openshift-monitoring +spec: + endpoints: + - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token + path: /metrics + port: metrics + scheme: https + tlsConfig: + insecureSkipVerify: true + namespaceSelector: + matchNames: + - {{ .Values.operator.namespace }} + selector: + matchLabels: + app.kubernetes.io/part-of: regional-dr-trigger-operator diff --git a/values.schema.json b/values.schema.json new file mode 100644 index 0000000..084418d --- /dev/null +++ b/values.schema.json @@ -0,0 +1,83 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "required": [ + "operator" + ], + "properties": { + "operator": { + "type": "object", + "required": [ + "replicas", + "kube_rbac_proxy", + "rdrtrigger" + ], + "properties": { + "replicas": { + "type": "integer", + "minimum": 1 + }, + "kube_rbac_proxy": { + "$ref": "#/$defs/container" + }, + "rdrtrigger": { + "$ref": "#/$defs/container" + } + } + } + }, + "$defs": { + "container": { + "type": "object", + "required": [ + "image", + "imagePullPolicy", + "resources" + ], + "image": { + "type": "string" + }, + "imagePullPolicy": { + "type": "string", + "pattern": "^(Always|Never|IfNotPresent)$" + }, + "properties": { + "resources": { + "$ref": "#/$defs/resources" + } + } + }, + "resources": { + "type": "object", + "required": [ + "limits", + "requests" + ], + "properties": { + "limits": { + "$ref": "#/$defs/memcpu" + }, + "requests": { + "$ref": "#/$defs/memcpu" + } + } + }, + "memcpu": { + "type": "object", + "required": [ + "cpu", + "memory" + ], + "properties": { + "cpu": { + "type": "string", + "pattern": "^(([1-9]+|[0-9]+[.][0-9]+)|([0-9]+m))$" + }, + "memory": { + "type": "string", + "pattern": "^[1-9][0-9]+([EPTGMk]|([EPTGMK]i))$" + } + } + } + } +} diff --git a/values.yaml b/values.yaml new file mode 100644 index 0000000..7c5a109 --- /dev/null +++ b/values.yaml @@ -0,0 +1,24 @@ +# Copyright (c) 2023 Red Hat, Inc. +operator: + replicas: 1 + kube_rbac_proxy: + image: gcr.io/kubebuilder/kube-rbac-proxy:v0.14.1 + imagePullPolicy: IfNotPresent + resources: + limits: + cpu: 500m + memory: 128Mi + requests: + cpu: 5m + memory: 64Mi + rdrtrigger: + image: quay.io/ecosystem-appeng/regional-dr-trigger-operator:0.1.0 + imagePullPolicy: Always + resources: + limits: + cpu: 500m + memory: 128Mi + requests: + cpu: 10m + memory: 64Mi + namespace: regional-dr-trigger