Skip to content

Commit 237366a

Browse files
authored
add configuration example (#10)
Signed-off-by: ISMAIL KABOUBI <ikaboubi@gmail.com>
1 parent fe69860 commit 237366a

File tree

8 files changed

+306
-3
lines changed

8 files changed

+306
-3
lines changed

cluster/test/setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ${KUBECTL} -n upbound-system wait --for=condition=Available deployment --all --t
1313

1414
echo "Creating a default provider config..."
1515
cat <<EOF | ${KUBECTL} apply -f -
16-
apiVersion: ovh.upbound.io/v1beta1
16+
apiVersion: ovh.edixos.io/v1beta1
1717
kind: ProviderConfig
1818
metadata:
1919
name: default
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
apiVersion: apiextensions.crossplane.io/v1
2+
kind: Composition
3+
metadata:
4+
name: edixos-cluster
5+
labels:
6+
purpose: demo
7+
spec:
8+
compositeTypeRef:
9+
apiVersion: workloads.edixos.io/v1alpha1
10+
kind: XEdixosCluster
11+
patchSets:
12+
- name: metadata
13+
patches:
14+
- fromFieldPath: metadata.labels
15+
resources:
16+
# Cluster.kube.ovh.edixos.io
17+
- name: Cluster
18+
base:
19+
apiVersion: kube.ovh.edixos.io/v1alpha1
20+
kind: Cluster
21+
spec:
22+
providerConfigRef:
23+
name: default
24+
patches:
25+
########################################
26+
## From composite to managed resource ##
27+
########################################
28+
- type: CombineFromComposite
29+
combine:
30+
variables:
31+
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
32+
- fromFieldPath: metadata.labels[crossplane.io/claim-namespace]
33+
strategy: string
34+
string:
35+
fmt: "%s-%s"
36+
toFieldPath: metadata.name
37+
- fromFieldPath: spec.serviceName
38+
toFieldPath: spec.forProvider.serviceName
39+
- fromFieldPath: spec.version
40+
toFieldPath: spec.forProvider.version
41+
- fromFieldPath: spec.region
42+
toFieldPath: spec.forProvider.region
43+
- type: CombineFromComposite
44+
combine:
45+
variables:
46+
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
47+
- fromFieldPath: metadata.labels[crossplane.io/claim-namespace]
48+
strategy: string
49+
string:
50+
fmt: "%s-%s"
51+
toFieldPath: spec.forProvider.name
52+
########################################
53+
## From managed resource to composite ##
54+
########################################
55+
- type: ToCompositeFieldPath
56+
fromFieldPath: status.atProvider.url
57+
toFieldPath: status.url
58+
- type: ToCompositeFieldPath
59+
fromFieldPath: status.atProvider.kubeProxyMode
60+
toFieldPath: status.kubeProxyMode
61+
- type: ToCompositeFieldPath
62+
fromFieldPath: status.atProvider.id
63+
toFieldPath: status.clusterID
64+
65+
# NodePool.kube.ovh.edixos.io
66+
- name: nodePool
67+
base:
68+
apiVersion: kube.ovh.edixos.io/v1alpha1
69+
kind: NodePool
70+
spec:
71+
providerConfigRef:
72+
name: default
73+
forProvider:
74+
maxNodes: 1
75+
minNodes: 1
76+
monthlyBilled: false
77+
patches:
78+
########################################
79+
## From composite to managed resource ##
80+
########################################
81+
- type: CombineFromComposite
82+
combine:
83+
variables:
84+
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
85+
- fromFieldPath: metadata.labels[crossplane.io/claim-namespace]
86+
strategy: string
87+
string:
88+
fmt: "%s-%s"
89+
toFieldPath: spec.forProvider.name
90+
- type: CombineFromComposite
91+
combine:
92+
variables:
93+
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
94+
- fromFieldPath: metadata.labels[crossplane.io/claim-namespace]
95+
strategy: string
96+
string:
97+
fmt: "%s-%s"
98+
toFieldPath: metadata.name
99+
- fromFieldPath: spec.serviceName
100+
toFieldPath: spec.forProvider.serviceName
101+
- fromFieldPath: spec.nodePool.flavorName
102+
toFieldPath: spec.forProvider.flavorName
103+
- fromFieldPath: spec.nodePool.desiredNodes
104+
toFieldPath: spec.forProvider.desiredNodes
105+
- fromFieldPath: spec.nodePool.maxNodes
106+
toFieldPath: spec.forProvider.maxNodes
107+
- fromFieldPath: spec.nodePool.minNodes
108+
toFieldPath: spec.forProvider.minNodes
109+
- type: CombineFromComposite
110+
combine:
111+
variables:
112+
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
113+
- fromFieldPath: metadata.labels[crossplane.io/claim-namespace]
114+
strategy: string
115+
string:
116+
fmt: "%s-%s"
117+
toFieldPath: spec.forProvider.kubeIdRef.name
118+
########################################
119+
## From managed resource to composite ##
120+
########################################
121+
- type: ToCompositeFieldPath
122+
fromFieldPath: status.atProvider.id
123+
toFieldPath: status.nodePoolId
124+
- type: ToCompositeFieldPath
125+
fromFieldPath: status.atProvider.sizeStatus
126+
toFieldPath: status.sizeStatus
127+
# IpRestriction.kube.ovh.edixos.io
128+
- name: ipRestriction
129+
base:
130+
apiVersion: kube.ovh.edixos.io/v1alpha1
131+
kind: IpRestriction
132+
spec:
133+
providerConfigRef:
134+
name: default
135+
forProvider:
136+
ips:
137+
- 0.0.0.0/0
138+
patches:
139+
- fromFieldPath: spec.serviceName
140+
toFieldPath: spec.forProvider.serviceName
141+
- fromFieldPath: spec.masterAuthorizedNetworks
142+
toFieldPath: spec.forProvider.ips
143+
- type: CombineFromComposite
144+
combine:
145+
variables:
146+
- fromFieldPath: metadata.labels[crossplane.io/claim-name]
147+
- fromFieldPath: metadata.labels[crossplane.io/claim-namespace]
148+
strategy: string
149+
string:
150+
fmt: "%s-%s"
151+
toFieldPath: spec.forProvider.kubeIdRef.name
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: workloads.edixos.io/v1alpha1
2+
kind: EdixosCluster
3+
metadata:
4+
name: dev-cluster-2
5+
namespace: default
6+
spec:
7+
serviceName: 980cbcf06e6a4e6e8a91a7d125b26bba
8+
region: DE1
9+
version: "1.28"
10+
nodePool:
11+
flavorName: b2-7
12+
desiredNodes: 1
13+
maxNodes: 1
14+
minNodes: 1
15+
masterAuthorizedNetworks:
16+
- 86.245.54.92/32
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: workloads.edixos.io/v1alpha1
2+
kind: EdixosCluster
3+
metadata:
4+
name: dev-cluster
5+
namespace: default
6+
spec:
7+
serviceName: 980cbcf06e6a4e6e8a91a7d125b26bba
8+
region: DE1
9+
version: "1.28"
10+
nodePool:
11+
flavorName: b2-7
12+
desiredNodes: 1
13+
maxNodes: 1
14+
minNodes: 1
15+
masterAuthorizedNetworks:
16+
- 86.245.54.92/32

examples/configuration/provider.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
apiVersion: pkg.crossplane.io/v1
2+
kind: Provider
3+
metadata:
4+
name: provider-ovh
5+
spec:
6+
package: xpkg.upbound.io/edixos/provider-ovh:v0.1.4
7+
runtimeConfigRef:
8+
name: provider-ovh
9+
---
10+
apiVersion: pkg.crossplane.io/v1beta1
11+
kind: DeploymentRuntimeConfig
12+
metadata:
13+
name: provider-ovh
14+
spec:
15+
deploymentTemplate:
16+
spec:
17+
replicas: 1
18+
selector: {}
19+
template:
20+
spec:
21+
containers:
22+
- name: package-runtime
23+
args:
24+
- --debug
25+
- --poll
26+
- 1m
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
apiVersion: apiextensions.crossplane.io/v1
2+
kind: CompositeResourceDefinition
3+
metadata:
4+
name: xedixosclusters.workloads.edixos.io
5+
spec:
6+
defaultCompositionRef:
7+
name: edixos-cluster
8+
group: workloads.edixos.io
9+
names:
10+
kind: XEdixosCluster
11+
plural: xedixosclusters
12+
claimNames:
13+
kind: EdixosCluster
14+
plural: edixosclusters
15+
versions:
16+
- name: v1alpha1
17+
served: true
18+
referenceable: true
19+
additionalPrinterColumns:
20+
- name: ID
21+
type: string
22+
description: The Cluster ID from the OVH API.
23+
jsonPath: .status.clusterID
24+
- name: URL
25+
type: string
26+
description: The control plane URL.
27+
jsonPath: .status.url
28+
- name: sizeStatus
29+
type: string
30+
description: The status about the Kubernetes cluster's capacity.
31+
jsonPath: .status.sizeStatus
32+
schema:
33+
openAPIV3Schema:
34+
type: object
35+
properties:
36+
spec:
37+
type: object
38+
properties:
39+
serviceName:
40+
description: The id of the OVH Public Cloud Project.
41+
type: string
42+
region:
43+
description: The region where the cluster will be created.
44+
type: string
45+
version:
46+
description: The version of the kubernetes cluster.
47+
type: string
48+
nodePool:
49+
type: object
50+
properties:
51+
flavorName:
52+
description: The machine flavor name to be used.
53+
type: string
54+
desiredNodes:
55+
description: Number of nodes you desire in the pool
56+
type: number
57+
maxNodes:
58+
description: Number of max nodes you desire in the pool
59+
type: number
60+
minNodes:
61+
description: Number of min nodes you desire in the pool
62+
type: number
63+
required:
64+
- flavorName
65+
- desiredNodes
66+
masterAuthorizedNetworks:
67+
type: array
68+
items:
69+
type: string
70+
description: The IP ranges to be authorized in the Kubernetes api-server.
71+
required:
72+
- serviceName
73+
- region
74+
- version
75+
- nodePool
76+
77+
status:
78+
type: object
79+
properties:
80+
clusterID:
81+
type: string
82+
description: The identifier of the cluster from OVH API.
83+
kubeProxyMode:
84+
type: string
85+
description: KubeProxyMode, for example iptables
86+
url:
87+
type: string
88+
description: url of the masters
89+
nodePoolId:
90+
type: string
91+
description: The identifier of the nodepool from OVH API.
92+
sizeStatus:
93+
type: string
94+
description: The status about the Kubernetes cluster's capacity.

examples/install.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ kind: Provider
33
metadata:
44
name: provider-ovh
55
spec:
6-
package: xpkg.upbound.io/edixos/provider-ovh:v0.1.0
6+
package: xpkg.upbound.io/edixos/provider-ovh:v0.1.4
77
runtimeConfigRef:
88
name: provider-ovh
99
---

examples/storeconfig/vault.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
apiVersion: ovh.upbound.io/v1alpha1
1+
apiVersion: ovh.edixos.io/v1alpha1
22
kind: StoreConfig
33
metadata:
44
name: vault

0 commit comments

Comments
 (0)