ഓരോ പിൻ അഭ്യർത്ഥനയ്ക്കും പുതിയ അന്തരീക്ഷം
പങ്കിട്ട വേദി എല്ലാവരെയും മന്ദഗതിയിലാക്കും. പ്രിവ്യൂ പരിതസ്ഥിതികൾ അത് പരിഹരിക്കും, നിങ്ങൾ ചെലവ് നിയന്ത്രിക്കുകയാണെങ്കിൽ.
പങ്കിട്ട വേദി എല്ലാവരെയും മന്ദഗതിയിലാക്കും. പ്രിവ്യൂ പരിതസ്ഥിതികൾ അത് പരിഹരിക്കും, നിങ്ങൾ ചെലവ് നിയന്ത്രിക്കുകയാണെങ്കിൽ.

ഞാൻ ജോലി ചെയ്തിട്ടുള്ള എല്ലാ ടീമുകളിലും ഒരു "സ്റ്റേജിംഗ്" പരിസ്ഥിതി ഉണ്ടായിരുന്നു. സ്ലാക്കിലെ എല്ലാ ടീമുകളും ഒരേ സംഭാഷണം നടത്തി. "ആരാണ് സംയോജിപ്പിക്കാൻ വിന്യസിച്ചത്? "ഒരു മണിക്കൂറോളം നീയൊന്നും ചെയ്യരുത്, ഞാൻ എന്തോ പരീക്ഷിക്കുകയാണ്". "ഇനി വീണ്ടും സ്റ്റേജിംഗ് തകരാറിലായി, എന്തിനാണെന്ന് ആർക്കെങ്കിലും അറിയാമോ?"
പല ഡെവലപ്പർമാർക്കും ഒരു പൊതുവായ പരിസ്ഥിതി ഒരു കുടുക്ക് സൃഷ്ടിക്കുന്നു. പ്രിവ്യൂ പരിതസ്ഥിതികൾ ആ തടസ്സം ഇല്ലാതാക്കുന്നു.
ആശയം ലളിതമാണ്. ഒരു pull request തുറക്കുമ്പോൾ, ആ ബ്രാഞ്ചിനായി മാത്രം ആപ്ലിക്കേഷന്റെ ഒരു താൽക്കാലിക കോപ്പി പൈപ്പ്ലൈൻ സൃഷ്ടിക്കുന്നു, അതിന്റെ സ്വന്തം URL ഉപയോഗിച്ച് pr-142.preview.example.com. ഈ അഭ്യർത്ഥന ലയിപ്പിച്ചോ അടച്ചോ കഴിഞ്ഞാൽ, പരിസ്ഥിതി ഇല്ലാതാക്കപ്പെടും.
കുബർനെറ്റീസിൽ ഇത് നിർമ്മിക്കാൻ ചില സാധാരണ വഴികളുണ്ട്:
ഓരോ പിൻ അഭ്യർത്ഥനയ്ക്കും ഒരു നാമമേഖല. ഏറ്റവും ലളിതമായ രീതി. പൈപ്പ്ലൈൻ ഒരു നാമമേഖല സൃഷ്ടിക്കുന്നു, ബ്രാഞ്ചിന്റെ ഇമേജ് ടാഗ് ഉപയോഗിച്ച് ഹെൽം ചാർട്ട് വിന്യസിക്കുന്നു, കൂടാതെ പ്രിവ്യൂ ഹോസ്റ്റ്നാമത്തിനായി ഒരു പ്രവേശനമോ HTTP റൂട്ടോ സജ്ജമാക്കുന്നു.
പിൾ അഭ്യർത്ഥന ജനറേറ്ററുള്ള അര് ഗോ സിഡി ആപ്ലിക്കേഷന് സെറ്റ്സ്. അര് ഗോ സിഡി നിങ്ങളുടെ റിപ്പോസിറ്ററി നിരീക്ഷിക്കുന്നു ഓരോ തുറന്ന പിൾ അഭ്യർത്ഥനയ്ക്കും ഒരു ആപ്ലിക്കേഷൻ സ്വപ്രേരിതമായി സൃഷ്ടിക്കുന്നു, PR അടയ്ക്കുമ്പോൾ അത് നീക്കം ചെയ്യുന്നു. കസ്റ്റം സ്ക്രിപ്റ്റുകളില്ല.
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: shop-previews
spec:
generators:
- pullRequest:
github:
owner: my-org
repo: shop
requeueAfterSeconds: 120
template:
metadata:
name: 'shop-pr-{{number}}'
spec:
project: previews
source:
repoURL: https://github.com/my-org/shop
targetRevision: '{{head_sha}}'
path: deploy/chart
helm:
parameters:
- name: image.tag
value: '{{head_sha}}'
- name: ingress.host
value: 'pr-{{number}}.preview.example.com'
destination:
server: https://kubernetes.default.svc
namespace: 'shop-pr-{{number}}'
syncPolicy:
automated: { prune: true }
syncOptions: [CreateNamespace=true]
വിർച്വൽ ക്ലസ്റ്ററുകള് (വി ക്ലസ്റ്റര്). CRD കൾ പോലുള്ള ക്ലസ്റ്റർ തലത്തിലുള്ള വിഭവങ്ങൾ ടീമുകൾക്ക് ആവശ്യമുള്ളപ്പോൾ, ഓരോ pull അഭ്യർത്ഥനയ്ക്കും ഒരു വിർച്വൽ ക്ലസ്റ്റർ ഓരോ തവണയും ഒരു യഥാർത്ഥ ക്ലസ്റ്ററിന് പണം നൽകാതെ പൂർണ്ണമായ ഒറ്റപ്പെടൽ നൽകുന്നു.
ഏറ്റവും നല്ല അവലോകന അഭിപ്രായം "ഞാൻ അത് ക്ലിക്കുചെയ്തു, അത് പ്രവർത്തിക്കുന്നു", ഒപ്പം പ്രിവ്യൂ പരിതസ്ഥിതികൾ ലയിപ്പിക്കുന്നതിന് മുമ്പ് അത് സാധ്യമാക്കുന്നു.
ആപ്ലിക്കേഷൻ വിന്യസിക്കുക എന്നത് എളുപ്പമുള്ള കാര്യമാണ്. കട്ടിയുള്ള ചോദ്യങ്ങൾ:
*.preview.example.com ഒരു വൈഡ്കാർഡ് സർട്ടിഫിക്കറ്റ് (സെർട്ട് മാനേജർ ഇത് കൈകാര്യം ചെയ്യുന്നു) പുതിയ ഹോസ്റ്റ്നാമങ്ങൾ തൽക്ഷണം പ്രവർത്തിപ്പിക്കുന്നു.പ്രിവ്യൂ പരിതസ്ഥിതികൾ വിലകൂടിയതായി മാറുന്നു. അമ്പതു തുറന്ന പിൻ അഭ്യർത്ഥനകൾ നിങ്ങളുടെ ആപ്പിന്റെ അമ്പതു കോപ്പികളാണ്.
സഹായിക്കുന്നവ
കുറച്ച് ഡെവലപ്പർമാരെക്കൂടി സമാന്തരമായി പ്രവർത്തിക്കുന്ന ടീമുകൾക്ക്, അതെ. അവലോകനങ്ങൾ മെച്ചപ്പെടുന്നു, പരിശോധന നേരത്തെ നടക്കുന്നു, "ആര് സ്റ്റേജിംഗ് തകർത്തു" എന്ന സന്ദേശങ്ങൾ അപ്രത്യക്ഷമാകുന്നു. ഓരോ PR നും ഒരു നെയിംസ്പെയ്സ് ഉപയോഗിച്ച് തുടങ്ങുക, ഡാറ്റ ചേർക്കുക, ശരിയായി വൃത്തിയാക്കുക, അവിടെ നിന്ന് വളരുക.
എന്റെ അഭിപ്രായം: ഓരോ മാറ്റത്തിനും അതിന്റേതായ ചെറിയ ലോകം കൊടുക്കുക. നിങ്ങളുടെ ടീം സ്റ്റേജിംഗ് കാത്തിരിക്കുന്നതില് സമയം നഷ്ടപ്പെടുത്തുന്നതിനേക്കാൾ വിലകുറഞ്ഞതാണ്.
ഡെസ്ലി