āĻāĻāĻŋ āĻ¸āĻŦāĻ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¯āĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻāĻŋāĻŽā§āĻ° āĻāĻŋāĻŽ āĻ˛āĻŋāĻĄ āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻŦāĻ˛ā§āĻāĻŋāĻ˛, āĻ¯āĻž āĻāĻā§āĻ° āĻĻāĻŋāĻ¨ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĻžāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŽāĻŋ āĻāĻāĻž āĻĒā§āĻ¸ā§āĻ. āĻĒā§āĻ°āĻžāĻ¯āĻŧ 20 āĻŽāĻŋāĻ¨āĻŋāĻ āĻĒāĻ°ā§, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻ˛, āĻāĻžāĻ°āĻŖ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŽāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŦā§āĻāĻ°āĻŖ. āĻāĻ°āĻ āĻāĻ¯āĻŧā§āĻ āĻāĻ¨ā§āĻāĻž āĻĒāĻ°ā§... āĻ āĻŋāĻ āĻāĻā§, āĻāĻĒāĻ¨āĻŋ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻā§ āĻāĻāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻā§...
āĻāĻŽāĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻŽāĻŋ āĻŦā§āĻļ āĻ āĻ˛āĻ¸ (āĻāĻŽāĻŋ āĻāĻŋ āĻāĻāĻž āĻāĻā§ āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°āĻŋāĻ¨āĻŋ? āĻ¨āĻž?), āĻāĻŦāĻ āĻāĻ āĻ¸āĻ¤ā§āĻ¯ āĻ¯ā§ āĻĻāĻ˛ā§āĻ° āĻ¨ā§āĻ¤ā§āĻ¤ā§āĻŦā§āĻ° āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŋāĻāĻ/āĻ¸āĻŋāĻĄāĻŋ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻŽāĻŋ āĻā§āĻŦā§āĻāĻŋāĻ˛āĻžāĻŽ: āĻ¤āĻžāĻā§ āĻŽā§āĻ¤āĻžāĻ¯āĻŧā§āĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ āĻ¯āĻ¤āĻāĻž āĻ¸ā§ āĻāĻžāĻ¯āĻŧ! āĻāĻŽāĻžāĻ° āĻāĻāĻāĻž āĻā§āĻ¤ā§āĻ āĻŽāĻ¨ā§ āĻĒāĻĄāĻŧāĻ˛: āĻāĻāĻāĻ¨ āĻŽāĻžāĻ¨ā§āĻˇāĻā§ āĻāĻāĻāĻž āĻŽāĻžāĻ āĻĻāĻžāĻ āĻāĻŦāĻ āĻ¸ā§ āĻāĻāĻĻāĻŋāĻ¨ āĻāĻžāĻŦā§; āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻā§ āĻĢā§āĻĄ āĻāĻ˛ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¸ā§ āĻ¸āĻžāĻ°āĻž āĻā§āĻŦāĻ¨ āĻāĻžāĻāĻ¯āĻŧāĻžāĻ¨ā§ āĻšāĻŦā§āĨ¤ āĻāĻŦāĻ āĻāĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ āĻāĻžāĻā§āĻ° āĻā§āĻļāĻ˛ āĻā§āĻ˛ā§āĻ¨, āĻ¯āĻž āĻā§āĻŦā§āĻ°ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯ā§āĻā§āĻ¨ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸āĻŽā§āĻŦāĻ˛āĻŋāĻ¤ āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻ¤ā§ āĻ¯ā§āĻā§āĻ¨ āĻŽāĻžāĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§ ENV (āĻāĻŽāĻžāĻ° āĻĻāĻžāĻĻāĻž, āĻāĻāĻāĻ¨ āĻĢāĻŋāĻ˛ā§āĻ˛āĻāĻŋāĻ¸ā§āĻ, āĻ āĻ¤ā§āĻ¤ā§ āĻāĻāĻāĻ¨ āĻāĻāĻ°ā§āĻāĻŋ āĻļāĻŋāĻā§āĻˇāĻ, āĻāĻāĻ¨ āĻ¤āĻžāĻāĻ° āĻŽāĻ¨ā§āĻĻāĻŋāĻ°ā§āĻ° āĻĻāĻŋāĻā§ āĻāĻā§āĻ˛ āĻā§āĻ°āĻžāĻ¤ā§āĻ¨ āĻāĻŦāĻ āĻāĻ āĻŦāĻžāĻā§āĻ¯āĻāĻŋ āĻĒāĻĄāĻŧāĻžāĻ° āĻĒāĻ°ā§ āĻāĻŽāĻžāĻ° āĻĻāĻŋāĻā§ āĻā§āĻŦ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¤āĻžāĻāĻžāĻ¤ā§āĻ¨)āĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻ āĻ¨ā§āĻā§ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻ˛āĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽāĻŋ āĻļāĻŋāĻā§āĻāĻŋ:
- āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ā§ āĻāĻžāĻāĻ°āĻŋ āĻĨā§āĻā§ āĻŦāĻž āĻ āĻ¨ā§āĻ¯ āĻāĻžāĻāĻ°āĻŋ āĻĨā§āĻā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§āĻ¨;
- āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ āĻāĻā§āĻ¨ā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻĨā§āĻā§ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨āĻ¸ā§āĻ˛ (āĻā§āĻ˛āĻžāĻāĻĄ āĻļā§āĻ˛) āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§āĻ¨;
- Google Kubernetes āĻāĻā§āĻāĻŋāĻ¨ā§ āĻāĻžāĻā§āĻ° āĻāĻžāĻĒ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻāĻŽāĻŋ, āĻ
āĻŦāĻļā§āĻ¯āĻ, āĻāĻŋāĻā§āĻāĻž āĻ
āĻ¸ā§āĨ¤ āĻāĻāĻž āĻ§āĻ°ā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¯ā§ Google āĻā§āĻ˛āĻžāĻāĻĄā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ
āĻŦāĻāĻžāĻ āĻžāĻŽā§āĻ° āĻ
āĻ¨ā§āĻ¤āĻ¤ āĻ
āĻāĻļ āĻāĻā§, āĻāĻŦāĻ āĻ¸ā§āĻāĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ GCP āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻāĻā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻ¨ā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻž āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻāĻŋ āĻāĻŽāĻžāĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻžāĻ°āĻŖāĻž āĻĒāĻ¤ā§āĻ°āĻ. āĻāĻŽāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¨ā§āĻ āĻ˛āĻŋāĻāĻ¤ā§ āĻāĻžāĻ: āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ, āĻāĻŽāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ¨āĻ¤āĻžāĻŽ āĻ¨āĻž āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ, āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻāĻŋ āĻ°ā§āĻĄāĻŋāĻŽā§āĻĄ āĻā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻ¤āĻžāĻ āĻāĻŽāĻŋ āĻāĻāĻŋāĻā§ āĻ āĻāĻļā§ āĻā§āĻāĻ˛ āĻāĻ°ā§āĻāĻŋāĻ˛āĻžāĻŽ āĻāĻŦāĻ āĻ āĻŦāĻļā§āĻˇā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻŦāĻ āĻ¯āĻžāĻ¤ā§ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§, āĻāĻŽāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋ āĻāĻ°ā§āĻāĻŋ āĻ¤āĻž āĻā§āĻ˛ā§ āĻā§āĻ˛ā§, āĻāĻŽāĻžāĻā§ āĻāĻŦāĻžāĻ° āĻā§āĻāĻ°ā§ āĻā§āĻāĻ°ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž āĻāĻŦāĻ āĻāĻāĻ¸āĻžāĻĨā§ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž, āĻāĻŽāĻŋ āĻ¨āĻŋāĻā§āĻ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¤āĻžāĻ°āĻŖāĻžāĻ° āĻļā§āĻ āĻ˛āĻŋāĻāĻŋāĨ¤
āĻĻāĻžāĻŦāĻŋ āĻĒāĻ°āĻŋāĻ¤ā§āĻ¯āĻžāĻā§: 1. āĻ¨ā§āĻāĻāĻŋ "āĻ¨āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯", āĻā§āĻŽāĻŋāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻāĻžāĻ˛ āĻ āĻā§āĻ¯āĻžāĻ¸ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯ āĻ¨āĻ¯āĻŧ. āĻāĻŽāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§ "āĻāĻāĻŋ āĻāĻāĻāĻžāĻŦā§ āĻāĻ°āĻž āĻāĻžāĻ˛ āĻšāĻ¤" āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻĒāĻĄāĻŧā§ āĻā§āĻļāĻŋāĨ¤
2. āĻ¯āĻĻāĻŋ āĻ¨ā§āĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻā§āĻ¤ āĻ āĻāĻļāĻāĻŋāĻā§ āĻ˛āĻŦāĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§, āĻāĻŽāĻžāĻ° āĻāĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨ā§āĻā§āĻ° āĻŽāĻ¤ā§, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻŦāĻ˛ āĻ˛āĻŦāĻŖā§āĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĨ¤
āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ā§ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻāĻžāĻā§āĻ° āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻĒā§āĻ°ā§āĻŦāĻžāĻāĻžāĻ¸: āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻāĻžāĻ āĻāĻĒāĻĄā§āĻ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§? āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ˛āĻŋāĻā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻžāĻ¨!
āĻāĻŽāĻŋ āĻāĻ¤ā§āĻ¤āĻ°: āĻāĻŽāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻ āĻ˛āĻ¸, āĻ¤āĻžāĻ°āĻž āĻ¯āĻāĻ¨ āĻ āĻāĻŋāĻ¯ā§āĻ āĻāĻ°ā§ āĻ¤āĻāĻ¨ āĻāĻŽāĻŋ āĻāĻāĻž āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŋ āĻ¨āĻž: āĻŽāĻŋāĻļāĻž, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻŦāĻŋāĻĒāĻ°ā§āĻ¯āĻ¸ā§āĻ¤ āĻšāĻā§āĻā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ˛ā§ āĻā§āĻā§! āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨, āĻāĻŦāĻ āĻāĻŋāĻā§ āĻāĻžāĻ¸ā§āĻ āĻ˛āĻā§āĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ¨āĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻžāĻāĻĒā§ āĻāĻā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻŽāĻŋ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻĻāĻā§āĻˇāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ°āĻ¤ā§ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŋāĨ¤ āĻ¯āĻĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻž āĻĨā§āĻā§ āĻŦāĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻŽāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨āĻāĻŋ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻŋāĨ¤
āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻžāĻāĻŋ āĻšāĻ˛: āĻāĻŽāĻ°āĻž āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ, āĻ¯ā§āĻāĻžāĻ¨ā§, āĻāĻžāĻ˛ā§ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻŽāĻ°āĻž āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ ENV, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻŋ āĻ§āĻžāĻ°āĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°ā§ āĻāĻŦāĻ āĻ§āĻžāĻ°āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻ ā§āĻ˛ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸ā§āĻāĻžāĻ¨ āĻĨā§āĻā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĻāĻŋāĻā§ āĻāĻŋāĻāĻŦāĻžāĻ° āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻžāĻā§āĻ° āĻāĻžāĻĒ āĻāĻžāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¸āĻšāĨ¤
āĻāĻŽāĻ°āĻž āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ā§ āĻāĻžāĻāĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦ āĻ¨āĻž, āĻāĻāĻŋ āĻ āĻĢ-āĻāĻĒāĻŋāĻāĨ¤ āĻāĻŽāĻ°āĻž āĻ§āĻ°ā§ āĻ¨ā§āĻŦ āĻ¯ā§ āĻāĻžāĻ¸ā§āĻ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĨ¤ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨: āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻ¤ā§āĻ¸ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯āĻžāĻ° āĻāĻāĻāĻŋ āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻŦā§āĻ§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻĒāĻāĻ¨ā§āĻĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻāĻžāĻ¸ā§āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻ˛āĻā§āĻ° āĻ¨āĻžāĻŽ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ BUILD_VERSION, āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§ āĻŦāĻžāĻ¸ āĻāĻ°āĻŦ āĻ¨āĻž. āĻ¤āĻŦā§ āĻāĻ° āĻāĻ¤ā§āĻ¸ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻāĻŋ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻĻā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻāĨ¤
āĻ¯ā§ āĻ āĻ¨ā§āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨ā§āĻ. āĻĻā§āĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻŽāĻ¨ā§ āĻāĻ˛:
- āĻ°āĻŋāĻŽā§āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¯āĻž āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ āĻ¤āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ āĻĢāĻžāĻ° āĻāĻ°ā§;
- āĻ°āĻŋāĻŽā§āĻ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°ā§āĻ¨ (āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻŋ JFrog āĻāĻ°ā§āĻāĻŋāĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ, āĻ¯āĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¨āĻ¯āĻŧ)āĨ¤
āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ āĻ°āĻŋāĻŽā§āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ API
āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻŋāĻ¤ āĻāĻŽā§āĻāĻžāĻ° āĻāĻ¤āĻŋāĻšā§āĻ¯ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻŽāĻŋ āĻĻā§āĻ°ā§āĻ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŦāĨ¤
āĻāĻŽāĻŋ āĻ¨āĻŋāĻā§āĻā§ āĻĒā§āĻ°āĻĨāĻŽ āĻ
āĻ¨ā§āĻā§āĻā§āĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ
āĻāĻļā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻ
āĻ¨ā§āĻŦāĻžāĻĻā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦ
Jenkins āĻāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŽā§āĻļāĻŋāĻ¨-āĻĒāĻžāĻ āĻ¯ā§āĻā§āĻ¯ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ API āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ <âĻ> āĻ°āĻŋāĻŽā§āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻāĻāĻŋ REST-āĻāĻ° āĻŽāĻ¤ā§ āĻļā§āĻ˛ā§āĻ¤ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¨ āĻāĻāĻ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¨ā§āĻ, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ URL āĻ¯ā§āĻŽāĻ¨ ".../āĻāĻĒāĻŋāĻāĻ/", āĻā§āĻĨāĻžāĻ¯āĻŧ "..." āĻŽāĻžāĻ¨ā§ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ API āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ
āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ¯ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻāĻāĻŋāĻ° āĻāĻĨāĻž āĻŦāĻ˛āĻāĻŋ āĻ¤āĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build
, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻ āĻāĻžāĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ API whistles āĻ āĻāĻĒāĻ˛āĻŦā§āĻ§ http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/
āĻāĻ°āĻĒāĻ°ā§, āĻāĻāĻāĻĒā§āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻā§āĨ¤ āĻāĻ¸ā§āĻ¨ XML-āĻ āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻŋ, āĻ¯ā§āĻšā§āĻ¤ā§ API āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻ˛ā§āĻ¨ āĻļā§āĻ§ā§ āĻ¸āĻŦ āĻāĻžāĻā§āĻ° āĻ°āĻžāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ¤ā§ āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻž āĻ¯āĻžāĻ. āĻāĻŽāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻŽāĻžāĻŦā§āĻļā§āĻ° āĻ¨āĻžāĻŽā§ āĻāĻā§āĻ°āĻšā§ (āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ¨āĻžāĻŽ) āĻāĻŦāĻ āĻāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ (āĻĢāĻ˛):
http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]
āĻāĻāĻž āĻāĻŋ āĻāĻžāĻ āĻāĻ°ā§?
āĻāĻāĻ¨ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻ°āĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ āĻ¯āĻž āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧ SUCCESS āĻāĻŋ. āĻāĻ° āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ &āĻŦāĻžāĻĻ āĻĻāĻŋāĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨ā§āĻ° āĻĒāĻžāĻĨ āĻĒāĻžāĻ¸ āĻāĻ°āĻŦ āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ¨ āĻ¨āĻ¯āĻŧ SUCCESS āĻāĻŋ. āĻšā§āĻ¯āĻž āĻšā§āĻ¯āĻž. āĻāĻāĻāĻŋ āĻĄāĻŦāĻ˛ āĻ¨ā§āĻ¤āĻŋāĻŦāĻžāĻāĻ āĻāĻāĻāĻŋ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ. āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻā§āĻ°āĻšā§ āĻ¨āĻ¯āĻŧ āĻāĻŽāĻ¨ āĻ¸āĻŦāĻāĻŋāĻā§ āĻŦāĻžāĻĻ āĻĻāĻŋāĻ:
http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result!='SUCCESS']
āĻ¸āĻĢāĻ˛āĻĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ
āĻ āĻŋāĻ āĻāĻā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ¸ā§āĻ¨ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻŋ āĻ¯ā§ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ°āĻā§ āĻĒā§āĻ°āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻ°ā§āĻ¨āĻŋ (āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻāĻāĻ¨āĻ āĻŽāĻŋāĻĨā§āĻ¯āĻž āĻŦāĻ˛ā§ āĻ¨āĻž!) āĻāĻŦāĻ "āĻ āĻ¸āĻĢāĻ˛"āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĻ¨:
http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result='SUCCESS']
āĻ
-āĻ¸āĻĢāĻ˛āĻĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ
āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° āĻĨā§āĻā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž
āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻā§. āĻāĻŽāĻŋ āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ API āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻāĻŋ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŋāĨ¤ āĻ āĻŋāĻ āĻāĻā§, āĻāĻžāĻ°āĻŖ āĻ¯āĻĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻāĻ° āĻ āĻ°ā§āĻĨ āĻšāĻ˛ āĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻ¯ā§āĻŽāĻ¨, āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻšāĻ˛ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¸ā§āĻā§āĻ°ā§āĻāĨ¤ āĻ˛āĻžāĻāĻ āĻ āĻŋāĻ āĻāĻā§, āĻāĻ¸ā§āĻ¨ āĻ¤āĻžāĻā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻā§ āĻā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŽāĻ°āĻž āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°āĻāĻŋ āĻāĻžāĻ°ā§āĻ˛, āĻā§āĻ°ā§āĻĒ āĻāĻŦāĻ awk āĻāĻ°āĻŦāĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ āĻāĻ¯āĻŧāĻžāĻ¨āĻ˛āĻžāĻāĻ¨āĻžāĻ°ā§ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ¸ā§āĻĒāĻ¯āĻŧāĻ˛āĻžāĻ°ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ āĻ˛āĻžāĻāĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻĄ
āĻ
āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻĻā§āĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨: āĻāĻŽāĻŋ āĻšā§āĻĄāĻžāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒāĻžāĻ¸ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° āĻĨā§āĻā§ āĻāĻŽāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ, āĻāĻŦāĻ āĻāĻŽāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻŽāĻžāĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¸ā§āĻā§āĻ˛āĻŋāĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻŋāĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻ¤āĻž āĻāĻŦāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ
āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°ā§āĻ¨:
curl -H "X-JFrog-Art-Api:VeryLongAPIKey" -s http://arts.myre.po/artifactory/awesomeapp/ | sed 's/a href=//' | grep "$(date +%b)-$(date +%Y)|$(date +%b --date='-1 month')-$(date +%Y)" | awk '{print $1}' | grep -oP '>K[^/]+' )
āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ā§ āĻāĻžāĻ āĻāĻŦāĻ āĻāĻžāĻā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻŽāĻ°āĻž āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻā§āĻ¸ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻ¸ā§āĻ¨ āĻāĻāĻ¨ āĻāĻžāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¯āĻžāĻ. āĻāĻŽāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻŋāĻ˛ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻžāĻ¸ā§āĻā§ āĻāĻāĻāĻŋ āĻ§āĻžāĻĒ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻžāĨ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ "āĻ¸āĻĢāĻ˛" āĻšāĻ˛ā§ āĻ¯ā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻ¸āĻŽāĻžāĻŦā§āĻļ āĻāĻžāĻ¸ā§āĻ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻā§āĻ˛ā§āĻ¨ āĻāĻŦāĻ āĻā§āĻŦ āĻ¨ā§āĻā§ āĻ¸ā§āĻā§āĻ°ā§āĻ˛ āĻāĻ°ā§āĻ¨. āĻŦā§āĻ¤āĻžāĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨: āĻŦāĻŋāĻ˛ā§āĻĄ āĻ§āĻžāĻĒ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ -> āĻļāĻ°ā§āĻ¤āĻžāĻ§ā§āĻ¨ āĻ§āĻžāĻĒ (āĻāĻāĻ). āĻ§āĻžāĻĒ āĻ¸ā§āĻāĻŋāĻāĻ¸ā§, āĻļāĻ°ā§āĻ¤ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸, āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ SUCCESS āĻāĻŋ, āĻ¸āĻĢāĻ˛ āĻšāĻ˛ā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻļā§āĻ˛ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨.
āĻāĻŦāĻ āĻāĻāĻ¨ āĻŽāĻāĻžāĻ° āĻ
āĻāĻļāĨ¤ āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻžāĻā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§āĨ¤ XML āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĨ¤ āĻ āĻĒāĻĨ āĻ§āĻ°ā§ http://ĐŋŅŅŅ-Đ´Đž-СадаĐŊиŅ/config.xml
āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻĒā§āĻ¯āĻŧā§āĻā§āĻ¨ āĻ¸ā§āĻāĻŋāĻā§ āĻāĻŦāĻžāĻ° āĻ°āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨, āĻāĻŽāĻ°āĻž āĻāĻĒāĻ°ā§ āĻ¸āĻŽā§āĻŽāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ BUILD_VERSION?
āĻāĻ¸ā§āĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻāĻāĻŦāĻžāĻ° āĻĻā§āĻā§āĻ¨āĨ¤ āĻļā§āĻ§ā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻāĻŋ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻ§āĻ°āĻ¨ā§āĻ°āĨ¤
āĻ¸ā§āĻĒāĻ¯āĻŧāĻ˛āĻžāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ.
āĻāĻĒāĻ¨āĻžāĻ° config.xml āĻāĻŖā§āĻĄāĻāĻŋ āĻāĻāĻ āĻ°āĻāĻŽ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻŦāĻžāĻĻā§ āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻ¨āĻ āĻ
āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤
āĻ¤ā§āĻŽāĻŋ āĻāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤? āĻāĻāĻŋāĻ, āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛āĻŋāĻāĻŋ āĻ¯āĻž āĻŦāĻŋāĻ˛ā§āĻĄāĻāĻŋ āĻ¸āĻĢāĻ˛ āĻšāĻ˛ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻŦā§, āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻŦā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻāĻāĻŋāĻ¤ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ˛āĻŋāĻāĻŦā§ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻāĻŋāĻā§ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§āĨ¤ āĻšā§āĻ¯āĻžāĻ. āĻ¸ā§āĻāĻž āĻ āĻŋāĻ. XML-āĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ˛āĻŋāĻā§āĻ¨ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ°āĻ¯āĻŧā§āĻā§ (āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻšāĻŦā§, āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ˛āĻā§āĻā§āĻ° āĻĒāĻ°ā§)āĨ¤ āĻāĻŽāĻŋ āĻāĻžāĻ¨āĻŋ āĻĒā§āĻĨāĻŋāĻŦā§āĻ¤ā§ āĻāĻāĻ¨ā§ āĻ°ā§āĻā§āĻ˛āĻžāĻ° āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻā§āĻ° āĻāĻā§āĻ¤ āĻāĻā§āĨ¤ āĻāĻŽāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¨āĻāĨ¤ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨
āĻ¸ā§āĻĒāĻ¯āĻŧāĻ˛āĻžāĻ°ā§āĻ° āĻ āĻ§ā§āĻ¨ā§, āĻāĻŽāĻŋ āĻ¸ā§āĻ āĻā§āĻĄāĻāĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŋ āĻ¯āĻž āĻāĻĒāĻ°ā§āĻ° āĻā§āĻ°āĻŽāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§āĨ¤
āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° āĻĨā§āĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ˛āĻŋāĻā§āĻ¨
#!/bin/bash
############## ĐĄĐēĐ°ŅиваĐĩĐŧ ĐēĐžĐŊŅиĐŗ
curl -X GET -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml -o appConfig.xml
############## ĐŖĐ´Đ°ĐģŅĐĩĐŧ и СаĐŊОвО ŅОСдаĐĩĐŧ xml-ŅĐģĐĩĐŧĐĩĐŊŅ Đ´ĐģŅ ŅĐŋиŅĐēĐ° вĐĩŅŅиК
xmlstarlet ed --inplace -d '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' appConfig.xml
xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]' --type elem -n a appConfig.xml
xmlstarlet ed --inplace --insert '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a' --type attr -n class -v string-array appConfig.xml
############## ЧиŅĐ°ĐĩĐŧ в ĐŧĐ°ŅŅив ŅĐŋиŅĐžĐē вĐĩŅŅиК иС ŅĐĩĐŋОСиŅĐžŅиŅ
readarray -t vers < <( curl -H "X-JFrog-Art-Api:Api:VeryLongAPIKey" -s http://arts.myre.po/artifactory/awesomeapp/ | sed 's/a href=//' | grep "$(date +%b)-$(date +%Y)|$(date +%b --date='-1 month')-$(date +%Y)" | awk '{print $1}' | grep -oP '>K[^/]+' )
############## ĐиŅĐĩĐŧ ĐŧĐ°ŅŅив ŅĐģĐĩĐŧĐĩĐŊŅ Са ŅĐģĐĩĐŧĐĩĐŊŅĐžĐŧ в ĐēĐžĐŊŅиĐŗ
printf '%sn' "${vers[@]}" | sort -r |
while IFS= read -r line
do
xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' --type elem -n string -v "$line" appConfig.xml
done
############## ĐĐģĐ°Đ´ĐĩĐŧ ĐēĐžĐŊŅиĐŗ вСад
curl -X POST -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml --data-binary @appConfig.xml
############## ĐŅивОдиĐŧ ŅайОŅĐĩĐĩ ĐŧĐĩŅŅĐž в ĐŋĐžŅŅĐ´ĐžĐē
rm -f appConfig.xml
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ āĻĨā§āĻā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻ° āĻŽāĻ¤ā§ āĻ āĻ˛āĻ¸ āĻšāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻĒāĻ¯āĻŧāĻ˛āĻžāĻ°ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻāĻ āĻā§āĻĄ, āĻ¤āĻŦā§ āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž:
āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ āĻĨā§āĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ˛āĻŋāĻā§āĻ¨
āĻļā§āĻ§ā§ āĻāĻāĻŋ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨: āĻāĻŽāĻžāĻ° āĻ¸āĻŽāĻžāĻŦā§āĻļā§āĻ° āĻ¨āĻžāĻŽ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŽ āĻ¨āĻŽā§āĻŦāĻ° āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¨āĻŽā§āĻŦāĻ° āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤, āĻāĻāĻāĻŋ āĻā§āĻ˛āĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻĨāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, awk āĻ
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ
āĻāĻļ āĻā§āĻā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻ¨āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ
āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻāĻ āĻ˛āĻžāĻāĻ¨āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
#!/bin/bash
############## ĐĄĐēĐ°ŅиваĐĩĐŧ ĐēĐžĐŊŅиĐŗ
curl -X GET -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml -o appConfig.xml
############## ĐŖĐ´Đ°ĐģŅĐĩĐŧ и СаĐŊОвО ŅОСдаĐĩĐŧ xml-ŅĐģĐĩĐŧĐĩĐŊŅ Đ´ĐģŅ ŅĐŋиŅĐēĐ° вĐĩŅŅиК
xmlstarlet ed --inplace -d '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' appConfig.xml
xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]' --type elem -n a appConfig.xml
xmlstarlet ed --inplace --insert '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a' --type attr -n class -v string-array appConfig.xml
############## ĐиŅĐĩĐŧ в ŅĐ°ĐšĐģ ŅĐŋиŅĐžĐē вĐĩŅŅиК иС Jenkins
curl -g -X GET -u username:apiKey 'http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_build/api/xml?tree=allBuilds[displayName,result]&exclude=freeStyleProject/allBuild[result!=%22SUCCESS%22]&pretty=true' -o builds.xml
############## ЧиŅĐ°ĐĩĐŧ в ĐŧĐ°ŅŅив ŅĐŋиŅĐžĐē вĐĩŅŅиК иС XML
readarray vers < <(xmlstarlet sel -t -v "freeStyleProject/allBuild/displayName" builds.xml | awk -F":" '{print $2}')
############## ĐиŅĐĩĐŧ ĐŧĐ°ŅŅив ŅĐģĐĩĐŧĐĩĐŊŅ Са ŅĐģĐĩĐŧĐĩĐŊŅĐžĐŧ в ĐēĐžĐŊŅиĐŗ
printf '%sn' "${vers[@]}" | sort -r |
while IFS= read -r line
do
xmlstarlet ed --inplace --subnode '/project/properties/hudson.model.ParametersDefinitionProperty/parameterDefinitions/hudson.model.ChoiceParameterDefinition[name="BUILD_VERSION"]/choices[@class="java.util.Arrays$ArrayList"]/a[@class="string-array"]' --type elem -n string -v "$line" appConfig.xml
done
############## ĐĐģĐ°Đ´ĐĩĐŧ ĐēĐžĐŊŅиĐŗ вСад
curl -X POST -u username:apiKey http://jenkins.mybuild.er/view/AweSomeApp/job/AweSomeApp_k8s/config.xml --data-binary @appConfig.xml
############## ĐŅивОдиĐŧ ŅайОŅĐĩĐĩ ĐŧĐĩŅŅĐž в ĐŋĐžŅŅĐ´ĐžĐē
rm -f appConfig.xml
āĻ¤āĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻāĻāĻžāĻŦā§, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻ˛ā§āĻāĻž āĻā§āĻĄāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻĨāĻžāĻā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¸āĻš āĻāĻāĻāĻŋ āĻĄā§āĻ°āĻĒ-āĻĄāĻžāĻāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻāĻŋ āĻ¸ā§āĻĒāĻ¯āĻŧāĻ˛āĻžāĻ°ā§āĻ° āĻ¨ā§āĻā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻā§āĻ° āĻŽāĻ¤ā§āĨ¤
āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž
āĻ¯āĻĻāĻŋ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻāĻŋ āĻāĻĒāĻŋ-āĻĒā§āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ āĻļā§āĻ˛ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨āĨ¤
āĻā§āĻ˛āĻžāĻāĻĄ āĻļā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻŽāĻ°āĻž āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻ āĻāĻā§. āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĄā§āĻ˛āĻŋāĻāĻžāĻ°āĻŋ āĻā§āĻ˛ āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ Ansible āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤ āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻ¯āĻāĻ¨ āĻāĻ¨āĻā§āĻāĻ¨āĻžāĻ° āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻĨāĻž āĻāĻ¸ā§, āĻ¤āĻāĻ¨ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŽāĻžāĻĨāĻžāĻ¯āĻŧ āĻāĻ¸ā§: āĻĄāĻāĻžāĻ°ā§ āĻĄāĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨, āĻ ā§āĻ¯āĻžāĻ¨āĻ¸āĻŋāĻŦāĻ˛ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻĄāĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨ āĻŦāĻž āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ā§āĻ° āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¨ā§āĻ°āĻŦ āĻĨāĻžāĻāĻ¤ā§ āĻ°āĻžāĻāĻŋ āĻšāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻŽāĻ¨ā§ āĻāĻā§?
āĻāĻŽāĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ: āĻ āĻŋāĻ āĻāĻā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨āĻ¸ā§āĻ˛ā§ "āĻŦāĻžāĻā§āĻ¸ā§āĻ° āĻŦāĻžāĻāĻ°ā§" āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻā§āĻ¨ āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻāĻ°āĻŦā§āĻ¨? āĻāĻāĻž āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻ°āĻžāĻā§āĻ¨, āĻ¤āĻžāĻ āĻ¨āĻž? āĻāĻŽāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻāĻžāĻ, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸ā§āĻāĻžāĻ¨ āĻĨā§āĻā§ āĻāĻŋāĻāĻŦāĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĨ¤ āĻ¤āĻĻā§āĻĒāĻ°āĻŋ, Google āĻāĻ° āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻŦ āĻ¸āĻŽā§āĻĻā§āĻ§ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻ¤āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻĒāĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻāĻžāĻŦ āĻĢā§āĻ˛āĻŦā§āĨ¤
āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨āĻ¸ā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻ° āĻĻā§āĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨: āĻāĻŋāĻā§āĻ˛āĻžāĻāĻĄ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ āĻ§āĻŋāĻāĻžāĻ° āĻā§āĻāĻ˛ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻĒāĻŋāĻāĻ VM āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ āĻāĻāĻ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻ¯āĻžāĻ°āĻž āĻā§āĻāĻ˛ āĻā§āĻ˛āĻžāĻāĻĄ āĻĨā§āĻā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻā§āĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯
Google āĻ¤āĻžāĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ¨ā§āĻāĻžāĻ°ā§āĻā§āĻāĻŋāĻ āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧā§ˇ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻĢāĻŋ āĻŽā§āĻļāĻŋāĻ¨ āĻĨā§āĻā§āĻ āĻāĻ¨āĻ¸ā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§, āĻ¯āĻĻāĻŋ āĻāĻāĻŋ *nix āĻāĻ˛āĻŽāĻžāĻ¨ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻ¤ā§ āĻ¨āĻŋāĻā§āĻ āĻāĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻ˛ āĻĨāĻžāĻā§āĨ¤
āĻ¯āĻĻāĻŋ āĻāĻ āĻ¨ā§āĻā§āĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽāĻžāĻ° āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ˛āĻŋāĻā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻā§āĻ āĻĒāĻžāĻ, āĻāĻŽāĻŋ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻ˛āĻŋāĻāĻŦāĨ¤
āĻ āĻ§āĻŋāĻāĻžāĻ° āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻāĻ¯āĻŧā§āĻŦ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§āĨ¤
- VM āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨ āĻ¯ā§āĻāĻžāĻ¨ āĻĨā§āĻā§ āĻāĻĒāĻ¨āĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨āĻ¸ā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻšāĻŦā§āĻ¨āĨ¤
- āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻŦāĻŋāĻļāĻĻ āĻā§āĻ˛ā§āĻ¨ āĻāĻŦāĻ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž.
- āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻāĻā§āĻŦāĻžāĻ°ā§ āĻ¨ā§āĻā§, āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸ā§āĻā§āĻĒ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ˛āĻžāĻāĻĄ API-āĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸.
āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ
- āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻāĻŦāĻžāĻ° VM āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻļā§āĻˇ āĻšāĻ˛ā§, SSH āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻŋ āĻā§āĻ¨āĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻā§āĨ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨:
gcloud alpha cloud-shell ssh
āĻāĻāĻāĻŋ āĻ¸āĻĢāĻ˛ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ āĻŽāĻ¤ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāĻ¯āĻŧ
GKE āĻ¤ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻ¨
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž IaC (āĻā§āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§) āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻāĻŋ, āĻ¤āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻāĻžāĻ° āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻāĻŋāĻ-āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻž āĻāĻāĻĻāĻŋāĻā§āĨ¤ āĻāĻŦāĻ kubernetes āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ yaml āĻĢāĻžāĻāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻāĻžāĻ¸ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ¨āĻŋāĻā§āĻ āĻā§āĻĄā§āĻ° āĻŽāĻ¤āĨ¤ āĻāĻāĻž āĻāĻĒāĻžāĻ° āĻĨā§āĻā§āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻāĻŽāĻŋ āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻā§āĻāĻŋ, āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻžāĻāĻŋ āĻšāĻ˛:
- āĻāĻŽāĻ°āĻž āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ BUILD_VERSION āĻāĻŦāĻ, āĻāĻā§āĻāĻŋāĻāĻāĻžāĻŦā§, āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ¨ āĻ¯āĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§ ENV.
- āĻāĻŋāĻ āĻĨā§āĻā§ āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨āĨ¤
- āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ yaml āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
- āĻāĻŽāĻ°āĻž āĻāĻ āĻĻā§āĻāĻŋ āĻĢāĻžāĻāĻ˛āĻ scp āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻŋāĨ¤
- āĻāĻŽāĻ°āĻž āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻĒā§āĻļ āĻāĻ°āĻŋ
- āĻāĻŽāĻ°āĻž āĻāĻŋāĻāĻŦāĻžāĻ°ā§ āĻ˛ā§āĻĄ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻŋāĨ¤
āĻāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ. āĻāĻāĻŦāĻžāĻ° āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻž āĻļā§āĻ°ā§ ENV, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ§āĻ°ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ¨ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§: PARAM1 и PARAM2. āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻ¸ā§āĻ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻŋ, āĻāĻžāĻāĻĒ āĻāĻ°āĻŋ - āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°.
āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻ¸āĻš yaml āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ āĻĒā§āĻ°āĻ¤āĻŋāĻ§ā§āĻŦāĻ¨āĻŋ āĻ¨āĻĨāĻŋāĻ¤ā§. āĻāĻāĻž āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻĒāĻ¨āĻžāĻ° āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ā§ āĻāĻā§ PARAM1 и PARAM2āĻ¯ā§ āĻ˛ā§āĻĄ āĻ¨āĻžāĻŽ āĻšāĻŦā§ awesomeapp, āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻ āĻĒāĻĨ āĻ§āĻ°ā§ gcr.io/awesomeapp/awesomeapp-$BUILD_VERSIONāĻ¯ā§āĻāĻžāĻ¨ā§ $BUILD_VERSION āĻļā§āĻ§ā§ āĻĄā§āĻ°āĻĒ-āĻĄāĻžāĻāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻĻāĻ˛ āĻ¤āĻžāĻ˛āĻŋāĻāĻž
touch deploy.yaml
echo "apiVersion: apps/v1" >> deploy.yaml
echo "kind: Deployment" >> deploy.yaml
echo "metadata:" >> deploy.yaml
echo " name: awesomeapp" >> deploy.yaml
echo "spec:" >> deploy.yaml
echo " replicas: 1" >> deploy.yaml
echo " selector:" >> deploy.yaml
echo " matchLabels:" >> deploy.yaml
echo " run: awesomeapp" >> deploy.yaml
echo " template:" >> deploy.yaml
echo " metadata:" >> deploy.yaml
echo " labels:" >> deploy.yaml
echo " run: awesomeapp" >> deploy.yaml
echo " spec:" >> deploy.yaml
echo " containers:" >> deploy.yaml
echo " - name: awesomeapp" >> deploy.yaml
echo " image: gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION:latest" >> deploy.yaml
echo " env:" >> deploy.yaml
echo " - name: PARAM1" >> deploy.yaml
echo " value: $PARAM1" >> deploy.yaml
echo " - name: PARAM2" >> deploy.yaml
echo " value: $PARAM2" >> deploy.yaml
āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸ āĻāĻā§āĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ° āĻāĻŋāĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ˛āĻĢāĻž āĻā§āĻ˛āĻžāĻāĻĄ-āĻļā§āĻ˛ āĻāĻ¸āĻāĻ¸āĻāĻāĻ āĻāĻ¨ā§āĻāĻžāĻ°ā§āĻā§āĻāĻŋāĻ āĻŽā§āĻĄ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¨āĻ¯āĻŧ, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĒāĻžāĻ āĻžāĻ --āĻāĻĻā§āĻļ.
āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻžāĻ¨ā§ āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻšā§āĻŽ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°āĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°āĻŋ:
gcloud alpha cloud-shell ssh --command="rm -f Dockerfile"
scp āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ˛āĻžāĻāĻĄ āĻāĻ¨āĻ¸ā§āĻ˛ā§āĻ° āĻšā§āĻŽ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§ āĻ¸āĻĻā§āĻ¯ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ°āĻžāĻā§āĻ¨:
gcloud alpha cloud-shell scp localhost:./Dockerfile cloudshell:~
āĻāĻŽāĻ°āĻž āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻŋ, āĻā§āĻ¯āĻžāĻ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻĒā§āĻļ āĻāĻ°āĻŋ:
gcloud alpha cloud-shell ssh --command="docker build -t awesomeapp-$BUILD_VERSION ./ --build-arg BUILD_VERSION=$BUILD_VERSION --no-cache"
gcloud alpha cloud-shell ssh --command="docker tag awesomeapp-$BUILD_VERSION gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION"
gcloud alpha cloud-shell ssh --command="docker push gcr.io/awesomeapp/awesomeapp-$BUILD_VERSION"
āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ āĻāĻžāĻ āĻāĻ°āĻŋāĨ¤ āĻ āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻ¨ā§āĻā§āĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ˛ā§āĻĒāĻ¨āĻŋāĻ āĻ¨āĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻāĻŋ āĻāĻā§ (awsm- āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°) āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ¨āĻžāĻŽ (āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤-āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ), āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤
gcloud alpha cloud-shell ssh --command="rm -f deploy.yaml"
gcloud alpha cloud-shell scp localhost:./deploy.yaml cloudshell:~
gcloud alpha cloud-shell ssh --command="gcloud container clusters get-credentials awsm-cluster --zone us-central1-c --project awesome-project &&
kubectl apply -f deploy.yaml"
āĻāĻŽāĻ°āĻž āĻāĻžāĻ¸ā§āĻāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ, āĻāĻ¨āĻ¸ā§āĻ˛ āĻāĻāĻāĻĒā§āĻ āĻā§āĻ˛āĻŋ āĻāĻŦāĻ āĻ§āĻžāĻ°āĻāĻāĻŋāĻ° āĻ¸āĻĢāĻ˛ āĻ¸āĻŽāĻžāĻŦā§āĻļ āĻĻā§āĻāĻ¤ā§ āĻāĻļāĻž āĻāĻ°āĻŋāĨ¤
āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ
āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻĒāĻžāĻ¤ā§āĻ°ā§āĻ° āĻ¸āĻĢāĻ˛ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ
āĻāĻŽāĻŋ āĻāĻā§āĻāĻžāĻā§āĻ¤āĻāĻžāĻŦā§ āĻ¸ā§āĻāĻŋāĻ āĻāĻĒā§āĻā§āĻˇāĻž āĻĒā§āĻ°āĻŦā§āĻļ. āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻžāĻ°āĻŖā§: āĻāĻāĻŦāĻžāĻ° āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§āĻ¨ āĻāĻžāĻā§āĻ° āĻāĻžāĻĒ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§, āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻĨāĻžāĻāĻŦā§, āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¤āĻā§āĻ˛āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻ¨āĻž āĻā§āĻ¨āĨ¤ āĻ āĻŋāĻ āĻāĻā§, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻāĻāĻŋ āĻāĻ¤āĻŋāĻšāĻžāĻ¸ā§āĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§āĨ¤
āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§
āĻāĻĒāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ āĻ¨āĻž, āĻ¤āĻŦā§ āĻā§āĻŦāĻ˛ āĻā§āĻ¨āĻāĻŋāĻ¨ā§āĻ¸, āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻŋāĻāĻ˛āĻŋāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŋāĻā§ āĻāĻžāĻ°āĻŖā§ āĻāĻŽāĻŋ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŋ āĻ¨āĻžāĨ¤ āĻ āĻŋāĻ āĻāĻā§, āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§, āĻāĻŽāĻŋ āĻā§āĻŦāĻ˛ āĻšāĻ¤āĻžāĻļāĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻ¤āĻžāĻĻā§āĻ° āĻ āĻŦāĻ˛āĻŽā§āĻŦāĻ¨ āĻāĻ°āĻŋāĨ¤
āĻāĻŦāĻ āĻāĻŽāĻŋ āĻļā§āĻ§ā§ āĻāĻŽāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻŦāĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ. āĻāĻĒāĻ°ā§āĻ° āĻĒāĻžāĻ ā§āĻ¯āĻāĻŋ āĻļā§āĻ°ā§āĻ¤ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻŋ āĻ¯ā§ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻāĻ°ā§āĻāĻŋ āĻ¤āĻž āĻāĻžāĻ āĻāĻ°ā§ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧāĻāĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻ¯āĻžāĻ°āĻž āĻ¤āĻžāĻ° āĻŽāĻ¤ā§, āĻĄā§āĻāĻĒāĻ¸ā§ āĻŽā§āĻā§āĻ āĻāĻ¯āĻŧāĻžāĻ¨āĻ āĻ¨ā§āĻāĻĄāĻŧā§ āĻ¨āĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻ° āĻ
āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ
āĻ¨ā§āĻ¤āĻ¤ āĻāĻžāĻāĻā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§ āĻ¤āĻŦā§ āĻāĻŽāĻŋ āĻā§āĻļāĻŋ āĻšāĻŦāĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com