forked from lbrlabs/pulumi-lbrlabs-eks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschema.yaml
202 lines (202 loc) · 6.3 KB
/
schema.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# yaml-language-server: $schema=https://raw.githubusercontent.com/pulumi/pulumi/master/pkg/codegen/schema/pulumi.json
---
name: lbrlabs-eks
displayName: LBr Labs EKS
publisher: lbrlabs
pluginDownloadURL: "github://api.github.com/lbrlabs"
description: "A batteries included EKS cluster following best practices."
logoUrl: "https://raw.githubusercontent.com/lbrlabs/pulumi-lbrlabs-eks/main/assets/amazon-eks.png" #nolint:golint,lll
keywords:
- eks
- kubernetes
- aws
- lbrlabs
- kind/component
- category/cloud
repository: "https://github.com/lbrlabs/pulumi-lbrlabs-eks"
resources:
lbrlabs-eks:index:Cluster:
isComponent: true
inputProperties:
letsEncryptEmail:
type: string
description: The email address to use to issue certificates from Lets Encrypt.
clusterSubnetIds:
type: array
items:
type: string
systemNodeSubnetIds:
type: array
items:
type: string
systemNodeInstanceTypes:
type: array
items:
type: string
systemNodeMaxCount:
type: number
description: The maximum number of nodes in the system autoscaling group.
systemNodeMinCount:
type: number
description: The minimum number of nodes in the system autoscaling group.
systemNodeDesiredCount:
type: number
description: The initial number of nodes in the system autoscaling group.
requiredInputs:
- clusterSubnetIds
- systemNodeSubnetIds
- letsEncryptEmail
properties:
kubeconfig:
"type": string
"description": The kubeconfig for this cluster.
controlPlane:
"$ref": "/aws/v6.1.0/schema.json#/resources/aws:eks%2Fcluster:Cluster"
"description": The Cluster control plane
oidcProvider:
"$ref": "/aws/v6.1.0/schema.json#/resources/aws:iam%2FopenIdConnectProvider:OpenIdConnectProvider"
"description": The OIDC provider for this cluster.
systemNodes:
"$ref": "/aws/v6.1.0/schema.json#/resources/aws:eks%2FnodeGroup:NodeGroup"
"description": The system node group.
# clusterIssuer:
# "$ref": "/kubernetes/v3.29.1/schema.json#/resources/kubernetes:apiextensions.k8s.io:CustomResource"
required:
- controlPlane
- oidcProvider
- kubeconfig
- systemNodes
lbrlabs-eks:index:AttachedNodeGroup:
isComponent: true
inputProperties:
clusterName:
type: string
description: The cluster name to attach the nodegroup tp.
subnetIds:
type: array
items:
type: string
nodeInstanceTypes:
type: array
items:
type: string
scalingConfig:
"$ref": "/aws/v6.1.0/schema.json#/types/aws:eks%2FNodeGroupScalingConfig:NodeGroupScalingConfig"
taints:
type: "array"
items:
"$ref": "/aws/v6.1.0/schema.json#/types/aws:eks%2FNodeGroupTaint:NodeGroupTaint"
labels:
type: object
additionalProperties:
type: string
description: "Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed."
requiredInputs:
- clusterName
- subnetIds
properties:
nodeGroup:
"$ref": "/aws/v6.1.0/schema.json#/resources/aws:eks%2FnodeGroup:NodeGroup"
nodeRole:
"$ref": "/aws/v6.1.0/schema.json#/resources/aws:iam%2Frole:Role"
required:
- nodeGroup
- nodeRole
lbrlabs-eks:index:IamServiceAccountRole:
isComponent: true
inputProperties:
oidcProviderArn:
type: string
description: The arn of the OIDC provider attached to your EKS cluster.
oidcProviderUrl:
type: string
description: The URL of the OIDC provider attached to your EKS cluster.
namespaceName:
type: string
description: The namespace to create the service account in.
serviceAccountName:
type: string
description: The name of the service account to bind to the role
requiredInputs:
- oidcProviderArn
- oidcProviderUrl
- namespaceName
- serviceAccountName
properties:
role:
"$ref": "/aws/v6.1.0/schema.json#/resources/aws:iam%2Frole:Role"
required:
- role
lbrlabs-eks:index:IamRoleMapping:
isComponent: true
inputProperties:
roleArn:
type: string
description: The arn of the role to map to a Kubernetes group.
username:
type: string
description: The username to assign to the rolemapping.
groups:
type: array
items:
type: string
description: An array of groups to map the IAM role to.
requiredInputs:
- roleArn
- username
- groups
properties:
required:
lbrlabs-eks:index:AttachedFargateProfile:
isComponent: true
inputProperties:
clusterName:
type: string
description: The name of the cluster to assign the fargate profile to.
subnetIds:
type: array
items:
type: string
description: The subnet IDs to use for the fargate profile.
selectors:
type: array
items:
"$ref": "/aws/v6.1.0/schema.json#/types/aws:eks%2FFargateProfileSelector:FargateProfileSelector"
requiredInputs:
- clusterName
- subnetIds
- selectors
properties:
role:
"$ref": "/aws/v6.1.0/schema.json#/resources/aws:iam%2Frole:Role"
profile:
"$ref": "/aws/v6.1.0/schema.json#/resources/aws:eks%2FfargateProfile:FargateProfile"
required:
- role
- profile
language:
csharp:
packageReferences:
Pulumi: 3.*
Pulumi.Aws: 6.*
Pulumi.Kubernetes: 4.*
rootNamespace: Lbrlabs.PulumiPackage
namespaces:
lbrlabs-eks: "Eks"
go:
generateResourceContainerTypes: true
generics: "side-by-side"
importBasePath: github.com/lbrlabs/pulumi-lbrlabs-eks/sdk/go/eks
nodejs:
dependencies:
"@pulumi/aws": "^6.0.0"
"@pulumi/kubernetes": "^4.0.0"
devDependencies:
typescript: "^3.7.0"
packageName: "@lbrlabs/pulumi-eks"
python:
packageName: "lbrlabs_pulumi_eks"
requires:
pulumi: ">=3.0.0,<4.0.0"
pulumi-aws: ">=6.0.0,<7.0.0"
pulumi-kubernetes: ">=4.0.0,<5.0.0"