Skip to main content

Step 6. Initial rollout

Now that McDougals has tested Edgecell at their headquarters, they are now ready to test it at multiple stores.

Placements

They pick 20 stores in Texas. They create a placement file for each location. This time they add more labels to provide information about the store that can be used for application deployment and configuration.

The 20 placement files look like this one.

apiVersion: edgecell.io/v1
kind: Placement
metadata:
name: 3-mile-n-conway
namespace: mcdougals.com
uuid: 28c3487e-08bc-4bd1-bc1b-adbfc69336d4
labels:
env: prod
isstore: true
sales: XS
posVersion: '2.1'
region: 2
candeliver: false
canpickup: true
city: Palmhurst
country: US
hasolopass: false
id: 112830
isavailable: true
state: TX
utcoffset: -6
zip: '78573'
annotations:
telephone: (956) 583-2239
address: |-
McDougals Express
220 East 3 Mile Rd
Palmhurst, TX 78573
url: https://mcdougals.com/store/3-mile-n-conway
spec:
nodes:
- type: edgecell.io/aa1
localnetwork:
type: dhcp
location:
longitude: -98.316177
latitude: 26.257374

Schedules

Each placement has a Schedule object since they are all being shipped directly to the stores.

apiVersion: edgecell.io/v1
kind: Schedule
metadata:
name: rolloutW20-1
namespace: mcdougals.com
spec:
week: 2023W20
placements:
- mcdougals.com/3-mile-n-conway
telephone: (956) 583-2239
address: |-
McDougals Express
220 East 3 Mile Rd
Palmhurst, TX 78573

It is not as tedious as it may look. The VSCode extention generates most of the files with a command.

Release

Once the nodes are shipped by the Provider and installed by the Deployer, they are ready to deploy apps to all locations. The following Release should deploy the dashboard app to all 20 stores.

apiVersion: edgecell.io/v1
kind: HelmRelease
metadata:
name: mcdashboard-tx
namespace: mcdougals.com
spec:
interval: 5m
selector:
matchLabels:
state: TX
isstore: true
env: prod
chart:
spec:
chart: mcdashboard
version: '>=1.0.0'
sourceRef:
kind: HelmRegistry
name: mcdashboard
namespace: mcdougals.com
interval: 1m
values:
replicaCount: 2