เดเดฆเตเดฏเด เดตเดจเตเดจเดคเต เดเดจเตเดคเดพเดฃเต - เดเตเดดเดฟเดฏเต เดฎเตเดเตเดเดฏเต? เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเตผ-เดเดธเต-เดเตเดกเต เดเดจเตเดจ เดฒเตเดเดจเดคเตเดคเดฟเดจเต เดคเดฟเดเดเตเดเตเด เดตเดฟเดเดฟเดคเตเดฐเดฎเดพเดฏ เดคเตเดเดเตเดเด, เด
เดฒเตเดฒเต?
เดเดฐเต เดฎเตเดเตเด เดเดจเตเดคเดพเดฃเต?
เดฎเดฟเดเตเดเดชเตเดชเตเดดเตเด, เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเตผ-เดเดธเต-เดเตเดกเต (IaC) เดเดจเตเดจเดคเต เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเดฑเดฟเดจเต เดชเตเดฐเดคเดฟเดจเดฟเดงเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดชเตเดฐเดเตเดฏเดพเดชเดจ เดฎเดพเตผเดเดฎเดพเดฃเต. เด เดคเดฟเตฝ เดนเดพเตผเดกเตโเดตเตเดฏเตผ เดญเดพเดเดคเตเดคเต เดจเดฟเดจเตเดจเต เดเดฐเดเดญเดฟเดเตเดเต เดธเตเดซเตเดฑเตเดฑเตโเดตเตเดฏเตผ เดเตเตบเดซเดฟเดเดฑเตเดทเดจเดฟเตฝ เด เดตเดธเดพเดจเดฟเดเตเดเตเดจเตเดจ เด เดตเดธเตเดฅเดฏเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดเตเดเตพ เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเต. เด เดคเดฟเดจเดพเตฝ IaC เดเดคเดฟเดจเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต:
- เดฑเดฟเดธเตเดดเตเดธเต เดชเตเดฐเตเดตเดฟเดทเตป. เดเดต VMs, S3, VPC เดฎเตเดคเดฒเดพเดฏเดตเดฏเดพเดฃเต. เดเตเดฒเดฟเดเตเดเตเดณเตเดณ เด
เดเดฟเดธเตเดฅเดพเดจ เดเดชเดเดฐเดฃเดเตเดเตพ:
เดเตเดฑเดซเตเด ะธเดเตเดฒเตเดกเต เดซเตเตผเดฎเตเดทเตป . เดธเตเดซเตเดฑเตเดฑเตเดตเตเดฏเตผ เดเตเตบเดซเดฟเดเดฑเตเดทเตป . เด เดเดฟเดธเตเดฅเดพเดจ เดเดชเดเดฐเดฃเดเตเดเตพ:เด เดธเดพเดงเตเดฏเด , เดทเตเดซเต, เดฎเตเดคเดฒเดพเดฏเดต.
เดเดคเต เดเตเดกเตเด git เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดเดณเดฟเดฒเดพเดฃเต. เดคเดพเดฎเดธเดฟเดฏเดพเดคเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดชเดฟเดจเตเดจเตเดเต เดเตเด เดฒเตเดกเตผ เด เดตเดฐเต เดเตเดฐเดฎเดชเตเดชเตเดเตเดคเตเดคเดฃเดฎเตเดจเตเดจเต เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเตเด. เด เดตเตป เดฑเตเดซเดพเดเตเดฑเตเดฑเตผ เดเตเดฏเตเดฏเตเด. เด เดคเต เดเดฟเดฒ เดเดเดจ เดเดฃเตเดเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เดเดคเต เดจเดฒเตเดฒเดคเดพเดฃเตเดจเตเดจเต เด เดตเตป เดเดพเดฃเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เด
เดคเต เดเดคเดฟเดจเดเด เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดเต เดเดจเตเดจเดคเตเด เดจเดฒเตเดฒเดคเดพเดฃเต
เดฎเตเดเตเด เดเดตเดฟเดเต เดจเดฟเดจเตเดจเต เดตเดจเตเดจเต?
เด เดคเดฟเดจเดพเตฝ เดเดเตเดเตพ เดเตเดฐเดฎเตเดฃ เดชเตเดฐเดงเดพเดจ เดเตเดฆเตเดฏเดคเตเดคเดฟเดฒเตเดเตเดเต เด เดเตเดเตเดเตเดจเตเดจเต.
เดเดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เดจเดฟเดเตเดเดณเตเตพเดชเตเดชเตเดเตเดฏเตเดณเตเดณ เดฎเดฑเตเดฑเต เดถเตเดเดฐเดฃเดเตเดเดณเตเดเต เดเดเดจ เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดถเตเดเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเดเตเดเตพ เดเดฐเดเดญเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, GitOps-เดจเตเดฑเต เดญเดพเดเดฎเดพเดฏเดฟ, เดจเดฟเดเตเดเตพ CI เดเตเตผเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต, เด เดคเตเดตเดดเดฟ เดฎเดพเดฑเตเดฑเดเตเดเตพ เดธเตเดตเดฏเดฎเตเดต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเด.
Git เดเดคเตเดตเดฐเต เดธเตเดทเตเดเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ?
- เดเดคเต เดเดเตเดเดจเต Git-เตฝ เดธเดเดญเดฐเดฟเดเตเดเดพเด?
- CI เดเดเตเดเดจเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเด?
- IaC เดเดชเดฏเตเดเดฟเดเตเดเตเด เดเตเดฌเตผเดจเตเดฑเตเดฑเดฟเดฒเตเด เดชเตเดฒเตเด เดจเดฎเตเดฎเตพ Gitlab เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเดฒเต?
- เดเดชเตเดชเด เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเด GitLab เดฑเดฃเตเดฃเตผ?
- เดเตเดฒเตเดกเต เดชเตเดฐเตเดตเตเดกเดฑเดฟเดฒเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดฟเดจเตเดฑเต เดเดพเดฐเตเดฏเดฎเต?
เดเดฆเตเดฏเด เดตเดจเตเดจเดคเต เดเดจเตเดคเดพเดฃเต: เดเดพเตป เดเดจเตเดฑเต เดเตเดกเต เด เดชเตโเดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจ GitLab เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดจเดฟเดเตเดเต เดเดคเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ GitLab เดตเตเดฃเดฎเตเดจเตเดจเต เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดกเต?
เดฎเตเดเตเดเดเดณเตเดณเตเดณ เดเดฟเดเตเดเตป
ยซเดเดฏเดพเดเตเดเตเดเตป 3 เดเดฐเต เดฆเดฟเดจเตเดธเดฑเดฟเดจเตเดชเตเดชเด" [เดเดฑเดตเดฟเด ]
เดเดฐเต เดเตเดฒเตเดกเต เดชเตเดฐเตเดตเตเดกเดฑเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดตเดฟเดญเดตเด เดชเดพเดเดเด เดเตเดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเด
เด เดเตเดเต เดกเดฟ.เดเตผ.
เดเดฐเตเดธเดฎเดฏเด เดเดฐเต เดเตเดฎเดฟเตฝ เดเตเดฐเดพเตป เดเดดเดฟเดฏเตเดฎเต?
$ export MY_SELECTEL_TOKEN=<token>
$ curl https://gitlab.com/chicken-or-egg/mks/make/-/snippets/2002106/raw | bash
เดเตเดฐเตเดตเดเตพ:
- my.selectel.ru-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด เดเตเดเตเดฃเตเดเต;
- เด เดเตเดเตเดฃเตเดเต เดเตเดเตเดเตบ;
- เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเต เดเดดเดฟเดตเตเดเตพ;
- เดนเตเตฝเด เดเดดเดฟเดตเตเดเตพ;
- เดเตเดฑเดพเดซเตเด เดเดดเดฟเดตเตเดเตพ;
- เดนเตเตฝเด เดเดพเตผเดเตเดเต GitLab;
- เดนเตเตฝเด เดเดพเตผเดเตเดเต GitLab เดฑเดฃเตเดฃเตผ.
เดชเดพเดเดเดคเตเดคเดฟเดจเต:
- เดชเดพเดจเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต MY_SELECTEL_TOKEN เดจเตเดเตเด my.selectel.ru.
- เดเดฐเต เด เดเตเดเตเดฃเตเดเต เดเตเดเตเดเตบ เดเตเดฐเดพเตปเดธเตเดซเตผ เดเตเดฏเตโเดคเต เดเดฐเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดธเตเดทเตโเดเดฟเดเตเดเตเด.
- เดธเตเดทเตเดเดฟเดเตเด เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต KUBECONFIG เดจเตเดเตเด.
- Kubernetes-เตฝ GitLab เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด.
- เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเดพเดฏเดฟ เดธเตเดทเตโเดเดฟเดเตเด GitLab-เตฝ เดจเดฟเดจเตเดจเต GitLab-เดเตเดเตเดเตบ เดจเตเดเตเด เดตเตเดฐเต.
- GitLab-token เดเดชเดฏเตเดเดฟเดเตเดเต GitLab-เตฝ เดเดฐเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดเดเดจ เดธเตเดทเตเดเดฟเดเตเดเตเด.
- เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดเตเดกเต GitLab-เดฒเตเดเตเดเต เดชเตเดทเต เดเตเดฏเตเดฏเตเด.
- ???
- เดฒเดพเดญเด!
เดเดเตเดเด เดเตเดธเดจเตเดฎเตเดเตเดธ. เดตเดฟเดญเดพเดเดคเตเดคเดฟเตฝ เดเตเดเตเดเตบ เดฒเดญเดฟเดเตเดเตเด
เดเดเตเดเด เดเตเดธเดจเตเดฎเตเดเตเดธ. 2 เดจเตเดกเตเดเดณเตเดเต เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเตผ "เดฌเตเดเตเดเดฟเดเดเต" เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดเดเตเดเตพ เดเตเดฑเดพเดซเตเด เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเตเดจเตเดจเต. เดจเดฟเดเตเดเตพเดเตเดเต เดเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเด เดฎเดคเดฟเดฏเดพเดฏ เดเดฑเดตเดฟเดเดเตเดเตพ เดเดฃเตเดเตเดจเตเดจเต เดเดฑเดชเตเดชเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดธเตเดตเดฏเดฎเตเดตเดฏเตเดณเตเดณ เดเตเดตเดพเดเตเดเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดพเด:
provider "selectel" {
token = var.my_selectel_token
}
variable "my_selectel_token" {}
variable "username" {}
variable "region" {}
resource "selectel_vpc_project_v2" "my-k8s" {
name = "my-k8s-cluster"
theme = {
color = "269926"
}
quotas {
resource_name = "compute_cores"
resource_quotas {
region = var.region
zone = "${var.region}a"
value = 16
}
}
quotas {
resource_name = "network_floatingips"
resource_quotas {
region = var.region
value = 1
}
}
quotas {
resource_name = "load_balancers"
resource_quotas {
region = var.region
value = 1
}
}
quotas {
resource_name = "compute_ram"
resource_quotas {
region = var.region
zone = "${var.region}a"
value = 32768
}
}
quotas {
resource_name = "volume_gigabytes_fast"
resource_quotas {
region = var.region
zone = "${var.region}a"
# (20 * 2) + 50 + (8 * 3 + 10)
value = 130
}
}
}
resource "selectel_mks_cluster_v1" "k8s-cluster" {
name = "k8s-cluster"
project_id = selectel_vpc_project_v2.my-k8s.id
region = var.region
kube_version = "1.17.9"
}
resource "selectel_mks_nodegroup_v1" "nodegroup_1" {
cluster_id = selectel_mks_cluster_v1.k8s-cluster.id
project_id = selectel_mks_cluster_v1.k8s-cluster.project_id
region = selectel_mks_cluster_v1.k8s-cluster.region
availability_zone = "${var.region}a"
nodes_count = 2
cpus = 8
ram_mb = 16384
volume_gb = 15
volume_type = "fast.${var.region}a"
labels = {
"project": "my",
}
}
เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดเตเตผเดเตเดเตเด:
resource "random_password" "my-k8s-user-pass" {
length = 16
special = true
override_special = "_%@"
}
resource "selectel_vpc_user_v2" "my-k8s-user" {
password = random_password.my-k8s-user-pass.result
name = var.username
enabled = true
}
resource "selectel_vpc_keypair_v2" "my-k8s-user-ssh" {
public_key = file("~/.ssh/id_rsa.pub")
user_id = selectel_vpc_user_v2.my-k8s-user.id
name = var.username
}
resource "selectel_vpc_role_v2" "my-k8s-role" {
project_id = selectel_vpc_project_v2.my-k8s.id
user_id = selectel_vpc_user_v2.my-k8s-user.id
}
เดเดเตเดเตเดชเตเดเตเดเต:
output "project_id" {
value = selectel_vpc_project_v2.my-k8s.id
}
output "k8s_id" {
value = selectel_mks_cluster_v1.k8s-cluster.id
}
output "user_name" {
value = selectel_vpc_user_v2.my-k8s-user.name
}
output "user_pass" {
value = selectel_vpc_user_v2.my-k8s-user.password
}
เดจเดฎเตเดเตเดเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเดพเด:
$ env
TF_VAR_region=ru-3
TF_VAR_username=diamon
TF_VAR_my_selectel_token=<token>
terraform plan -out planfile
$ terraform apply -input=false -auto-approve planfile
เดเดเตเดเด เดเตเดธเดจเตเดฎเตเดเตเดธ. เดจเดฎเตเดเตเดเต cubeconfig เดฒเดญเดฟเดเตเดเตเด.
KUBECONFIG เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพเดเตเดเต OpenStack-เตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเตเดเตเดเตบ เดฒเดญเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
openstack token issue -c id -f value > token
เด เดเตเดเตเดเตบ เดเดชเดฏเตเดเดฟเดเตเดเต เดฎเดพเดจเตเดเต เดเตเดฏเตเดค เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดธเตเดฒเดเตโเดเตฝ API-เดฒเตเดเตเดเต เดเดฐเต เด เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดเดคเตเดคเตเด. k8s_id เดชเตเดฐเดถเตเดจเดเตเดเตพ เดเตเดฑเดซเตเด:
curl -XGET -H "x-auth-token: $(cat token)" "https://ru-3.mks.selcloud.ru/v1/clusters/$(cat k8s_id)/kubeconfig" -o kubeConfig.yaml
Cupconfig เดชเดพเดจเดฒเดฟเดฒเตเดเตเดฏเตเด เดเดเตเดธเดธเต เดเตเดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต.
เดเดเตเดเด เดเตเดธเดจเตเดฎเตเดเตเดธ. เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเตเดเตเดเตเดชเดดเตเดคเตเดคเดคเดฟเดจเตเดถเตเดทเด เด
เดคเดฟเดฒเตเดเตเดเต เดจเดฎเตเดเตเดเต เดชเตเดฐเดตเตเดถเดจเด เดฒเดญเดฟเดเตเดเตเดเดดเดฟเดเตเดเดพเตฝ, เดฐเตเดเดฟเดเตเดเต เดฎเตเดเดณเดฟเตฝ เดฏเดพเดฎเตฝ เดเตเตผเดเตเดเดพเด.
เดเดพเตป เดเตเตผเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต:
- เดจเตเดฏเดฟเดเดธเตเดชเตเดธเต
- เดธเตเดฑเตเดฑเตเดฑเตเดเต เดเตเดฒเดพเดธเต
- เดชเตเดกเต เดธเตเดฐเดเตเดทเดพ เดจเดฏเดตเตเด เดฎเดฑเตเดฑเตเด.
เดเดฆเตเดฏเด เดฎเตเดคเตฝ เดเดพเตป เดธเตเดฃเดฟเตฝ เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดคเต ru-3a, เด เดชเตเดชเตเตพ เดเดจเดฟเดเตเดเต เด เดธเตเดฃเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเตเดฑเตเดฑเตเดฑเตเดเต เดเตเดฒเดพเดธเต เดเดตเดถเตเดฏเดฎเดพเดฃเต.
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: fast.ru-3a
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: cinder.csi.openstack.org
parameters:
type: fast.ru-3a
availability: ru-3a
allowVolumeExpansion: true
เดเดเตเดเด เดเตเดธเดจเตเดฎเตเดเตเดธ. เดเดฐเต เดฒเตเดกเต เดฌเดพเดฒเตปเดธเตผ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด.
เดชเดฒเตผเดเตเดเตเด เดเดเตเดเตพ เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเดจเตเดจเต เดเดชเดฏเตเดเดฟเดเตเดเตเด nginx-เดชเตเดฐเดตเตเดถเดจเด. เดเดคเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดเดคเดฟเดจเดเด เดคเดจเตเดจเต เดงเดพเดฐเดพเดณเด เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเดณเตเดฃเตเดเต, เด เดคเดฟเดจเดพเตฝ เดเดเตเดเตพ เด เดคเดฟเตฝ เดตเดธเดฟเดเตเดเดฟเดฒเตเดฒ.
$ helm repo add nginx-stable https://helm.nginx.com/stable
$ helm upgrade nginx-ingress nginx-stable/nginx-ingress -n ingress --install -f ../internal/K8S-cluster/ingress/values.yml
เดเดเดฆเตเดถเด 3-4 เดฎเดฟเดจเดฟเดฑเตเดฑเต เดจเตเดฐเดคเตเดคเตเดเตเดเต เดเดฐเต เดฌเดพเดนเตเดฏ IP เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดเดเตเดเตพ เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
เดฌเดพเดนเตเดฏ IP เดฒเดญเดฟเดเตเดเต:
เดเดเตเดเด เดเตเดธเดจเตเดฎเตเดเตเดธ. GitLab เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด.
$ helm repo add gitlab https://charts.gitlab.io
$ helm upgrade gitlab gitlab/gitlab -n gitlab --install -f gitlab/values.yml --set "global.hosts.domain=gitlab.$EXTERNAL_IP.nip.io"
เดตเตเดฃเตเดเตเด เดเดฒเตเดฒเดพ เดเดพเดฏเตเดเดณเตเด เดเดฏเดฐเดพเตป เดเดเตเดเตพ เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
kubectl get po -n gitlab
NAME READY STATUS RESTARTS AGE
gitlab-gitaly-0 0/1 Pending 0 0s
gitlab-gitlab-exporter-88f6cc8c4-fl52d 0/1 Pending 0 0s
gitlab-gitlab-runner-6b6867c5cf-hd9dp 0/1 Pending 0 0s
gitlab-gitlab-shell-55cb6ccdb-h5g8x 0/1 Init:0/2 0 0s
gitlab-migrations.1-2cg6n 0/1 Pending 0 0s
gitlab-minio-6dd7d96ddb-zd9j6 0/1 Pending 0 0s
gitlab-minio-create-buckets.1-bncdp 0/1 Pending 0 0s
gitlab-postgresql-0 0/2 Pending 0 0s
gitlab-prometheus-server-6cfb57f575-v8k6j 0/2 Pending 0 0s
gitlab-redis-master-0 0/2 Pending 0 0s
gitlab-registry-6bd77b4b8c-pb9v9 0/1 Pending 0 0s
gitlab-registry-6bd77b4b8c-zgb6r 0/1 Init:0/2 0 0s
gitlab-shared-secrets.1-pc7-5jgq4 0/1 Completed 0 20s
gitlab-sidekiq-all-in-1-v1-54dbcf7f5f-qbq67 0/1 Pending 0 0s
gitlab-task-runner-6fd6857db7-9x567 0/1 Pending 0 0s
gitlab-webservice-d9d4fcff8-hp8wl 0/2 Pending 0 0s
Waiting gitlab
./wait_gitlab.sh ../internal/gitlab/gitlab/.pods
waiting for pod...
waiting for pod...
waiting for pod...
เดเดพเดฏเตเดเตพ เดเดฏเตผเดจเตเดจเต:
เดเดเตเดเด เดเตเดธเดจเตเดฎเตเดเตเดธ. เดเดเตเดเตพเดเตเดเต GitLab-เดเตเดเตเดเตบ เดฒเดญเดฟเดเตเดเตเดจเตเดจเต.
เดเดฆเตเดฏเด, เดฒเตเดเดฟเตป เดชเดพเดธเตโเดตเตเดกเต เดเดฃเตเดเตเดคเตเดคเตเด:
kubectl get secret -n gitlab gitlab-gitlab-initial-root-password -o jsonpath='{.data.password}' | base64 --decode
เดเดจเดฟ เดจเดฎเตเดเตเดเต เดฒเตเดเดฟเตป เดเตเดฏเตเดคเต เดเดฐเต เดเตเดเตเดเตบ เดเดเตเดเตเดเดพเด:
python3 get_gitlab_token.py root $GITLAB_PASSWORD http://gitlab.gitlab.$EXTERNAL_IP.nip.io
เดเดเตเดเด เดเตเดธเดจเตเดฎเตเดเตเดธ. Gitlab เดชเตเดฐเตเดตเตเดกเตผ เดเดชเดฏเตเดเดฟเดเตเดเต Git เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดเตพ เดถเดฐเดฟเดฏเดพเดฏ เดถเตเดฐเตเดฃเดฟเดฏเดฟเดฒเตเดเตเดเต เดเตเดฃเตเดเตเดตเดฐเตเดจเตเดจเต.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
เดจเดฟเตผเดญเดพเดเตเดฏเดตเดถเดพเตฝ, เดเตเดฑเดพเดซเตเด GitLab เดฆเดพเดคเดพเดตเดฟเดจเต เดเดฐเต เดซเตเดฒเตเดเตเดเดฟเดเดเต เดเดฃเตเดเต
เดฌเดเต . เดคเตเดเตผเดจเตเดจเต, tf.state เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดเตเดเตพ เดตเตเดฐเตเดฆเตเดงเตเดฏเดฎเตเดณเตเดณ เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเตพ เดธเตเดตเดฎเตเดงเดฏเดพ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดคเตเดเตผเดจเตเดจเต `$make all` เดเดจเตเดจ เดเดฎเดพเตปเดกเต เดตเตเดฃเตเดเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด
เดเดเตเดเด เดเตเดธเดจเตเดฎเตเดเตเดธ. เดเดเตเดเตพ เดชเตเดฐเดพเดฆเตเดถเดฟเด เดถเตเดเดฐเดฃเดเตเดเตพ เดธเตเตผเดตเดฑเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต.
$ make push
[master (root-commit) b61d977] Initial commit
3 files changed, 46 insertions(+)
create mode 100644 .gitignore
create mode 100644 values.yml
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 770 bytes | 770.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
เดเตเดฏเตโเดคเต:
เดคเตเดฐเตเดฎเดพเดจเด
เดเดเตเดเดณเตเดเต เดชเตเดฐเดพเดฆเตเดถเดฟเด เดฎเตเดทเตเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฒเตเดฒเดพเด เดกเดฟเดเตเดฒเดฑเตเดฑเตเดฑเตเดตเต เดเดฏเดฟ เดฎเดพเดจเตเดเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเดฎเตเดจเตเดจเต เดเดเตเดเตพ เดเตเดตเดฐเดฟเดเตเดเต. เดเดชเตเดชเตเตพ เด เดเดพเดธเตโเดเตเดเตเดเดณเตเดฒเตเดฒเดพเด CI-เดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเดพเดจเตเด เดฌเดเตเดเดฃเตเดเตพ เด เดฎเตผเดคเตเดคเดพเดจเตเด เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฎเตเดฎเตเดเต เดชเตเดฐเดพเดฆเตเดถเดฟเด เดธเดเดธเตเดฅเดพเดจเดเตเดเตพ (เดเตเดฑเดพเดซเตเด เดธเดเดธเตเดฅเดพเดจเด) CI เดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดคเต เดเดเตเดเดจเต เดเตเดฏเตเดฏเดพเด เดเดจเตเดจเดคเต เด เดเตเดคเตเดค เดญเดพเดเดคเตเดคเดฟเตฝ เดเดพเดฃเดพเด.
เดเดเตเดเดณเตเดเต เดธเดฌเตเดธเตเดเตเดฐเตเดฌเต เดเตเดฏเตเดฏเตเด
เดฌเตเดฒเตเดเต เดชเตเดคเดฟเดฏ เดฒเตเดเดจเดเตเดเดณเตเดเต เดชเตเดฐเดเดพเดถเดจเด เดจเดทเตโเดเดชเตเดชเตเดเตเดคเตเดคเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป!
เด เดตเดฒเดเดฌเด: www.habr.com