Skip to content
This repository was archived by the owner on Aug 12, 2025. It is now read-only.

Commit ecbdc8e

Browse files
authored
Merge pull request #86 from packethost/config-logic-doc
Config logic doc
2 parents fc4af72 + d13146e commit ecbdc8e

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

README.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,20 @@ To deploy a cluster via the cluster-api:
4444

4545
#### Initialize the Cluster
4646

47-
To initialize the cluster:
47+
To initialize the cluster, you need to provider it with the path to the config file.
48+
49+
1. Download the clusterctl config file for your release.
50+
1. Use the config file.
4851

4952
```
50-
clusterctl --config=https://github.com/packethost/cluster-api-provider-packet/releases/latest/clusterctl.yaml init --infrastructure=packet
53+
VERSION=v0.3.0
54+
curl -L -o clusterctl.yaml https://github.com/packethost/cluster-api-provider-packet/releases/download/${VERSION}/clusterctl.yaml
55+
clusterctl --config=./clusterctl.yaml init --infrastructure=packet
5156
```
5257

53-
We are in the process of working with the core cluster-api team, so that you will not need the
58+
Unfortunately, clusterctl itself does not support passing a URL to `--config`, see [this issue](https://github.com/kubernetes-sigs/cluster-api/issues/3099).
59+
60+
Additionally, we are in the process of working with the core cluster-api team, so that you will not need the
5461
`--config=` option, hopefully soon.
5562

5663
#### Generate Cluster yaml
@@ -71,7 +78,7 @@ To generate your cluster yaml:
7178
1. Run the cluster generation command:
7279

7380
```
74-
clusterctl --config=https://github.com/packethost/cluster-api-provider-packet/releases/latest/clusterctl.yaml config cluster <cluster-name> > out/cluster.yaml
81+
clusterctl --config=./clusterctl.yaml config cluster <cluster-name> > out/cluster.yaml
7582
```
7683

7784
Note that the above command will make _all_ of the environment variables required. This is a limitation of

scripts/generate-cluster.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,19 @@
33
set -e
44

55
# default configure URL
6-
CONFIG_URL=${CONFIG_URL:-https://github.com/packethost/cluster-api-provider-packet/releases/latest/clusterctl.yaml}
6+
DEFAULT_CONFIG_URL=https://api.github.com/repos/packethost/cluster-api-provider-packet/releases/latest
7+
TMPYAML=/tmp/clusterctl-packet.yaml
8+
9+
CONFIG_URL=${CONFIG_URL:-""}
10+
11+
# if the config url was not provided, download it
12+
if [ -z "${CONFIG_URL}" ]; then
13+
# because github does not have a direct link to an asset
14+
# this would be easier with jq, but not everyone has jq installed
15+
YAML_URL=$(curl -s ${DEFAULT_CONFIG_URL} | grep clusterctl.yaml | grep browser_download_url | cut -d ":" -f 2,3 | tr -d "\"")
16+
curl -L -o ${TMPYAML} ${YAML_URL}
17+
CONFIG_URL=${TMPYAML}
18+
fi
719

820
TEMPLATE_OUT=./out/cluster.yaml
921

@@ -51,6 +63,8 @@ FACILITY=${PACKET_FACILITY}
5163
# and now export them all so envsubst can use them
5264
export PROJECT_ID FACILITY NODE_OS WORKER_NODE_TYPE MASTER_NODE_TYPE POD_CIDR SERVICE_CIDR SSH_KEY KUBERNETES_VERSION
5365
clusterctl --config=${CONFIG_URL} config cluster ${CLUSTER_NAME} > $TEMPLATE_OUT
66+
# remove any lingering config file
67+
rm -f ${TMPYAML}
5468

5569
echo "Done! See output file at ${TEMPLATE_OUT}. Run:"
5670
echo " kubectl apply -f ${TEMPLATE_OUT}"

0 commit comments

Comments
 (0)