-
Marc Burnie [AWS] authoredMarc Burnie [AWS] authored
OSDU on AWS Service Helm Chart
Introduction
The following document outlines how to deploy and update the service application onto an existing Kubernetes deployment using the Helm package manager.
Prerequisites
The below software must be installed before continuing:
Additionally, an OSDU on AWS environment must be deployed.
Installation/Updating
To install or update the service application by executing the following command in the CHART folder:
helm upgrade [RELEASE_NAME] . -i -n [NAMESPACE]
To observe the Kubernetes resources before deploying them using the command:
helm upgrade [RELEASE_NAME] . -i -n [NAMESPACE] --dry-run --debug
To observe the history of the current release, use the following command:
helm history [RELEASE_NAME] -n [NAMESPACE]
To revert to a previous release, use the following command:
helm rollback [RELEASE] [REVISION] -n [NAMESPACE]
Refer to the Helm CLI guide for additional commands.
Customizing the Deployment
It is possible to modify the default values specified in the values.yaml file using the --set option. The below parameters can be modified by advanced users to customize the deployment configuration:
Globals
Global Helm values apply to all services within the parent chart deployment. Global values will not override service defaults or locally set values.
Name | Example Value | Description | Type | Required |
---|---|---|---|---|
global.allowOrigins |
{http://localhost,https://www.osdu.aws} |
A list of domains that are permitted by CORS policy. An empty list permits all origins. | array[str] | no |
global.metricsServerAddress |
http://prometheus-service.monitoring:8080 |
The URL of the accessible metrics server for evaluating autoscaling decisions. | str | no |
global.podAnnotations |
podAnnotations.version=v1.0.0 |
Additional annotations on the service pod | dict | no |
global.podSecurityContext |
fsGroup: 1337 |
The pod security context apply to all containers in the pod | str | no |
global.securityContext |
fsGroup: 1337 |
The security context is the container specific security context. Will inherit pod security context | str | no |
Local
Local Helm values apply to specific services. Local Helm values will override global values and default presets.
Name | Example Value | Description | Type | Required |
---|---|---|---|---|
image |
registry.repo.osdu.aws/service:0.21.0 |
The custom image of the service deployment. | str | no |
imagePullPolicy |
IfNotPresent |
The service image pull policy | str | no |
resources.limits.cpu |
500M |
CPU resource management limit for pods | str | no |
resources.limits.memory |
900M |
Memory resource management limit for pods | str | no |
resources.requests.cpu |
500M |
MemoCPUry resource management for pods | str | no |
resources.requests.memory |
900M |
Memory resource management for pods | str | no |
replicaCount |
1 |
The number of pod replicas to be initially deployed | int | no |
autoscaling.minReplicas |
1 |
Minimum number of pod replicas | int | no |
autoscaling.maxReplicas |
100 |
Maximum number of pod replicas | int | no |
autoscaling.targetCPUUtilizationPercentage |
80 |
CPU utilization target | int | no |
autoscaling.targetMemoryUtilizationPercentage |
80 |
Memory utilization target | int | no |
autoscaling.ServiceRequestCountThreshold |
25 |
The number of requests per second threshold averaged over a minute to trigger a scaling event. | int | no |
autoscaling.ServiceRequestDurationAverage |
300 |
The response time measured in miliseconds averaged over 3 minutes to trigger a scaling event. | int | no |
autoscaling.coolDownPeriod |
120 |
The period to wait after the last trigger reported active before scaling the resource back to 0. Managed by Keda. | int | no |
autoscaling.pollingInterval |
1 |
This is the interval to check each trigger on. | int | no |
livenessProbe.failureThreshold |
3 |
Kubernetes probe configuration. | int | no |
livenessProbe.periodSeconds |
10 |
Kubernetes probe configuration. | int | no |
livenessProbe.successThreshold |
1 |
Kubernetes probe configuration. | int | no |
livenessProbe.timeoutSeconds |
1 |
Kubernetes probe configuration. | int | no |
readinessProbe.initialDelaySeconds |
30 |
Kubernetes probe configuration. | int | no |
readinessProbe.failureThreshold |
3 |
Kubernetes probe configuration. | int | no |
readinessProbe.periodSeconds |
10 |
Kubernetes probe configuration. | int | no |
readinessProbe.successThreshold |
1 |
Kubernetes probe configuration. | int | no |
readinessProbe.timeoutSeconds |
1 |
Kubernetes probe configuration. | int | no |
maxPendingRequests |
10000 |
Maximum number of requests that will be queued while waiting for a ready connection pool connection. Used for circuit breaking. Used for circuit breaking.. | int | no |
maxRequestsPerConnection |
100 |
Maximum number of active requests to a destination. Used for circuit breaking.. | int | no |
maxConnections |
0 |
Maximum number of HTTP1 /TCP connections to a destination host. Used for circuit breaking.. | int | no |
podAnnotations |
podAnnotations.version=v1.0.0 |
Additional annotations on the service pod | dict | no |
podSecurityContext |
fsGroup: 1337 |
The pod security context apply to all containers in the pod | str | no |
securityContext |
fsGroup: 1337 |
The security context is the container specific security context. Will inherit pod security context | str | no |
Uninstalling the Chart
To uninstall the helm release:
helm uninstall [RELEASE] -n [NAMESPACE] --keep-history