11name : ' EKS Helm Client'
2- description : ' Helm client to install and upgrade Helm chart on EKS cluster'
3- author : ' ProjectOSS(Dinush Chathurya) '
2+ description : ' Helm client to install and upgrade Helm chart on EKS cluster with support for private clusters and repositories '
3+ author : ' Open Source Sri Lanka '
44branding :
55 icon : ' upload-cloud'
66 color : ' blue'
77
8+ runs :
9+ using : ' docker'
10+ image : ' Dockerfile'
11+
812inputs :
9- # Core Configuration
13+ args :
14+ description : ' Commands to install and upgrade Helm chart'
15+ required : true
16+
1017 cluster-name :
1118 description : ' EKS cluster name'
12- required : true
19+ required : false
1320
1421 region :
1522 description : ' AWS region where the EKS cluster is located'
16- required : true
17-
18- # Helm Commands
19- helm-commands :
20- description : ' Helm commands to execute (replaces args for clarity)'
21- required : true
22-
23- # Authentication & Access
24- role-arn :
25- description : ' IAM role ARN to assume for cluster access (for IRSA or cross-account access)'
2623 required : false
2724
28- assume-role-session-name :
29- description : ' Session name when assuming role'
30- required : false
31- default : ' github-actions-helm-deploy'
32-
33- # Private Cluster Support
3425 private-cluster :
35- description : ' Set to true if cluster is private (enables additional networking considerations )'
26+ description : ' Set to true if EKS cluster is private (default: false )'
3627 required : false
3728 default : ' false'
3829
39- bastion-host :
40- description : ' Bastion host for private cluster access (if applicable)'
41- required : false
42-
43- bastion-user :
44- description : ' Username for bastion host access'
30+ helm-registry-url :
31+ description : ' Private Helm registry URL'
4532 required : false
46- default : ' ec2-user'
4733
48- vpc-endpoint :
49- description : ' VPC endpoint URL for private API access '
34+ helm-registry-username :
35+ description : ' Username for private Helm registry '
5036 required : false
5137
52- # Private Helm Repository Support
53- private-registry-url :
54- description : ' URL of private Helm registry (supports OCI and traditional repositories)'
38+ helm-registry-password :
39+ description : ' Password for private Helm registry'
5540 required : false
5641
57- private-registry-username :
58- description : ' Username for private registry authentication'
59- required : false
60-
61- private-registry-password :
62- description : ' Password for private registry authentication (use secrets)'
63- required : false
64-
65- private-registry-username-secret :
66- description : ' AWS Secrets Manager secret name containing registry username'
67- required : false
68-
69- private-registry-password-secret :
70- description : ' AWS Secrets Manager secret name containing registry password'
71- required : false
72-
73- ecr-registry :
74- description : ' AWS ECR registry URL (e.g., 123456789012.dkr.ecr.us-west-2.amazonaws.com)'
75- required : false
76-
77- auto-login-ecr :
78- description : ' Automatically login to AWS ECR for private charts'
42+ helm-registry-insecure :
43+ description : ' Allow insecure connection to Helm registry (default: false)'
7944 required : false
8045 default : ' false'
8146
82- github-packages-token :
83- description : ' GitHub token for accessing GitHub Container Registry packages'
84- required : false
85-
86- additional-registries :
87- description : ' JSON array of additional private registries [{url, username, password}]'
47+ kubectl-version :
48+ description : ' Kubectl version to use (default: 1.28.4)'
8849 required : false
50+ default : ' 1.28.4'
8951
90- # Helm Configuration
91- namespace :
92- description : ' Kubernetes namespace for Helm operations'
52+ helm-version :
53+ description : ' Helm version to use (default: 3.13.3)'
9354 required : false
94- default : ' default'
95-
96- create-namespace :
97- description : ' Create namespace if it does not exist'
98- required : false
99- default : ' false'
55+ default : ' 3.13.3'
10056
10157 timeout :
102- description : ' Timeout for Helm operations (e.g., 10m0s )'
58+ description : ' Timeout for kubectl and helm operations in seconds (default: 300 )'
10359 required : false
104- default : ' 5m0s '
60+ default : ' 300 '
10561
106- atomic :
107- description : ' Use atomic flag for Helm operations (rollback on failure)'
108- required : false
109- default : ' true'
110-
111- wait :
112- description : ' Wait for Helm release to be ready'
113- required : false
114- default : ' true'
115-
116- # Security Options
117- verify-charts :
118- description : ' Verify Helm chart signatures'
119- required : false
120- default : ' false'
121-
122- enable-secrets-manager :
123- description : ' Enable AWS Secrets Manager integration'
124- required : false
125- default : ' false'
126-
127- secrets-manager-region :
128- description : ' AWS region for Secrets Manager (defaults to cluster region)'
129- required : false
130-
131- # Debugging & Logging
13262 debug :
133- description : ' Enable debug logging'
63+ description : ' Enable debug logging (default: false) '
13464 required : false
13565 default : ' false'
13666
137- dry-run :
138- description : ' Perform a dry run (helm template + kubectl dry-run) '
67+ kubeconfig-path :
68+ description : ' Custom path for kubeconfig file '
13969 required : false
140- default : ' false'
14170
142- # Validation
143- validate-manifests :
144- description : ' Validate Kubernetes manifests before deployment'
145- required : false
146- default : ' true'
147-
148- kubeval-schema-location :
149- description : ' Custom schema location for kubeval'
150- required : false
151-
152- # Backup & Recovery
153- enable-backup :
154- description : ' Create backup before deployment'
155- required : false
156- default : ' false'
157-
158- backup-storage :
159- description : ' S3 bucket for storing backups'
71+ dry-run :
72+ description : ' Perform a dry run without making actual changes (default: false)'
16073 required : false
161-
162- outputs :
163- helm-release-name :
164- description : ' Name of the deployed Helm release'
165-
166- helm-release-revision :
167- description : ' Revision number of the deployed Helm release'
168-
169- kubernetes-resources :
170- description : ' List of created/updated Kubernetes resources'
171-
172- deployment-status :
173- description : ' Status of the deployment (success/failure)'
174-
175- runs :
176- using : ' docker'
177- image : ' Dockerfile'
74+ default : ' false'
0 commit comments