áá»áœááºá¯ááºááá¯á·ááẠTrue Engineering á០áá¯á¶ážá áœá²áá°áá¬áá¬áá»á¬ážááá¯á· á¡ááºááááºáá»á¬áž á ááºáááºáááŒáẠáá±ážááá¯á·ááŒááºážá¡ááœáẠáá¯ááºáááºážá ááºááᯠáá»ááŸááºáá¬ážááŒá®áž á€á¡ááœá±á·á¡ááŒá¯á¶ááᯠáá»áŸáá±ááá¯áá«áááºá
á áááºáááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ážá áœá²áá°á¡ááœáẠá¡áœááºááá¯ááºážá áá áºááᯠáá®ááœááºáá²á·ááŒá®áž áá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯áẠKubernetes á¡á á¯á¡áá±ážááœáẠá¡áá¯á¶ážáá»áá²á·áááºá ááá¯á¡áá« áá»áœááºá¯ááºááá¯á·á áááºáá¯ááºáááºááá¯áž ááŒáá·áºáá¬ážáá±á¬ ááŒá±ááŸááºážáá»ááºááẠá¡ááŒáá·áºá¡á á¡ááá¯á¡áá»á±á¬áẠá¡áááºáááŒáẠááŒáá·áºáá»ááºááŸá¯ áá¯ááºáááºážá ááºááᯠáááºááŸááºáá±ážáá¬ážááá·áº áá±á¬ááºáááºá ááááºáá±á¬ááºážááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááœá¬ážáá«ááŒá®á áááºážááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠáá¯ááºáá¯ááºáááºáááºážáá»ááºááá¯á· ááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž áá±ážááá¯á·ááŒááºážá¡áá»áááº-á á»á±ážááœááºááá¯á· á¡ááŸáááºááŒáŸáá·áºáá²á·áááºá
á€áá±á¬ááºážáá«ážááœáẠContinuous Deployment (CD) áá¯ááºáááºážá ááºá á¡ááá·áºáá»á¬ážá¡á¬ážáá¯á¶áž ááá¯á·ááá¯áẠáá±á¬ááºáááºá platform ááá¯á· á¡ááºááááºáá»á¬ážáá±ážááá¯á·ááŒááºážá¡ááŒá±á¬ááºáž ááœá±ážááœá±ážáá«áááºá
- á€áá¯ááºáááºážá ááºááẠáááºááá¯á·á áááºááááºážá
- áá±á¬ááºáááºá Git repository ááŸáá·áº áááºáá°ááŒá¯ááŒááºážá
- backend ááŸáá·áº frontend áá»á¬áž á á¯áá±ážááŸá¯á
- á ááºážáááºááŸá¯áááºáááºážáá»ááºááœáẠá¡ááá¯á¡áá»á±á¬áẠá¡áá¯á¶ážáá»ááá®áá±ážááŸááºáž ááŒáá·áºáá»ááºááŒááºážá
- Prod ááá¯á· á¡ááá¯á¡áá»á±á¬áẠááŒáá·áºáá»ááºááŸá¯á
áá»áœááºá¯ááºááá¯á·ááẠáááºážáá áºáá»áŸá±á¬ááºááœáẠá áá áºááá·áºááœááºážááŸá¯á¡áá±ážá áááºáá»á¬ážááᯠáá»áŸáá±áá«áááºá
1. CD ááá¯á áááºáá«á
á ááºáááºáááŒáẠááŒáá·áºáá»ááºááŒááºážááẠáá»áœááºá¯ááºááá¯á·á Git repository á ááœááºááŸáááŸá¯áá¬áááœá²ááá¯á· developer á០á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááœááºážá¡á¬ážáá±ážááŒááºážááŒáá·áº á áááºáá«áááºá
áá»áœááºá¯ááºááá¯á·á á¡ááá®áá±ážááŸááºážááẠááá¯ááºáááá¯áá¬ážáá áºáááá¯áá¬áá áºáá¯áá±á«áºááœáẠáá¯ááºáá±á¬ááºáá±ááŒá®áž áááºážáá¡á áááºá¡ááá¯ááºážá¡á¬ážáá¯á¶ážááᯠááá¯ááŸá±á¬ááºáá¯á¶áá áºáá¯ááœáẠááááºážáááºážáá¬ážáááºá áááºážááŒá±á¬áá·áºá áááºážááá¯á·á¡áááºá០áá áºáá¯ááŒá±á¬ááºážáá²ááœá¬ážáá±á¬áºáááºáž microservices á¡á¬ážáá¯á¶ážááᯠá á¯áá±á¬ááºážááŒá®áž ááá·áºááœááºážáá¬ážáááºá
á¡ááŒá±á¬ááºážáááºážáá»á¬ážá áœá¬á¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠááá¯ááŸá±á¬ááºáá¯á¶áá áºáá¯ááŸáá áºááá·áº áá¯ááºáá±á¬ááºáááº-
- ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááœááºáá°ááŒááºáž - á¡ááá®áá±ážááŸááºážáááºáááºááŒáœá áœá¬ááœá¶á·ááŒáá¯ážáá±áá±á¬ááŒá±á¬áá·áºá áááºáááºáá¯ááºá¡á¬ážáá¯á¶ážááá¯áá áºááŒáá¯ááºáááºáááºážáá¯ááºáá±á¬ááºááá¯ááºáááºá
- á áá áºáá áºáá¯á¡áá±ááŒáá·áº á¡ááá®áá±ážááŸááºážááẠá ááºážáááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá»á±á¬áºááŒááºááŒá®áž áá±á¬ááºáááºááá¯ááºáá¯ááºááŸá¯áááºáááºážáá»ááºááá¯á· ááá¯á·áá±á¬ááºááŒá±á¬ááºážá¡á¬ááá¶ááá·áº CI/CD ááá¯ááºááá¯ááºážáá áºáá¯á
- áá»áœááºá¯ááºááá¯á·ááẠáá¬ážááŸááºážáá»á¬ážááœáẠááŸá¯ááºááœá±ážááŸá¯áá»á¬ážááᯠáááºááŸá¬ážáá±ážááẠ- áá»áœááºá¯ááºááá¯á·ááẠMicroservice áá¬ážááŸááºážáá»á¬ážá ááŒá±áá¯á¶ááᯠááááºážáááºážááŒá®áž Helm scripts áá»á¬ážááœáẠmicroservice áá áºáá¯á á®á¡ááœáẠáááºážáááœá²á·á ááºážáá¯á¶ááᯠáá±á¬áºááŒááẠáááá¯á¡ááºáá«á
2. áá±á¬ááºáááºáá¡áááºážá¡ááŒá áºáá¯ááºá Git repository ááŸáá·áº áááºáá°ááŒá¯ááŒááºážá
ááŒá¯áá¯ááºáá¬ážáá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááẠáá±á¬ááºáááºá Git repository ááŸáá·áº á¡ááá¯á¡áá»á±á¬áẠáááºáá°ááŒá¯áá«áááºá á¡ááá¯áá«áá¬áááœá²ááá¯ááœááºážáá¶ááŒá®ážáá±á¬ááºá áááºáá¯ááºáá±á¬ááºááŒá®ážáááºáááºáá¯ááºáá±á¬ááºáááºá¡áá¯á¶ážáá»ááŸá¯á¡á¬ážáááºáááºáá¯ááºáá±á¬ááºááá·áº application assembly ááá¯á€áá±áá¬ááœááºá á®á ááºáá¬ážáááºá áá¯ááºáááºážá ááºááŸá áºáá¯á áá¯á¶ážááẠGit repository á០áááºážááá¯á·á áááºáááºážáá»ááºááœáẠáá±á«ááºááœá¬ážáááºá
áá»áœááºá¯ááºááá¯á·ááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŸáá·áº á ááºážáááºááŸá¯áá»á¬ážá¡ááœáẠáá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯ááºáááºáááºážáá»ááºáá»á¬áž ááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº áá±á¬ááºáááºáááá¯ááŸá±á¬ááºáááºážááŸáá·áº ááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºááááá«á á€áááºááœááºáá»ááºáá»á¬ážá¡ááœáẠáá»áœááºá¯ááºááá¯á·á Git repository ááá¯á¡áá¯á¶ážááŒá¯ááẠ- áááºážááᯠáááºážááá¯á·á Git repository ááŸáá·áº áááºáá°ááŒá¯áá«áááºá áá±á¬á·ááºáá²áá±ážáá¬ážáá°ááẠáá»áœááºá¯ááºááá¯á·áááá¯ááŸá±á¬ááºááŸá¯áá¬áááœá²ááá¯á· ááá·áºáá»á±á¬áºáá±á¬áá¬áááœá²ááá¯á· ááŒá±á¬ááºážáá²áá±ážáá¬ážááá·áºá¡áá«ááœááºá GitLab ááẠá€á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá±á¬ááºáááºáᶠáá»ááºáá»ááºáž ááœááºážááá¯á·áá±ážáááºá
á¡á²áá«ááŒá®ážááẠá
ááºážáá±ážááœá²áá¯ááºááááºá áááºážááœáẠá¡ááá·áºáá»á¬ážá
áœá¬ áá«áááºáááº- áá±á¬ááºáááºážááŸáá·áº ááŸá±á·áááºáž áááºáááºááŸá¯á á
ááºážáááºááŒááºážááŸáá·áº áá¯ááºáá¯ááºááŒááºážááá¯á· áá±ážááá¯á·ááŒááºážá
3. áá±á¬ááºáááºážááŸáá·áº ááŸá±á·áááºážááᯠá á¯á ááºážááŒááºážá
backend ááŸáá·áº frontend ááá¯áááºáá±á¬ááºááŒááºážááẠGitLab Runner á áá áºááœááºáá¯ááºáá±á¬ááºááá·áºá¡ááŒáá¯ááºá¡áá¯ááºááŸá áºáá¯ááŒá áºáááºá áááºážááá°áááºáž á á¯áá±ážááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááẠáá°áá®áá±á¬ááá¯ááŸá±á¬ááºáááºážááœáẠáááºááŸááááºá
GitLab Runner ááẠááá¯á¡ááºáá±á¬ repository á០áá¯ááºááá¯áá°ááŒá®áž Java application build command ááŒáá·áº á
á¯á
ááºážááŒá®áž Docker registry ááá¯á· áá±ážááá¯á·áááºá á€áá±áá¬ááœáẠáá»áœááºá¯ááºááá¯á·ááẠbackend ááŸáá·áº frontend ááá¯á·ááᯠá
á¯á
ááºážááŒá®áž áá±á¬ááºáááºááááºááŒááºážááŸá repository áá
áºáá¯ááœáẠááá·áºáá¬ážáá±á¬ Docker áá¯á¶áá»á¬ážááᯠááá°ááá¯ááºáá«á Docker áá¯á¶áá»á¬ážááᯠá
á®áá¶ááá·áºááœá²ááẠáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯áááºá
áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááá¯á¶áá»á¬ážááá¬ážááŸááºážáá»á¬ážááᯠDocker ááœááºáá¯ááºáá±ááá·áº ááœááºááŸáááá·áºáá¬ážááŸááºážááŸáá·áº áááºáá°ááŒá¯áá«áááºá áá»á±á¬ááœá±á·áá±á¬áááºáááºááŸá¯á¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠááŒá¯ááŒááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá áœá¬ááŒá¯áá¯ááºáá¬ážáááº-
1. ááœááºááááºáá¬áá»á¬ážááᯠá ááºážáááºááŸá¯áááºáááºážáá»ááºááŸáá·áº áá¯ááºáá¯ááºááŸá¯áááºáááºážáá»ááºááŒá¬ážááœáẠááŒááºáááºáááºáá±á¬ááºááá¬ážáá«á áá°áá®áá±á¬ááœááºááááºáá¬ááẠá ááºážáááºááŸá¯áááºáááºážáá»ááºááœááºáá±á¬ ááŒááºáááºáááºáá±á¬ááºááŒááºážáááŸááá² áá¯ááºáá¯ááºááŸá¯ááœááºáá±á¬ áááºáááºáá»á¬ážá áááºáááºážáá»ááºááŒá±á¬ááºážáá²ááá¯ááºáá±á¬áá»á¬ážááŸáá·áº áááºáá±á¬ááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááŸáá·áº á¡áá¯ááºáá¯ááºááá¯ááºá á±ááẠááá·áºáááºáá»ááºáá»á¬ážááŒá¯áá¯ááºáá¬ážáá«áááºá
2. Helm ááŸáá áºááá·áº á¡ááá®áá±ážááŸááºážáá áºáá¯ááᯠá¡ááºááááºáá¯ááºáááºá áááºááẠáááºážááá¬ážááŸááºážááᯠáááºááŸááºááá«áááºá áá»áœááºá¯ááºááá¯á·ááẠbackendá frontend ááá¯áááºáá±á¬ááºááŒá®áž á¡ááá®áá±ážááŸááºážááᯠá¡ááºááááºáá¯ááºááẠ- á€á¡áá¬áá»á¬ážááẠááá°áá®áá±á¬á¡áá¯ááºáá¯á¶ážáá¯ááŒá áºáá±á¬ááŒá±á¬áá·áº áá±áá¬ááá¯ááºážááœáẠapplication ááá°áá®áá±á¬áá¬ážááŸááºážááá¯á¡áá¯á¶ážááŒá¯áááºá¡áá±ážááŒá®ážáá«áááºá áá»áœááºá¯ááºááá¯á·á K8S á¡á á¯á¡áá±ážááœá²á·á ááºážáá¯á¶ááŸáá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážááẠáá°áá®áá±á¬ Git ááá¯ááŸá±á¬ááºááŸá¯ááœáẠááŸááá±áá±á¬ááŒá±á¬áá·áº á€áá¯ááºáá±á¬ááºá áá¬á¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠGit ááŸááºáááºážá០áá±áá¬ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠcommand execution ááááºáá»á¬ážá០á¡ááá®áá±ážááŸááºážáá¬ážááŸááºážááᯠáááŸááá«áááºá
git describe --tags --abbrev=7
.
4. á ááºážáááºáááºáááºážáá»áẠ(UAT) ááá¯á· ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠá¡ááá¯á¡áá»á±á¬áẠááŒáá·áºáá»ááºááŒááºáž
á€áááºáá±á¬ááºááŸá¯ script ááá±á¬ááºáááºá¡ááá·áºááŸá¬ K8S á¡á á¯á¡áá±ážááᯠá¡ááá¯á¡áá»á±á¬áẠá¡ááºááááºáá¯ááºáááºááŒá áºáááºá á¡ááá®áá±ážááŸááºážáá áºáá¯áá¯á¶ážááᯠáááºáá±á¬ááºááŒá®áž áá á¹á ááºážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠDocker Registry ááá¯á· ááœáŸáá·áºáááºáá¬ážááŒááºážááŒá±á¬áá·áº ááŒá áºáá±á«áºáá«áááºá áááºážááŒá®ážáá±á¬ááºá á ááºážáááºáááºáááºážáá»áẠá¡ááºáááẠá áááºáááºá
á¡á
á¯á¡áá±ážá¡ááºááááºááᯠá
áááºá¡áá¯á¶ážááŒá¯áá±ááŒá®ááŒá
áºáááºá
áááºáááºááŸá¯ááŸáá·áºá¡áá° K8S á¡á á¯á¡áá±ážááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠáá»áœááºá¯ááºááá¯á· áá¶á·ááá¯ážáá±ážáá«áááºá ááá¯á·ááŒá±á¬áá·áºá áá±á¬ááºáá áºááá·áºááŸá¬ áááºážááᯠá¡ááºááááºáá¯ááºáááºááŒá áºáááº- configMapsá á¡áá¯á¶ážáá»ááŸá¯áá»á¬ážá áááºáá±á¬ááºááŸá¯áá»á¬ážá áá»áŸáá¯á·ááŸááºáá»ááºáá»á¬áž ááŸáá·áº áá»áœááºá¯ááºááá¯á·ááŒá±á¬ááºážáá²áá¬ážáá±á¬ á¡ááŒá¬áž K8S ááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá»á¬ážá
ááá¯á·áá±á¬áẠHelm ááẠá¡ááá®áá±ážááŸááºážá RollOut á¡ááºááááºááᯠá ááºážáááºááŸá¯áááºáááºážáá»ááºááœáẠáá¯ááºáá±á¬ááºáááºá á¡ááá®áá±ážááŸááºážááᯠáá¯ááºáá¯ááºááŸá¯ááœáẠá¡áá¯á¶ážáá»ááŒááºážáááŒá¯áá®á áá»áœááºá¯ááºááá¯á· á ááºážáááºáááºáááºážáá»ááºááœáẠááá·áºááœááºážáá¬ážáá±á¬ áá¯ááºáááºážá¡ááºá¹áá«áááºáá»á¬ážááᯠáá¯á¶ážá áœá²áá°áá»á¬ážááá¯ááºááá¯áẠá ááºážáááºááá¯ááºá á±ááẠáááºážááᯠáá¯ááºáá±á¬ááºáá«áááºá
5. Prod ááá¯á· ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠá¡ááá¯á¡áá»á±á¬áẠááŒáá·áºáá»ááºááŒááºážá
áá¯ááºáá¯ááºááŸá¯áááºáááºážáá»ááºááœáẠá¡ááºááááºáá áºáá¯ááᯠá¡áá¯á¶ážáá»áááºá áááºááẠGitLab ááœáẠááá¯ááºáá áºáá¯ááᯠááŸáááºááá¯ááºáá¯á¶ááŒáá·áº ááœááºááááºáá¬áá»á¬ážááᯠáá¯ááºáá¯ááºááŸá¯áááºáááºážáá»ááºááá¯á· áá»ááºáá»ááºáž ááá¯á·áá±á¬ááºáá±ážáááºááŒá áºáááºá
áá°áá®áá±á¬á¡ááá®áá±ážááŸááºážááẠááŒááºáááºáááºáá±á¬ááºááŒááºážáááŸááá² ááá°áá®áá±á¬áááºáááºážáá»ááºâá ááºážáááºááŸá¯ááŸáá·áº áá¯ááºáá¯ááºáá±ážâááœáẠáá¯ááºáá±á¬ááºááá¯ááºáááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááá®áá±ážááŸááºážááœáẠáááºááá·áºá¡áá¬ááá¯áá»áŸ ááŒá±á¬ááºážáá²ááŒááºážáááŸááá² áá°áá®áá±á¬áá á¹á ááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áᬠáá±á¬ááºáá»á¬ážááᯠááŒááºáááœáẠáááºááŸááºáá«áááºá
á¡ááá®áá±ážááŸááºážáááºáááºáá»á¬ážá ááá¯ááºáá»á±á¬áá®ááœá±ááŸááá±á¬ ááá·áºáááºáá±á¬ááºáááºááŸááºááŒááºážááŸá¬ á¡ááºááºáá®áá±ážááŸááºážááᯠáá¯ááºáá±á¬ááºááá·áº áááºáááºážáá»ááºá¡áá±á«áº áá°áááºáááºá áá»áœááºá¯ááºááá¯á·ááẠáááºáááºážáá»ááºáááºáááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŒááºáááá¯á·ááœáŸá±á·ááá¯ááºáá«ááŒá®- á¡áá¬á¡á¬ážáá¯á¶ážááᯠK8S ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááŸáá·áº Helm ááá·áºáááºáá»ááºáá»á¬ážááŸáá áºááá·áº ááá·áºáááºáá¬ážáá«áááºá Helm ááẠá ááºážáááºááŸá¯áááºáááºážáá»ááºááœáẠá ááºážáá±ážááœá²áá áºáá¯ááᯠááŒáá·áºáá»ááºáá±á¬á¡áá«á áááºážááœáẠá ááºážáááºááŸá¯áááºáááºáá»á¬ážááᯠáááºáá±á¬ááºá á±ááŒá®áž áá¯ááºáá¯ááºáááºáááºáá»á¬ážááᯠáá¯ááºáá¯ááºááŸá¯áááºáááºážáá»ááºááœáẠáááºáá±á¬ááºáááºá
á¡áááºáá²áá¯á¶ážá¡áá¬ááŸá¬ áááºáááºážáá»ááºá¡áá±á«áº áá°áááºá á¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº ááááºážááŸááºá¡á¬ážáá¯á¶ážááᯠááá·áºáááºáááºááŸááºáááºááŸáá·áº Helm á¡ááœáẠáááºáááºážáá»ááºááá¯ááºáᬠááááºážááŸááºáá»á¬ážááŸáá·áº áá±á¬áºááŒáá»ááº-ááœá²á·á ááºážáá¯á¶áá»á¬ážá¡ááŒá Ạáááºážááá¯á·ááᯠáá¬áá¬ááŒááºááá¯áááºááŒá áºáááºá
á¡ááá®áá±ážááŸááºážáááºáááºáá»á¬ážááẠáááºáááºážáá»ááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá áááºážááá¯á·ááááºááá¯ážáá»á¬ážááᯠGo templates áá»á¬ážá¡áá¯á¶ážááŒá¯á áá¯á¶á á¶áááááºááŒá¯áá¯ááºáá¬ážááá·áº K8S configmap ááᯠá¡áá¯á¶ážááŒá¯á ááœááºááááºáá¬áá»á¬ážááœáẠáááºááŸááºáá¬ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááá¯ááááºážá¡áááºá¡ááœáẠáááºáááºážáá»ááºááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ ááŒá±á¬ááºážáá²áááºááŸááºááŒááºážááᯠá€áá²á·ááá¯á·áá¯ááºáá±á¬ááºááá¯ááºáááº-
APP_EXTERNAL_DOMAIN: {{ (pluck .Values.global.env .Values.app.properties.app_external_domain | first) }}
.values.global.env - á€ááááºážááŸááºááẠáááºáááºážáá»áẠ(áá¯ááºáá¯ááºá á¡ááá·áºá UAT) á¡áááºááᯠááááºážáááºážáá¬ážáááºá
.values.app.properties.app_external_domain - á€ááááºážááŸááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠ.Values.yaml ááá¯ááºááœáẠááá¯áá»ááºáá±á¬ááá¯ááááºážááᯠáááºááŸááºáááºá
á¡ááá®áá±ážááŸááºážááᯠá¡ááºááááºáá¯ááºáá±á¬á¡áá«á Helm ááẠáá¯á¶á á¶áááááºáá»á¬ážá០configmap.yaml ááá¯ááºááᯠáááºáá®ážááŒá®áž á¡ááá®áá±ážááŸááºážá¡ááºááááºá áááºááá·áº áááºáááºážáá»ááºá¡áá±á«áº áá°áááºá APP_EXTERNAL_DOMAIN áááºááá¯ážááᯠá¡ááá¯ááŸááá±á¬áááºááá¯ážááŒáá·áº ááŒáá·áºáá±ážáááºá á€ááááºážááŸááºááᯠááœááºááááºáá¬ááœáẠáááºááŸááºááŒá®ážááŒá áºáááºá áááºážááᯠá¡ááá®áá±ážááŸááºážá០áááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áº á¡ááá®áá±ážááŸááºážáááºáááºážáá»ááºáá áºáá¯á á®ááẠá€ááááºážááŸááºá¡ááœáẠááá°áá®áá±á¬áááºááá¯ážáá áºáá¯ááŸááááºááŒá áºáááºá
áááŒá¬áá±ážáá®áá K8S á¡áá±á¬ááºá¡áá¶á·ááẠconfigMaps ááŸáá·áºáá¯ááºáá±á¬ááºááŒááºážá¡áá«á¡ááẠSpring Cloud ááœááºáá±á«áºáá¬áááº-
á á¯á á¯áá±á«ááºáž
ááá¯á·ááŒá±á¬áá·áº Continuous Deployment ááᯠconfigure áá¯ááºááŒá®áž á¡áá¯ááºáá¯ááºáá«áááºá á¡ááºááááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠááá¯ááºáá áºáá»ááºááŒáá·áº ááŒá áºáá±á«áºáá«áááºá áá¯ááºáá¯ááºáááºáááºážáá»ááºááá¯á· ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠáá±ážááá¯á·ááŒááºážááẠá¡ááá¯á¡áá»á±á¬ááºááŒá áºáááºá á¡áá±ážááŒá®ážáááºááŸá¬á á¡ááºááááºáá»á¬ážááẠá áá áºá¡á¬áž ááááºááá·áºá á±áá«á
á¡áá¬áááºá¡á á®á¡á ááºáá»á¬áž- á¡ááá¯á¡áá»á±á¬ááºáá±áá¬áá±á·á áºááŒá±á¬ááºážááœáŸá±á·ááŒááºážá
áá±áá¬áá±á·á áºááᯠá¡ááá·áºááŒáŸáá·áºáááºááŒááºážááŸáá·áº á€á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒááºáááºáá¯ááºáá±á¬ááºááẠááŒá áºááá¯ááºááŒá±ááᯠáá»áœááºá¯ááºááá¯á· á ááºážá á¬ážáá²á·áááºá áá±á¬ááºáá¯á¶ážááœááºá á¡ááá®áá±ážááŸááºážá ááá°áá®áá±á¬áá¬ážááŸááºážááŸá áºáá¯ááẠáá áºáá»áááºáááºážááœáẠáá¯ááºáá±á¬ááºáá±áá«áááº- á¡áá±á¬ááºážááẠá¡áá¯ááºáá¯ááºáá±ááŒá®áž á¡áá áºááẠáááºáá¬áá«áááºá áá¬ážááŸááºážá¡áá Ạá¡áá¯ááºáá¯ááºááŒá±á¬ááºáž áá±áá»á¬ááŸáᬠá¡áá±á¬ááºážááᯠááááºáá«áááºá áá±áá¬áá±á·á ẠááŒá±á¬ááºážááœáŸá±á·ááŒááºážááẠááá·áºá¡á¬áž á¡ááá®áá±ážááŸááºážá áá¬ážááŸááºážááŸá áºáá»áá¯ážá áá¯á¶ážááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºá á±ááá·áºáááºá
ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá±á¬áºáá¶á¡ááẠááá¯á·ááá¯áẠá¡ááŒá¬ážáá±áá¬ááᯠááá¯ážááŸááºážá áœá¬ ááŒá±á¬ááºážáá²ááááá«á ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·ááẠáá±á¬áºáá¶á¡áá áºááᯠáááºáá®ážááá¯ááºááŒá®áž áá±á¬áºáá¶áá±á¬ááºážá០á¡áá»ááºá¡áááºáá»á¬ážááᯠáááºážáá²ááá¯á· áá°ážáá°áᬠáá±áá¬ááᯠá¡ááºááááºáá¯ááºááá·áºá¡áá«ááœáẠá¡ááŒá¬ážáá±á¬áºáá¶áá áºáá¯ááœáẠáááºážááᯠáá°ážáá°ááŒá®áž á¡ááºááááºáá¯ááºááá·áº á¡á áá»áá¯ážáá»á¬ážááᯠáá±ážáá¬ážááá¯ááºáááºá á¡ááá®áá±ážááŸááºážá áá¬ážááŸááºážá¡áá áºááᯠá¡á±á¬ááºááŒááºá áœá¬ ááŒáá·áºáá»ááºááŒá®ážáá±á¬ááºá ááá¯á·á áºáááºááá·áº áá¶á·ááá¯ážááŸá¯áá¬áááŒá®ážáá±á¬ááºá áááá¯á¡ááºáá±á¬ áá±á¬áºáá¶áá±á¬ááºážááŸáá·áº áááá¯á¡ááºáá±á¬ á¡á áá»áá¯ážááᯠáá»ááºááá¯ááºáá«áááºá
á¡ááá®áá±ážááŸááºážááá¬ážááŸááºážá¡áá áºááẠááŸááºáááºá áœá¬á¡áá¯ááºááá¯ááºáá«áá áá±áá¬áá±á·á áºáááááºáá¬ážááŸááºážá¡áá«á¡ááẠááááºáá¬ážááŸááºážááá¯á· ááŒááºááŸáá·áºááá¯ááºáá«áááºá á¡ááá¯áá»á¯ááºá¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·áááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááẠááá·áºá¡á¬áž á¡ááá®áá±ážááŸááºážááá¬ážááŸááºážáá»á¬ážá áœá¬ááŸáá·áº áá áºááŒáá¯ááºáááºáá¯ááºáá±á¬ááºááá¯ááºá á±áááºááŒá áºáááºá
áá»áœááºá¯ááºááá¯á·ááẠK8S á¡áá¯ááºááŸáá
áºááá·áº áá±áá¬áá±á·á
áºááŒá±á¬ááºážááœáŸá±á·ááŒááºážááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááŒá®áž áááºážááᯠCD áá¯ááºáááºážá
ááºááœáẠáá±á«ááºážá
ááºážááẠá
á®á
ááºáá¬ážáá«áááºá ááŒá®ážáá±á¬á· áá®á¡ááœá±á·á¡ááŒá¯á¶ááᯠHabré ááŸá¬ áá»áááºážáá± áá»áŸáá±áá«áááºá
source: www.habr.com