Skip to content

Commit 3e7e420

Browse files
committed
chore: add charts
Signed-off-by: TalDebi <[email protected]>
1 parent e1c4250 commit 3e7e420

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+20657
-1405
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*.orig
18+
*~
19+
# Various IDEs
20+
.project
21+
.idea/
22+
*.tmproj
23+
.vscode/
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
apiVersion: v2
22
name: container-app-operator
3-
description: A Helm chart for container-app-operator
4-
3+
description: A Helm chart for Kubernetes
54
# A chart can be either an 'application' or a 'library' chart.
65
#
76
# Application charts are a collection of templates that can be packaged into versioned archives
@@ -11,14 +10,12 @@ description: A Helm chart for container-app-operator
1110
# a dependency of application charts to inject those utilities and functions into the rendering
1211
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
1312
type: application
14-
1513
# This is the chart version. This version number should be incremented each time you make changes
1614
# to the chart and its templates, including the app version.
1715
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 0.0.0
19-
16+
version: 0.1.0
2017
# This is the version number of the application being deployed. This version number should be
2118
# incremented each time you make changes to the application. Versions are not expected to
2219
# follow Semantic Versioning. They should reflect the version the application is using.
2320
# It is recommended to use it with quotes.
24-
appVersion: "latest"
21+
appVersion: "0.1.0"
Lines changed: 30 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,46 @@
11
# container-app-operator
22

3-
![Version: 0.0.0](https://img.shields.io/badge/Version-0.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square)
3+
![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.1.0](https://img.shields.io/badge/AppVersion-0.1.0-informational?style=flat-square)
44

5-
A Helm chart for container-app-operator
5+
A Helm chart for Kubernetes
66

77
## Values
88

99
| Key | Type | Default | Description |
1010
|-----|------|---------|-------------|
11-
| affinity | object | `{}` | Node affinity rules for scheduling pods. Allows you to specify advanced node selection constraints. |
12-
| config | object | `{"autoscaleConfig":{"activationScale":3,"concurrency":10,"cpu":80,"memory":70,"rps":200},"dnsConfig":{"cname":"ingress.capp-zone.com.","issuer":"cert-issuer","provider":"dns-default","zone":"capp-zone.com."}}` | Configuration for Cappconfig CRD |
13-
| config.autoscaleConfig.activationScale | int | `3` | The default activationScale for autoscaling. |
11+
| config | object | `{"autoscaleConfig":{"activationScale":3,"concurrency":10,"cpu":80,"memory":70,"rps":200},"defaultResources":{"limits":{"cpu":"200m","memory":"200Mi"},"requests":{"cpu":"100m","memory":"100Mi"}},"dnsConfig":{"cname":"ingress.capp-zone.com.","issuer":"cert-issuer","provider":"dns-default","zone":"capp-zone.com."},"enabled":true,"invalidHostnamePatterns":[""]}` | Configuration for CappConfig CRD |
12+
| config.autoscaleConfig.activationScale | int | `3` | The default activation scale (minimum replicas before scaling starts). |
1413
| config.autoscaleConfig.concurrency | int | `10` | The default concurrency limit for autoscaling. |
1514
| config.autoscaleConfig.cpu | int | `80` | The default CPU utilization percentage for autoscaling. |
1615
| config.autoscaleConfig.memory | int | `70` | The default memory utilization percentage for autoscaling. |
1716
| config.autoscaleConfig.rps | int | `200` | The default Requests Per Second (RPS) threshold for autoscaling. |
17+
| config.defaultResources.limits | object | `{"cpu":"200m","memory":"200Mi"}` | Default compute resource limits applied to all Capp workloads. |
18+
| config.defaultResources.limits.cpu | string | `"200m"` | Maximum requested CPU per Capp workload. |
19+
| config.defaultResources.limits.memory | string | `"200Mi"` | Maximum allowed memory per Capp workload. |
20+
| config.defaultResources.requests.cpu | string | `"100m"` | Default requested CPU per Capp workload. |
21+
| config.defaultResources.requests.memory | string | `"100Mi"` | Default requested memory per Capp workload. |
1822
| config.dnsConfig.cname | string | `"ingress.capp-zone.com."` | The canonical name that CNAMEs created by the operator should point at. |
19-
| config.dnsConfig.issuer | string | `"cert-issuer"` | The name of the Certificate External Issuer name |
23+
| config.dnsConfig.issuer | string | `"cert-issuer"` | The name of the Certificate External Issuer name. |
2024
| config.dnsConfig.provider | string | `"dns-default"` | The name of the Crossplane DNS provider config. |
2125
| config.dnsConfig.zone | string | `"capp-zone.com."` | The DNS zone for the application. |
22-
| fullnameOverride | string | `""` | |
23-
| image.manager.pullPolicy | string | `"IfNotPresent"` | The pull policy for the image. |
24-
| image.manager.repository | string | `"ghcr.io/dana-team/container-app-operator"` | The repository of the manager container image. |
25-
| image.manager.tag | string | `""` | The tag of the manager container image. |
26-
| klusterlet | object | `{"enabled":true,"namespace":"open-cluster-management-agent","serviceAccountName":"klusterlet-work-sa"}` | Configuration for the service account used by the Klusterlet work. |
27-
| klusterlet.enabled | bool | `true` | Flag to indiciate whether to deploy Klusterlet-related resources (defaults to true) |
28-
| klusterlet.namespace | string | `"open-cluster-management-agent"` | The namespace where the service account resides. |
29-
| klusterlet.serviceAccountName | string | `"klusterlet-work-sa"` | The name of the Klusterset service account. |
30-
| livenessProbe | object | `{"initialDelaySeconds":15,"periodSeconds":20}` | Configuration for the liveness probe. |
31-
| livenessProbe.initialDelaySeconds | int | `15` | The initial delay before the liveness probe is initiated. |
32-
| livenessProbe.periodSeconds | int | `20` | The frequency (in seconds) with which the probe will be performed. |
33-
| manager | object | `{"args":["--leader-elect","--health-probe-bind-address=:8081","--metrics-bind-address=127.0.0.1:8080"],"command":["/manager"],"ports":{"health":{"containerPort":8081,"name":"health","protocol":"TCP"}},"resources":{"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"10m","memory":"64Mi"}},"securityContext":{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}}}` | Configuration for the manager container. |
34-
| manager.args | list | `["--leader-elect","--health-probe-bind-address=:8081","--metrics-bind-address=127.0.0.1:8080"]` | Command-line arguments passed to the manager container. |
35-
| manager.command | list | `["/manager"]` | Command-line commands passed to the manager container. |
36-
| manager.ports.health.containerPort | int | `8081` | The port for the health check endpoint. |
37-
| manager.ports.health.name | string | `"health"` | The name of the health check port. |
38-
| manager.ports.health.protocol | string | `"TCP"` | The protocol used by the health check endpoint. |
39-
| manager.resources | object | `{"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}` | Resource requests and limits for the manager container. |
40-
| manager.securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}}` | Security settings for the manager container. |
41-
| nameOverride | string | `""` | |
42-
| nodeSelector | object | `{}` | Node selector for scheduling pods. Allows you to specify node labels for pod assignment. |
43-
| readinessProbe | object | `{"initialDelaySeconds":5,"periodSeconds":10}` | Configuration for the readiness probe. |
44-
| readinessProbe.initialDelaySeconds | int | `5` | The initial delay before the readiness probe is initiated. |
45-
| readinessProbe.periodSeconds | int | `10` | The frequency (in seconds) with which the probe will be performed. |
46-
| replicaCount | int | `1` | The number of replicas for the deployment. |
47-
| securityContext | object | `{}` | Pod-level security context for the entire pod. |
48-
| service | object | `{"httpsPort":8443,"protocol":"TCP","targetPort":"https"}` | Configuration for the metrics service. |
49-
| service.httpsPort | int | `8443` | The port for the HTTPS endpoint. |
50-
| service.protocol | string | `"TCP"` | The protocol used by the HTTPS endpoint. |
51-
| service.targetPort | string | `"https"` | The name of the target port. |
52-
| tolerations | list | `[]` | Node tolerations for scheduling pods. Allows the pods to be scheduled on nodes with matching taints. |
26+
| config.enabled | bool | `true` | Enable or disable creation of the CappConfig resource by Helm. |
27+
| config.invalidHostnamePatterns[0] | string | `""` | A list of regex patterns that hostnames of Capp workloads must not match. If a Capp hostname matches one of these patterns, its creation will be blocked. |
28+
| controllerManager.manager.args | list | `["--metrics-bind-address=:8443","--leader-elect"]` | Arguments passed to the controller manager container. |
29+
| controllerManager.manager.containerSecurityContext.allowPrivilegeEscalation | bool | `false` | Whether a process can gain more privileges than its parent process. |
30+
| controllerManager.manager.containerSecurityContext.capabilities | object | `{"drop":["ALL"]}` | Linux capabilities to drop from the container for improved security. |
31+
| controllerManager.manager.image.imagePullPolicy | string | `"IfNotPresent"` | Controller manager container image pull policy. |
32+
| controllerManager.manager.image.repository | string | `"controller"` | Controller manager container image repository. |
33+
| controllerManager.manager.image.tag | string | `"latest"` | Controller manager container image tag. |
34+
| controllerManager.manager.resources.limits.cpu | string | `"500m"` | Maximum CPU limit for the controller manager container. |
35+
| controllerManager.manager.resources.limits.memory | string | `"128Mi"` | Maximum memory limit for the controller manager container. |
36+
| controllerManager.manager.resources.requests.cpu | string | `"10m"` | Minimum CPU request for the controller manager container. |
37+
| controllerManager.manager.resources.requests.memory | string | `"64Mi"` | Minimum memory request for the controller manager container. |
38+
| controllerManager.podSecurityContext.runAsNonRoot | bool | `true` | Run controller manager pods as non-root user. |
39+
| controllerManager.replicas | int | `1` | Number of replicas for the controller manager Deployment. |
40+
| controllerManager.serviceAccount.annotations | object | `{}` | Annotations to add to the service account used by the controller manager. |
41+
| kubernetesClusterDomain | string | `"cluster.local"` | Domain name of the Kubernetes cluster. |
42+
| webhookService.ports | list | `[{"port":443,"protocol":"TCP","targetPort":9443}]` | List of ports exposed by the webhook service. |
43+
| webhookService.type | string | `"ClusterIP"` | Type of Kubernetes Service to expose the webhook (ClusterIP, NodePort, LoadBalancer). |
5344

45+
----------------------------------------------
46+
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)

charts/container-app-operator/crds/rcs.dana.io_cappconfigs.yaml

Lines changed: 86 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
---
21
apiVersion: apiextensions.k8s.io/v1
32
kind: CustomResourceDefinition
43
metadata:
5-
annotations:
6-
controller-gen.kubebuilder.io/version: v0.16.2
74
name: cappconfigs.rcs.dana.io
5+
annotations:
6+
cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/{{ include "container-app-operator.fullname"
7+
. }}-serving-cert'
8+
controller-gen.kubebuilder.io/version: v0.16.4
9+
labels:
10+
{{- include "container-app-operator.labels" . | nindent 4 }}
811
spec:
912
group: rcs.dana.io
1013
names:
@@ -55,8 +58,7 @@ spec:
5558
upscaling.
5659
type: integer
5760
rps:
58-
description: RPS is the desired requests per second to trigger
59-
upscaling.
61+
description: RPS is the desired requests per second to trigger upscaling.
6062
type: integer
6163
required:
6264
- activationScale
@@ -65,11 +67,72 @@ spec:
6567
- memory
6668
- rps
6769
type: object
70+
defaultResources:
71+
description: |-
72+
DefaultResources is the default resources to be assigned to Capp.
73+
If other resources are specified then they override the default values.
74+
properties:
75+
claims:
76+
description: |-
77+
Claims lists the names of resources, defined in spec.resourceClaims,
78+
that are used by this container.
79+
80+
This field depends on the
81+
DynamicResourceAllocation feature gate.
82+
83+
This field is immutable. It can only be set for containers.
84+
items:
85+
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
86+
properties:
87+
name:
88+
description: |-
89+
Name must match the name of one entry in pod.spec.resourceClaims of
90+
the Pod where this field is used. It makes that resource available
91+
inside a container.
92+
type: string
93+
request:
94+
description: |-
95+
Request is the name chosen for a request in the referenced claim.
96+
If empty, everything from the claim is made available, otherwise
97+
only the result of this request.
98+
type: string
99+
required:
100+
- name
101+
type: object
102+
type: array
103+
x-kubernetes-list-map-keys:
104+
- name
105+
x-kubernetes-list-type: map
106+
limits:
107+
additionalProperties:
108+
anyOf:
109+
- type: integer
110+
- type: string
111+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
112+
x-kubernetes-int-or-string: true
113+
description: |-
114+
Limits describes the maximum amount of compute resources allowed.
115+
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
116+
type: object
117+
requests:
118+
additionalProperties:
119+
anyOf:
120+
- type: integer
121+
- type: string
122+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
123+
x-kubernetes-int-or-string: true
124+
description: |-
125+
Requests describes the minimum amount of compute resources required.
126+
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
127+
otherwise to an implementation-defined value. Requests cannot exceed Limits.
128+
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
129+
type: object
130+
type: object
68131
dnsConfig:
69132
properties:
70133
cname:
71-
description: CNAME defines the CNAME record that will be used
72-
for Capp Hostnames
134+
description: CNAME defines the CNAME record that will be used for
135+
Capp Hostnames
73136
type: string
74137
issuer:
75138
description: Issuer defines the certificate issuer
@@ -86,13 +149,29 @@ spec:
86149
- provider
87150
- zone
88151
type: object
152+
invalidHostnamePatterns:
153+
default: []
154+
description: |-
155+
InvalidHostnamePatterns is an optional slice of regex patterns to be used to validate the hostname of the Capp.
156+
If the Capp hostname matches a pattern, it is blocked from being created.
157+
items:
158+
type: string
159+
type: array
89160
required:
90161
- autoscaleConfig
162+
- defaultResources
91163
- dnsConfig
164+
- invalidHostnamePatterns
92165
type: object
93166
status:
94167
description: CappConfigStatus defines the observed state of CappConfig
95168
type: object
96169
type: object
97170
served: true
98171
storage: true
172+
status:
173+
acceptedNames:
174+
kind: ""
175+
plural: ""
176+
conditions: []
177+
storedVersions: []

0 commit comments

Comments
 (0)