Comments (1)
Overview
ESP Environment Background/Facts
- ESP clusters are designed to be immutable and throwaway
- The certs on a cluster expire after 90 days
- You can have more than one cluster backing a site (KA, TDC, etc)
- A separate repo holds the training portal and workshop definitions and it is not publicly accessible
- Manual access to the cluster is unique for each cluster and also tied to people's personal accounts
- There is no concept of environment in the design, so the version of a workshop cannot be different for example between production and staging.
- The
training-portal.yaml
is only one per cluster
Design Assumptions
TrainingPortal
The training portal YAML is global to the cluster contains from this perspective only a list of the workshops hosted on that cluster. A training portal in a course repo does not map into this. Realistically the frequency of a change or addition to the training portal yaml is very infrequent, usually when a course is created. In fact the workshop IDs for all the labs/workshops in a course can even be pre-populated in the training portal to reduce churn on the file.
Essentially the training portal YAML is never modified manually outside of the internal ESP GTIX infrastructure repo.
Workshop
The workshop artifact has the potential to change a little more frequently, but mostly during local development and not as much once in production or during testing. Therefore this again has an update frequency int he internal ESP GTIX infrastructure repo that is low. However there is one very important line in the workshop file that needs to change between environments... The image of the files
server that runs the html hosted lab instructions.
- name: files
image: ${REGISTRY_HOST}/template-replaceme:${IMAGE_TAG}
Since this has to be the same across environments, the safest thing to do is default it to a prod
or similar tag. That way when a new production cluster is deployed it is guaranteed to have the correct version of the lab running.
Approach
The overall approach works towards the following:
- Favors an approach where production has zero to low risk of accidentally having an outage or incorrect version
- Leverages that the frequency of which training portal and workshop definition additions/changes and are low volume compared to lab instruction changes.
- Accepts that non-prod environments may temporarily for a brief period may be out of sync with what version is desired of workshops
GitHub Action workflows
Release Created
Tag Release Image
Deploy to Environment ${X}
from backlog.
Related Issues (20)
- FAQ: What is a Secure Software Supply Chain?
- KA Tour - NA KA Intro to Containers and Kubernetes HOT 1
- Contribution Guide Updates HOT 5
- Educates/Workshops Deployment and Administration Documentation HOT 3
- Intro to Operators - Lesson 1 HOT 4
- Intro to Operators - Lesson 3 HOT 9
- Intro to Operators - Lesson 4 HOT 9
- Content Proposal Process Test
- document lab author workflow deployment to ESP/KA
- upgrade ESP cluster to use latest
- Intro to Operators - lab 04 has order reference problems
- Roadmap Ideas - 2022 Q1/Q2
- VMworld 2022 Talk
- add copy button to code blocks for intro/foundations HOT 3
- upgrade lab clusters to use new provisioners
- Code blocks overflow horizontal page layout HOT 2
- Navigating back to the Learning Path's main page from Course or Lesson pages
- `Getting Started with Kubernetes` course is duplicated on VCCL
- Repeated text in section "5.4: Probes" of the lab-pod-and-container-configurations
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from backlog.