Skip to content

Commit f054034

Browse files
authored
Added orchestrator-infra subchart (#108)
* Orchestrator-Infra chart, changes after review: test, new templates * SonarQube fixes * Deleted test * Added test for Orchestrator-infra * Fixes after review * Linting issues * More changes after review * Linting fixes
1 parent 12e46b8 commit f054034

16 files changed

Lines changed: 659 additions & 0 deletions
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
annotations:
2+
charts.openshift.io/name: Orchestrator-Infra
3+
charts.openshift.io/provider: Red Hat Developer Hub Team
4+
charts.openshift.io/supportURL: https://issues.redhat.com/browse/RHIDP
5+
apiVersion: v2
6+
name: orchestrator-infra
7+
description: >
8+
Helm chart to deploy the Orchestrator solution's required infrastructure suite on OpenShift, including OpenShift Serverless Logic Operator and OpenShift Serverless Operator.
9+
kubeVersion: ">= 1.25.0-0"
10+
maintainers:
11+
- name: Red Hat Developer Hub Team
12+
url: https://github.com/redhat-developer/rhdh-chart
13+
type: application
14+
sources:
15+
- https://github.com/redhat-developer/rhdh-chart
16+
version: 0.0.1
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
# orchestrator-infra
3+
4+
![Version: 0.0.1](https://img.shields.io/badge/Version-0.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
5+
6+
Helm chart to deploy the Orchestrator solution's required infrastructure suite on OpenShift, including OpenShift Serverless Logic Operator and OpenShift Serverless Operator.
7+
8+
## Maintainers
9+
10+
| Name | Email | Url |
11+
| ---- | ------ | --- |
12+
| Red Hat Developer Hub Team | | <https://github.com/redhat-developer/rhdh-chart> |
13+
14+
## Source Code
15+
16+
* <https://github.com/redhat-developer/rhdh-chart>
17+
18+
## Requirements
19+
20+
Kubernetes: `>= 1.25.0-0`
21+
22+
## Values
23+
24+
| Key | Description | Type | Default |
25+
|-----|-------------|------|---------|
26+
| serverlessLogicOperator.enabled | | bool | `true` |
27+
| serverlessLogicOperator.subscription.namespace | | string | `"openshift-serverless-logic"` |
28+
| serverlessLogicOperator.subscription.spec.channel | | string | `"alpha"` |
29+
| serverlessLogicOperator.subscription.spec.installPlanApproval | | string | `"Manual"` |
30+
| serverlessLogicOperator.subscription.spec.name | | string | `"logic-operator-rhel8"` |
31+
| serverlessLogicOperator.subscription.spec.source | | string | `"redhat-operators"` |
32+
| serverlessLogicOperator.subscription.spec.sourceNamespace | | string | `"openshift-marketplace"` |
33+
| serverlessLogicOperator.subscription.spec.startingCSV | | string | `"logic-operator-rhel8.v1.35.0"` |
34+
| serverlessOperator.enabled | | bool | `true` |
35+
| serverlessOperator.subscription.namespace | | string | `"openshift-serverless"` |
36+
| serverlessOperator.subscription.spec.channel | | string | `"stable"` |
37+
| serverlessOperator.subscription.spec.installPlanApproval | | string | `"Manual"` |
38+
| serverlessOperator.subscription.spec.name | | string | `"serverless-operator"` |
39+
| serverlessOperator.subscription.spec.source | | string | `"redhat-operators"` |
40+
| serverlessOperator.subscription.spec.sourceNamespace | | string | `"openshift-marketplace"` |
41+
| tests.enabled | | bool | `true` |
42+
| tests.image | | string | `"bitnami/kubectl:latest"` |
43+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: str()
2+
home: str(required=False)
3+
version: str()
4+
appVersion: any(str(), num(), required=False)
5+
description: str(required=False)
6+
keywords: list(str(), required=False)
7+
sources: list(str(), required=False)
8+
maintainers: list(include('maintainer'), required=False)
9+
dependencies: list(include('dependency'), required=False)
10+
icon: str(required=False)
11+
engine: str(required=False)
12+
condition: str(required=False)
13+
tags: str(required=False)
14+
deprecated: bool(required=False)
15+
apiVersion: str()
16+
kubeVersion: str(required=False)
17+
type: str(required=False)
18+
annotations: map(str(), str(), required=False)
19+
---
20+
maintainer:
21+
name: str(required=False)
22+
email: str(required=False)
23+
url: str(required=False)
24+
---
25+
dependency:
26+
name: str()
27+
version: str()
28+
repository: str()
29+
condition: str(required=False)
30+
tags: list(str(), required=False)
31+
enabled: bool(required=False)
32+
import-values: any(list(str()), list(include('import-value')), required=False)
33+
alias: str(required=False)
34+
---
35+
import-value:
36+
child: str()
37+
parent: str()
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{{/* Empty line */}}
2+
3+
Helm Release {{ .Release.Name }} installed in namespace {{ .Release.Namespace }}.
4+
{{- $yes := "YES" }}
5+
{{- $no := "NO " }}
6+
{{- $serverlessOperatorInstalled := $no }}
7+
{{- $knativeServingInstalled := $no }}
8+
{{- $knativeEventingInstalled := $no }}
9+
{{- $serverlessLogicOperatorInstalled := $no }}
10+
{{- $sonataFlowPlatformInstalled := $no }}
11+
{{- $timeout := "--timeout=5m" }}
12+
13+
{{- if .Values.serverlessOperator.enabled }}
14+
{{- $unmanagedSubscriptionExists := include "unmanaged-resource-exists" (list "operators.coreos.com/v1alpha1" "Subscription" .Values.serverlessOperator.subscription.namespace "serverless-operator" .Release.Name .Capabilities.APIVersions ) }}
15+
{{- if eq $unmanagedSubscriptionExists "false" }}
16+
{{- $serverlessOperatorInstalled = $yes }}
17+
{{- end }}
18+
{{- end }}
19+
20+
{{- if .Values.serverlessLogicOperator.enabled }}
21+
{{- $serverlessLogicOperatorInstalled = $yes }}
22+
{{- end }}
23+
24+
25+
Components Installed Namespace
26+
====================================================================
27+
Red Hat Serverless Operator {{ $serverlessOperatorInstalled }} {{ .Values.serverlessOperator.subscription.namespace }}
28+
Red Hat Serverless Logic Operator {{ $serverlessLogicOperatorInstalled }} {{ .Values.serverlessLogicOperator.subscription.namespace }}
29+
====================================================================
30+
{{/* Empty line */}}
31+
32+
{{- if eq .Values.serverlessOperator.subscription.spec.installPlanApproval "Manual" }}
33+
34+
To manually approve the openshift-serverless InstallPlan:
35+
36+
OS_PLAN=$(oc get installplan -n openshift-serverless)
37+
oc patch installplan $OS_PLAN -n openshift-serverless --type merge --patch '{"spec":{"approved":true}}'
38+
{{- end }}
39+
40+
{{- if eq .Values.serverlessLogicOperator.subscription.spec.installPlanApproval "Manual" }}
41+
42+
To manually approve the openshift-serverless-logic InstallPlan:
43+
44+
OSL_PLAN=$(oc get installplan -n openshift-serverless)
45+
oc patch installplan $OSL_PLAN -n openshift-serverless --type merge --patch '{"spec":{"approved":true}}'
46+
{{- end }}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{{/* Helper functions */}}
2+
3+
{{- define "unmanaged-resource-exists" -}}
4+
{{- $api := index . 0 -}}
5+
{{- $kind := index . 1 -}}
6+
{{- $namespace := index . 2 -}}
7+
{{- $name := index . 3 -}}
8+
{{- $releaseName := index . 4 -}}
9+
{{- $apiCapabilities := index . 5 -}}
10+
{{- $unmanagedSubscriptionExists := "true" -}}
11+
{{- if $apiCapabilities.Has (printf "%s/%s" $api $kind) }}
12+
{{- $existingOperator := lookup $api $kind $namespace $name -}}
13+
{{- if empty $existingOperator -}}
14+
{{- "false" -}}
15+
{{- else -}}
16+
{{- $isManagedResource := include "is-managed-resource" (list $existingOperator $releaseName) -}}
17+
{{- if eq $isManagedResource "true" -}}
18+
{{- "false" -}}
19+
{{- else -}}
20+
{{- "true" -}}
21+
{{- end -}}
22+
{{- end -}}
23+
{{- else -}}
24+
{{- "false" -}}
25+
{{- end -}}
26+
{{- end -}}
27+
28+
{{- define "is-managed-resource" -}}
29+
{{- $resource := index . 0 -}}
30+
{{- $releaseName := index . 1 -}}
31+
{{- $resourceReleaseName := dig "metadata" "annotations" (dict "meta.helm.sh/release-name" "NA") $resource -}}
32+
{{- if eq (get $resourceReleaseName "meta.helm.sh/release-name") $releaseName -}}
33+
{{- "true" -}}
34+
{{- else -}}
35+
{{- "false" -}}
36+
{{- end -}}
37+
{{- end -}}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{{- $unmanagedNamespaceExists := include "unmanaged-resource-exists" (list "v1" "Namespace" "" .Values.serverlessLogicOperator.subscription.namespace .Release.Name .Capabilities.APIVersions) }}
2+
{{- if and (eq $unmanagedNamespaceExists "false") .Values.serverlessLogicOperator.enabled }}
3+
---
4+
apiVersion: v1
5+
kind: Namespace
6+
metadata:
7+
name: {{ .Values.serverlessLogicOperator.subscription.namespace }}
8+
{{- end }}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{{- if .Values.serverlessLogicOperator.enabled }}
2+
apiVersion: operators.coreos.com/v1
3+
kind: OperatorGroup
4+
metadata:
5+
name: openshift-serverless-logic
6+
namespace: {{ .Values.serverlessLogicOperator.subscription.namespace }}
7+
spec: {}
8+
{{- end }}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{{- $unmanagedSubscriptionExists := include "unmanaged-resource-exists" (list "operators.coreos.com/v1alpha1" "Subscription" .Values.serverlessLogicOperator.subscription.namespace .Values.serverlessLogicOperator.subscription.spec.name .Release.Name .Capabilities.APIVersions ) }}
2+
{{- if and (eq $unmanagedSubscriptionExists "false") .Values.serverlessLogicOperator.enabled }}
3+
apiVersion: operators.coreos.com/v1alpha1
4+
kind: Subscription
5+
metadata:
6+
name: {{ .Values.serverlessLogicOperator.subscription.spec.name }}
7+
namespace: {{ .Values.serverlessLogicOperator.subscription.namespace }}
8+
spec:
9+
{{- toYaml .Values.serverlessLogicOperator.subscription.spec | nindent 2 }}
10+
{{- end }}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{{- if .Values.serverlessOperator.enabled }}
2+
{{- $unmanagedNamespaceExists := include "unmanaged-resource-exists" (list "v1" "Namespace" "" "knative-serving" .Release.Name .Capabilities.APIVersions) }}
3+
{{- if eq $unmanagedNamespaceExists "false" }}
4+
---
5+
apiVersion: v1
6+
kind: Namespace
7+
metadata:
8+
name: knative-serving
9+
{{- end }}
10+
11+
{{- $unmanagedNamespaceExists := include "unmanaged-resource-exists" (list "v1" "Namespace" "" "knative-eventing" .Release.Name .Capabilities.APIVersions) }}
12+
{{- if eq $unmanagedNamespaceExists "false" }}
13+
---
14+
apiVersion: v1
15+
kind: Namespace
16+
metadata:
17+
name: knative-eventing
18+
{{- end }}
19+
{{- end }}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{{- $unmanagedNamespaceExists := include "unmanaged-resource-exists" (list "v1" "Namespace" "" .Values.serverlessOperator.subscription.namespace .Release.Name .Capabilities.APIVersions) }}
2+
{{- if and (eq $unmanagedNamespaceExists "false") .Values.serverlessOperator.enabled }}
3+
---
4+
apiVersion: v1
5+
kind: Namespace
6+
metadata:
7+
name: {{ .Values.serverlessOperator.subscription.namespace }}
8+
{{- end }}
9+

0 commit comments

Comments
 (0)