Skip to content
Snippets Groups Projects
Verified Commit 6fd138ca authored by Konstantin Tsabolov's avatar Konstantin Tsabolov
Browse files

Merge branch 'main' into chore/documentation

parents 46e8acf1 953e6899
No related branches found
No related tags found
No related merge requests found
Pipeline #41085 canceled
Showing
with 245 additions and 263 deletions
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
# ... in these directories # ... in these directories
!apps/**/src/* !apps/**/src/*
!devtools/**/src/*
# Explicitly ignore these locations # Explicitly ignore these locations
node_modules node_modules
......
...@@ -20,7 +20,7 @@ module.exports = { ...@@ -20,7 +20,7 @@ module.exports = {
}, },
'import/resolver': { 'import/resolver': {
typescript: { typescript: {
project: ['apps/*/tsconfig.json', 'devtools/tsconfig.json'], project: ['apps/*/tsconfig.json'],
alwaysTryTypes: true, alwaysTryTypes: true,
}, },
}, },
...@@ -88,12 +88,6 @@ module.exports = { ...@@ -88,12 +88,6 @@ module.exports = {
}, },
], ],
}, },
},
{
files: ['devtools/**/*.ts'],
rules: {
'no-console': 'off',
}
} }
], ],
}; };
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
# ... in these ones # ... in these ones
!apps/**/src/* !apps/**/src/*
!devtools/**/src/*
# Explicitly ignore these locations # Explicitly ignore these locations
node_modules node_modules
......
...@@ -13,7 +13,6 @@ FROM base AS dependencies ...@@ -13,7 +13,6 @@ FROM base AS dependencies
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig*.json .swcrc ./ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig*.json .swcrc ./
COPY patches ./patches COPY patches ./patches
COPY apps/shared/package.json ./apps/shared/ COPY apps/shared/package.json ./apps/shared/
COPY devtools/package.json ./devtools/
RUN pnpm install --frozen-lockfile RUN pnpm install --frozen-lockfile
# Build shared # Build shared
...@@ -26,32 +25,6 @@ COPY --from=dependencies /home/node/app/apps/shared/node_modules ./apps/shared/n ...@@ -26,32 +25,6 @@ COPY --from=dependencies /home/node/app/apps/shared/node_modules ./apps/shared/n
COPY --from=dependencies /home/node/app/patches ./patches COPY --from=dependencies /home/node/app/patches ./patches
RUN pnpm --filter shared build RUN pnpm --filter shared build
# Build DevTools
FROM base AS build-devtools
COPY --from=dependencies /home/node/app/package.json /home/node/app/pnpm-lock.yaml /home/node/app/pnpm-workspace.yaml /home/node/app/tsconfig*.json /home/node/app/.swcrc ./
COPY --from=dependencies /home/node/app/node_modules ./node_modules
COPY --from=dependencies /home/node/app/devtools/node_modules ./devtools/node_modules
COPY --from=dependencies /home/node/app/patches ./patches
COPY --from=build-shared /home/node/app/apps/shared ./apps/shared
COPY devtools ./devtools
RUN pnpm --filter devtools build && pnpm --filter devtools --prod deploy build
# Final devtools
FROM node:20-slim AS devtools
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
WORKDIR /home/node/app
CMD ["node", "dist/server.js"]
COPY --from=build-devtools --chown=node:node /home/node/app/build/dist ./dist
COPY --from=build-devtools --chown=node:node /home/node/app/build/node_modules ./node_modules
COPY --from=build-devtools --chown=node:node /home/node/app/build/package.json .
USER node
# Build service # Build service
FROM base AS build-service FROM base AS build-service
......
# 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/
apiVersion: v2 apiVersion: v2
appVersion: "1.0.0" name: connection-manager
description: OCM Connection Manager Helm chart
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application type: application
name: connection-manager # This is the chart version. This version number should be incremented each time you make changes
description: OCM Connection Manager Helm Chart # to the chart and its templates, including the app version.
version: 1.0.0 # Versions are expected to follow Semantic Versioning (https://semver.org/)
home: https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine version: 1.1.0
sources:
- https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/connection-manager # This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.0.0"
# connection-manager
![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
OCM Connection Manager Helm Chart
**Homepage:** <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine>
## Source Code
* <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/connection-manager>
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| autoscaling.enabled | bool | `false` | |
| autoscaling.maxReplicas | int | `3` | |
| autoscaling.minReplicas | int | `1` | |
| autoscaling.targetCPUUtilizationPercentage | int | `70` | |
| autoscaling.targetMemoryUtilizationPercentage | int | `70` | |
| connectionManager.http.host | string | `"0.0.0.0"` | |
| connectionManager.http.port | int | `3000` | |
| connectionManager.nats.monitoringUrl | string | `"http://ocm-nats.default.svc.cluster.local:8222"` | |
| connectionManager.nats.password | string | `"nats_password"` | |
| connectionManager.nats.url | string | `"nats://ocm-nats.default.svc.cluster.local:4222"` | |
| connectionManager.nats.user | string | `"nats_client"` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"ocm-connection-manager"` | |
| image.tag | string | `"latest"` | |
| imagePullSecrets | list | `[]` | |
| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` | |
| ingress.className | string | `"nginx"` | |
| ingress.enabled | bool | `true` | |
| ingress.hosts[0].host | string | `"kubernetes.docker.internal"` | |
| ingress.hosts[0].paths[0].backend.service.name | string | `"connection-manager"` | |
| ingress.hosts[0].paths[0].backend.service.port.number | int | `3000` | |
| ingress.hosts[0].paths[0].path | string | `"/"` | |
| ingress.hosts[0].paths[0].pathType | string | `"Prefix"` | |
| ingress.tls[0].hosts[0] | string | `"kubernetes.docker.internal"` | |
| ingress.tls[0].secretName | string | `"connection-manager-tls"` | |
| nameOverride | string | `""` | |
| podAnnotations | object | `{}` | |
| podLabels | object | `{}` | |
| podSecurityContext | object | `{}` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext | object | `{}` | |
| service.port | int | `3000` | |
| serviceAccount.annotations | object | `{}` | |
| serviceAccount.automount | bool | `true` | |
| serviceAccount.create | bool | `true` | |
| serviceAccount.name | string | `""` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0)
CHART NAME: {{ .Chart.Name }} 1. Get the application URL by running these commands:
CHART VERSION: {{ .Chart.Version }} {{- if .Values.ingress.enabled }}
APP VERSION: {{ .Chart.AppVersion }} {{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
{{ .Chart.Name | splitList "-" | join " " | title }} can be accessed on the following DNS name from within your cluster: http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
{{- end }}
{{ include "deployment.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local {{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "connection-manager.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "connection-manager.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "connection-manager.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "connection-manager.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
{{- end }}
{{/* {{/*
Expand the name of the chart. Expand the name of the chart.
*/}} */}}
{{- define "deployment.name" -}} {{- define "connection-manager.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
...@@ -10,7 +10,7 @@ Create a default fully qualified app name. ...@@ -10,7 +10,7 @@ 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). 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. If release name contains chart name it will be used as a full name.
*/}} */}}
{{- define "deployment.fullname" -}} {{- define "connection-manager.fullname" -}}
{{- if .Values.fullnameOverride }} {{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }} {{- else }}
...@@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name. ...@@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name.
{{/* {{/*
Create chart name and version as used by the chart label. Create chart name and version as used by the chart label.
*/}} */}}
{{- define "deployment.chart" -}} {{- define "connection-manager.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
{{/* {{/*
Common labels Common labels
*/}} */}}
{{- define "deployment.labels" -}} {{- define "connection-manager.labels" -}}
helm.sh/chart: {{ include "deployment.chart" . }} helm.sh/chart: {{ include "connection-manager.chart" . }}
{{ include "deployment.selectorLabels" . }} {{ include "connection-manager.selectorLabels" . }}
{{- if .Chart.AppVersion }} {{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }} {{- end }}
...@@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }} ...@@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
{{/* {{/*
Selector labels Selector labels
*/}} */}}
{{- define "deployment.selectorLabels" -}} {{- define "connection-manager.selectorLabels" -}}
app.kubernetes.io/name: {{ include "deployment.name" . }} app.kubernetes.io/name: {{ include "connection-manager.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }} {{- end }}
{{/* {{/*
Create the name of the service account to use Create the name of the service account to use
*/}} */}}
{{- define "deployment.serviceAccountName" -}} {{- define "connection-manager.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }} {{- if .Values.serviceAccount.create }}
{{- default (include "deployment.fullname" .) .Values.serviceAccount.name }} {{- default (include "connection-manager.fullname" .) .Values.serviceAccount.name }}
{{- else }} {{- else }}
{{- default "default" .Values.serviceAccount.name }} {{- default "default" .Values.serviceAccount.name }}
{{- end }} {{- end }}
......
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: {{ include "deployment.fullname" . }} name: {{ include "connection-manager.fullname" . }}
labels: labels:
{{- include "deployment.labels" . | nindent 4 }} {{- include "connection-manager.labels" . | nindent 4 }}
spec: spec:
{{- if not .Values.autoscaling.enabled }} {{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }} replicas: {{ .Values.replicaCount }}
{{- end }} {{- end }}
selector: selector:
matchLabels: matchLabels:
{{- include "deployment.selectorLabels" . | nindent 6 }} {{- include "connection-manager.selectorLabels" . | nindent 6 }}
template: template:
metadata: metadata:
{{- with .Values.podAnnotations }} {{- with .Values.podAnnotations }}
...@@ -18,7 +18,7 @@ spec: ...@@ -18,7 +18,7 @@ spec:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
labels: labels:
{{- include "deployment.labels" . | nindent 8 }} {{- include "connection-manager.labels" . | nindent 8 }}
{{- with .Values.podLabels }} {{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
...@@ -27,7 +27,7 @@ spec: ...@@ -27,7 +27,7 @@ spec:
imagePullSecrets: imagePullSecrets:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
serviceAccountName: {{ include "deployment.serviceAccountName" . }} serviceAccountName: {{ include "connection-manager.serviceAccountName" . }}
securityContext: securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }} {{- toYaml .Values.podSecurityContext | nindent 8 }}
containers: containers:
...@@ -37,30 +37,25 @@ spec: ...@@ -37,30 +37,25 @@ spec:
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }} imagePullPolicy: {{ .Values.image.pullPolicy }}
env: env:
- name: HTTP_HOST - name: HTTP_HOSTNAME
value: {{ .Values.connectionManager.http.host | quote }} value: {{ .Values.http.hostname }}
- name: HTTP_PORT - name: HTTP_PORT
value: {{ .Values.connectionManager.http.port | quote}} value: {{ .Values.http.port | quote }}
- name: NATS_URL envFrom:
value: {{ .Values.connectionManager.nats.url | quote }} - configMapRef:
- name: NATS_USER name: ocm-config-map
value: {{ .Values.connectionManager.nats.user | quote }} - secretRef:
- name: NATS_PASSWORD name: ocm-secret
value: {{ .Values.connectionManager.nats.password | quote }}
- name: NATS_MONITORING_URL
value: {{ .Values.connectionManager.nats.monitoringUrl | quote }}
ports: ports:
- name: http - name: http
containerPort: {{ .Values.service.port }} containerPort: {{ .Values.http.port }}
protocol: TCP protocol: TCP
livenessProbe: livenessProbe:
httpGet: {{- toYaml .Values.livenessProbe | nindent 12 }}
path: /health
port: http
readinessProbe: readinessProbe:
httpGet: {{- toYaml .Values.readinessProbe | nindent 12 }}
path: /health startupProbe:
port: http {{- toYaml .Values.startupProbe | nindent 12 }}
resources: resources:
{{- toYaml .Values.resources | nindent 12 }} {{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.volumeMounts }} {{- with .Values.volumeMounts }}
......
...@@ -2,14 +2,14 @@ ...@@ -2,14 +2,14 @@
apiVersion: autoscaling/v2 apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler kind: HorizontalPodAutoscaler
metadata: metadata:
name: {{ include "deployment.fullname" . }} name: {{ include "connection-manager.fullname" . }}
labels: labels:
{{- include "deployment.labels" . | nindent 4 }} {{- include "connection-manager.labels" . | nindent 4 }}
spec: spec:
scaleTargetRef: scaleTargetRef:
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
name: {{ include "deployment.fullname" . }} name: {{ include "connection-manager.fullname" . }}
minReplicas: {{ .Values.autoscaling.minReplicas }} minReplicas: {{ .Values.autoscaling.minReplicas }}
maxReplicas: {{ .Values.autoscaling.maxReplicas }} maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics: metrics:
......
{{- if .Values.ingress.enabled -}} {{- if .Values.ingress.enabled -}}
{{- $fullName := include "deployment.fullname" . -}} {{- $fullName := include "connection-manager.fullname" . -}}
{{- $svcPort := .Values.service.port -}} {{- $svcPort := .Values.service.port -}}
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
...@@ -17,7 +17,7 @@ kind: Ingress ...@@ -17,7 +17,7 @@ kind: Ingress
metadata: metadata:
name: {{ $fullName }} name: {{ $fullName }}
labels: labels:
{{- include "deployment.labels" . | nindent 4 }} {{- include "connection-manager.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }} {{- with .Values.ingress.annotations }}
annotations: annotations:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
...@@ -44,7 +44,7 @@ spec: ...@@ -44,7 +44,7 @@ spec:
{{- range .paths }} {{- range .paths }}
- path: {{ .path }} - path: {{ .path }}
{{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
pathType: {{ .pathType }} pathType: {{ .pathType }}
{{- end }} {{- end }}
backend: backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
......
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ include "deployment.fullname" . }} name: {{ include "connection-manager.fullname" . }}
labels: labels:
{{- include "deployment.labels" . | nindent 4 }} {{- include "connection-manager.labels" . | nindent 4 }}
spec: spec:
type: {{ .Values.service.type }} type: {{ .Values.service.type }}
ports: ports:
...@@ -12,4 +12,4 @@ spec: ...@@ -12,4 +12,4 @@ spec:
protocol: TCP protocol: TCP
name: http name: http
selector: selector:
{{- include "deployment.selectorLabels" . | nindent 4 }} {{- include "connection-manager.selectorLabels" . | nindent 4 }}
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: {{ include "deployment.serviceAccountName" . }} name: {{ include "connection-manager.serviceAccountName" . }}
labels: labels:
{{- include "deployment.labels" . | nindent 4 }} {{- include "connection-manager.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }} {{- with .Values.serviceAccount.annotations }}
annotations: annotations:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
......
# Default values for connection-manager.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1 replicaCount: 1
image: image:
repository: ocm-connection-manager repository: node-654e3bca7fbeeed18f81d7c7.ps-xaas.io/ocm/connection-manager
name: connection-manager
tag: main
sha: ""
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion. pullSecrets: key
tag: "latest"
imagePullSecrets: [] imagePullSecrets: []
nameOverride: "" nameOverride: ""
...@@ -12,22 +18,24 @@ fullnameOverride: "" ...@@ -12,22 +18,24 @@ fullnameOverride: ""
serviceAccount: serviceAccount:
# Specifies whether a service account should be created # Specifies whether a service account should be created
create: true create: false
# Automatically mount a ServiceAccount's API credentials? # Automatically mount a ServiceAccount's API credentials?
automount: true automount: true
# Annotations to add to the service account # Annotations to add to the service account
annotations: {} annotations: {}
# The name of the service account to use. # The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template # If not set and create is true, a name is generated using the fullname template
name: "" name: ocm-service-account
podAnnotations: {} podAnnotations: {}
podLabels: {} podLabels: {}
podSecurityContext: {} podSecurityContext:
{}
# fsGroup: 2000 # fsGroup: 2000
securityContext: {} securityContext:
{}
# capabilities: # capabilities:
# drop: # drop:
# - ALL # - ALL
...@@ -36,54 +44,78 @@ securityContext: {} ...@@ -36,54 +44,78 @@ securityContext: {}
# runAsUser: 1000 # runAsUser: 1000
service: service:
port: 3000 type: ClusterIP
port: 80
ingress: ingress:
enabled: true enabled: false
className: nginx className: ""
annotations: annotations:
kubernetes.io/ingress.class: nginx {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true" # kubernetes.io/tls-acme: "true"
hosts: hosts:
- host: kubernetes.docker.internal - host: chart-example.local
paths: paths:
- path: / - path: /
pathType: Prefix pathType: ImplementationSpecific
backend: tls: []
service: # - secretName: chart-example-tls
name: connection-manager # hosts:
port: # - chart-example.local
number: 3000
tls: resources:
- secretName: connection-manager-tls {}
hosts:
- kubernetes.docker.internal
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious # We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little # choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following # resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'. # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits: # limits:
# cpu: 1000m # cpu: 100m
# memory: 256Mi # memory: 128Mi
# requests: # requests:
# cpu: 1000m # cpu: 100m
# memory: 256Mi # memory: 128Mi
livenessProbe:
httpGet:
path: /health
port: http
readinessProbe:
httpGet:
path: /health
port: http
startupProbe:
httpGet:
path: /health
port: http
autoscaling: autoscaling:
enabled: false enabled: false
minReplicas: 1 minReplicas: 1
maxReplicas: 3 maxReplicas: 100
targetCPUUtilizationPercentage: 70 targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: 70 # targetMemoryUtilizationPercentage: 80
connectionManager: # Additional volumes on the output Deployment definition.
http: volumes: []
host: 0.0.0.0 # - name: foo
port: 3000 # secret:
nats: # secretName: mysecret
url: nats://ocm-nats.default.svc.cluster.local:4222 # optional: false
user: nats_client
password: nats_password # Additional volumeMounts on the output Deployment definition.
monitoringUrl: http://ocm-nats.default.svc.cluster.local:8222 volumeMounts: []
# - name: foo
# mountPath: "/etc/foo"
# readOnly: true
nodeSelector: {}
tolerations: []
affinity: {}
http:
hostname: "0.0.0.0"
port: 3000
# 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/
apiVersion: v2 apiVersion: v2
appVersion: "1.0.0" name: credential-manager
description: OCM Credential Manager Helm chart
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application type: application
name: credential-manager # This is the chart version. This version number should be incremented each time you make changes
description: OCM Credential Manager Helm Chart # to the chart and its templates, including the app version.
version: 1.0.0 # Versions are expected to follow Semantic Versioning (https://semver.org/)
home: https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine version: 1.1.0
sources:
- https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/credential-manager # This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.0.0"
# credential-manager
![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
OCM Credential Manager Helm Chart
**Homepage:** <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine>
## Source Code
* <https://gitlab.eclipse.org/eclipse/xfsc/ocm/ocm-engine/-/tree/main/apps/credential-manager>
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| autoscaling.enabled | bool | `false` | |
| autoscaling.maxReplicas | int | `3` | |
| autoscaling.minReplicas | int | `1` | |
| autoscaling.targetCPUUtilizationPercentage | int | `70` | |
| autoscaling.targetMemoryUtilizationPercentage | int | `70` | |
| credentialManager.http.host | string | `"0.0.0.0"` | |
| credentialManager.http.port | int | `3000` | |
| credentialManager.nats.monitoringUrl | string | `"http://ocm-nats.default.svc.cluster.local:8222"` | |
| credentialManager.nats.password | string | `"nats_password"` | |
| credentialManager.nats.url | string | `"nats://ocm-nats.default.svc.cluster.local:4222"` | |
| credentialManager.nats.user | string | `"nats_client"` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"ocm-credential-manager"` | |
| image.tag | string | `"latest"` | |
| imagePullSecrets | list | `[]` | |
| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` | |
| ingress.className | string | `"nginx"` | |
| ingress.enabled | bool | `true` | |
| ingress.hosts[0].host | string | `"kubernetes.docker.internal"` | |
| ingress.hosts[0].paths[0].backend.service.name | string | `"credential-manager"` | |
| ingress.hosts[0].paths[0].backend.service.port.number | int | `3000` | |
| ingress.hosts[0].paths[0].path | string | `"/"` | |
| ingress.hosts[0].paths[0].pathType | string | `"Prefix"` | |
| ingress.tls[0].hosts[0] | string | `"kubernetes.docker.internal"` | |
| ingress.tls[0].secretName | string | `"credential-manager-tls"` | |
| nameOverride | string | `""` | |
| podAnnotations | object | `{}` | |
| podLabels | object | `{}` | |
| podSecurityContext | object | `{}` | |
| replicaCount | int | `1` | |
| resources | object | `{}` | |
| securityContext | object | `{}` | |
| service.port | int | `3000` | |
| serviceAccount.annotations | object | `{}` | |
| serviceAccount.automount | bool | `true` | |
| serviceAccount.create | bool | `true` | |
| serviceAccount.name | string | `""` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.12.0](https://github.com/norwoodj/helm-docs/releases/v1.12.0)
CHART NAME: {{ .Chart.Name }} 1. Get the application URL by running these commands:
CHART VERSION: {{ .Chart.Version }} {{- if .Values.ingress.enabled }}
APP VERSION: {{ .Chart.AppVersion }} {{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
{{ .Chart.Name | splitList "-" | join " " | title }} can be accessed on the following DNS name from within your cluster: http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
{{- end }}
{{ include "deployment.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local {{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "credential-manager.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "credential-manager.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "credential-manager.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "credential-manager.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
{{- end }}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment