เจชเจนเจฟเจฒเจพเจ เจเฉ เจเจเจ - เจเจฟเจเจจ เจเจพเจ เจ
เฉฐเจกเฉ? เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ-เจเฉเจก เจฌเจพเจฐเฉ เจเฉฑเจ เจฒเฉเจ เจฒเจ เจเฉฑเจ เจ
เจเฉเจฌ เจธเจผเฉเจฐเฉเจเจค, เจนเฉ เจจเจพ?
เจ เฉฐเจกเฉ เจเฉ เจนเฉ?
เจฌเจนเฉเจคเฉ เจ เจเจธเจฐ, เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ-เจเฉเจก (IaC) เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจจเฉเจฎเจพเจเฉฐเจฆเจเฉ เจเจฐเจจ เจฆเจพ เจเฉฑเจ เจเฉเจธเจผเจฃเจพเจคเจฎเจ เจคเจฐเฉเจเจพ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจเจธ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจเจธ เจธเจฅเจฟเจคเฉ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจฆเฉ เจนเจพเจ เจเฉ เจ เจธเฉเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ, เจนเจพเจฐเจกเจตเฉเจ เจฐ เจนเจฟเฉฑเจธเฉ เจคเฉเจ เจธเจผเฉเจฐเฉ เจนเฉ เจเฉ เจ เจคเฉ เจธเฉเจซเจเจตเฉเจ เจฐ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจจเจพเจฒ เจเจคเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจเจธ เจฒเจ IaC เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ:
- เจธเจฐเฉเจค เจชเฉเจฐเจฌเฉฐเจงเฅค เจเจน VM, S3, VPC, เจเจฆเจฟ เจนเจจเฅค เจเฉฐเจฎ เจฒเจ เจฌเฉเจจเจฟเจเจฆเฉ เจธเจพเจงเจจ:
เจเฉเจฐเจพเจซเจพเจฐเจฎ ะธเจเจฒเจพเจเจก เจซเจพเจฐเจฎเฉเจธเจผเจจ . เจธเจพเจซเจเจตเฉเจ เจฐ เจเฉเจจเจซเจฟเจเจฐเฉเจธเจผเจจ . เจฌเฉเจจเจฟเจเจฆเฉ เจธเฉฐเจฆ:Ansimate , เจธเจผเฉเฉฑเจซ, เจเจฆเจฟเฅค
เจเฉเจ เจตเฉ เจเฉเจก git เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจตเจฟเฉฑเจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจ เจคเฉ เจเจฒเจฆเฉ เจเจพเจ เจฌเจพเจ เจฆ เจตเจฟเฉฑเจ เจเฉเจฎ เจฒเฉเจกเจฐ เจเจน เจซเฉเจธเจฒเจพ เจเจฐเฉเจเจพ เจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉเจฐเจฎ เจตเจฟเฉฑเจ เจฐเฉฑเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ. เจ เจคเฉ เจเจน เจฐเฉเจซเฉเจเจเจฐ เจเจฐเฉเจเจพ. เจ เจคเฉ เจเจน เจเฉเจ เจขเจพเจเจเจพ เจฌเจฃเจพเจเจเจพเฅค เจ เจคเฉ เจเจน เจฆเฉเจเฉเจเจพ เจเจฟ เจเจน เจเฉฐเจเจพ เจนเฉเฅค
เจเจน เจตเฉ เจเฉฐเจเจพ เจนเฉ เจเจฟ เจเจน เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฎเฉเจเฉเจฆ เจนเฉ
เจเจเจกเจพ เจเจฟเฉฑเจฅเฉเจ เจเจเจ?
เจเจธ เจฒเจ เจ เจธเฉเจ เจนเฉเจฒเฉ-เจนเฉเจฒเฉ เจฎเฉเฉฑเจ เจธเจตเจพเจฒ เจฆเฉ เจจเฉเฉเฉ เจ เจฐเจนเฉ เจนเจพเจเฅค
เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเฉ เจคเฉเจนเจพเจกเฉ เจธเจฎเฉเจค เจนเฉเจฐ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจฆเฉ เจฌเจฃเจคเจฐ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจฆเจพ เจนเฉเฅค เจ เจคเฉ เจฌเฉเจธเจผเฉฑเจ, GitOps เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ, เจคเฉเจนเจพเจจเฉเฉฐ CI เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจคเจพเจ เจเฉ เจคเจฌเจฆเฉเจฒเฉเจเจ เจเจชเจฃเฉ เจเจช เจนเฉ เจฒเจพเจเฉ เจนเฉ เจเจพเจฃเฅค
เจเฉเจเจฐ Git เจ เจเฉ เจคเฉฑเจ เจจเจนเฉเจ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ?
- เจเจธเจจเฉเฉฐ Git เจตเจฟเฉฑเจ เจเจฟเจตเฉเจ เจธเจเฉเจฐ เจเจฐเจจเจพ เจนเฉ?
- CI เจจเฉเฉฐ เจเจฟเจตเฉเจ เจเฉฐเจธเจเจพเจฒ เจเจฐเจจเจพ เจนเฉ?
- เจเฉ เจ เจธเฉเจ เจเจเจเจธเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจฟเจเจฒเฉเจฌ เจจเฉเฉฐ เจคเฉเจจเจพเจค เจเจฐเจฆเฉ เจนเจพเจ, เจ เจคเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเฉฑเจ เจตเฉ?
- เจ เจคเฉ เจเจฟเจเจฒเฉเจฌ เจฐเจจเจฐ เจตเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเฉฑเจ?
- เจเจฒเจพเจเจก เจชเฉเจฐเจฆเจพเจคเจพ เจตเจฟเฉฑเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจฌเจพเจฐเฉ เจเฉ?
เจชเจนเจฟเจฒเจพเจ เจเฉ เจเจเจ: GitLab เจเจฟเฉฑเจฅเฉ เจฎเฉเจ เจเจชเจฃเจพ เจเฉเจก เจ เฉฑเจชเจฒเฉเจก เจเจฐเจพเจเจเจพ, เจเจพเจ เจเฉเจก เจเฉ เจฆเฉฑเจธเจฆเจพ เจนเฉ เจเจฟ เจฎเฉเจจเฉเฉฐ เจเจฟเจธ เจเจฟเจธเจฎ เจฆเฉ GitLab เจฆเฉ เจฒเฉเฉ เจนเฉ?
เจ เฉฐเจกเฉ เจฆเฉ เจจเจพเจฒ เจเจฟเจเจจ
ยซเจเจฏเจพเจเฉเจกเฉเจจ 3 เจกเจพเจเจจเจพเจธเฉเจฐ เจจเจพเจฒ" [เจเจฐเฉเจเฉ ]
เจเจ เจเจฒเจพเจเจก เจชเฉเจฐเจฆเจพเจคเจพ เจตเจเฉเจ เจตเจฐเจคเจฆเฉ เจนเฉเจ เจเฉฑเจ เจกเจฟเจธเจผ เจชเจเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจ
TL; เจกเจพ
เจเฉ เจเฉฑเจเฉ เจธเจฎเฉเจ เจเฉฑเจ เจเฉเจฎ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจนเฉเจฃเจพ เจธเฉฐเจญเจต เจนเฉ?
$ export MY_SELECTEL_TOKEN=<token>
$ curl https://gitlab.com/chicken-or-egg/mks/make/-/snippets/2002106/raw | bash
เจธเจฎเฉฑเจเจฐเฉ:
- my.selectel.ru เจคเฉเจ เจเจพเจคเจพ;
- เจเจพเจคเจพ เจเฉเจเจจ;
- เจเฉเจฌเจฐเจจเฉเจเจธ เจฆเฉ เจนเฉเจจเจฐ;
- เจนเฉเจฒเจฎ เจนเฉเจจเจฐ;
- เจเฉเจฐเจพเจซเจพเจฐเจฎ เจนเฉเจจเจฐ;
- เจนเฉเจฒเจฎ เจเจพเจฐเจ GitLab;
- เจนเฉเจฒเจฎ เจเจพเจฐเจ เจเจฟเฉฑเจเจฒเฉเจฌ เจฐเจจเจฐเฅค
เจตเจฟเจ เฉฐเจเจจ:
- เจชเฉเจจเจฒ เจคเฉเจ MY_SELECTEL_TOKEN เจชเฉเจฐเจพเจชเจค เจเจฐเฉ my.selectel.ru.
- เจเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจพเจคเจพ เจเฉเจเจจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐเจเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจฌเจฃเจพเจเฅค
- เจฌเจฃเจพเจ เจเจ เจเจฒเฉฑเจธเจเจฐ เจคเฉเจ KUBECONFIG เจชเฉเจฐเจพเจชเจค เจเจฐเฉเฅค
- Kubernetes 'เจคเฉ GitLab เจเฉฐเจธเจเจพเจฒ เจเจฐเฉเฅค
- เจเจชเจญเฉเจเจคเจพ เจฒเจ เจฌเจฃเจพเจ เจเจ GitLab เจคเฉเจ GitLab-เจเฉเจเจจ เจชเฉเจฐเจพเจชเจค เจเจฐเฉ เจฐเฉเจ.
- GitLab-เจเฉเจเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ GitLab เจตเจฟเฉฑเจ เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจ เจขเจพเจเจเจพ เจฌเจฃเจพเจเฅค
- เจฎเฉเจเฉเจฆเจพ เจเฉเจก เจจเฉเฉฐ GitLab 'เจคเฉ เจชเฉเจธเจผ เจเจฐเฉเฅค
- ???
- เจฒเจพเจญ!
เจเจฆเจฎ 1. เจเฉเจเจจ เจญเจพเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ
เจเจฆเจฎ 2. เจ เจธเฉเจ 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
เจเจฆเจฎ 3. เจธเจพเจจเฉเฉฐ cubeconfig เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเจพ เจนเฉ.
เจชเฉเจฐเฉเจเจฐเจพเจฎเฉเจเจฟเจ เจคเฉเจฐ 'เจคเฉ KUBECONFIG เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจชเจจเจธเจเฉเจ เจคเฉเจ เจเฉฑเจ เจเฉเจเจจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
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 เจจเฉเฉฐ เจชเฉเจจเจฒ เจฐเจพเจนเฉเจ เจตเฉ เจเจเจธเฉเจธ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจเจฆเจฎ 4. เจเจฒเฉฑเจธเจเจฐ เจฆเฉ เจฌเฉเจ เจนเฉเจฃ เจคเฉเจ เจฌเจพเจ
เจฆ เจ
เจคเฉ เจธเจพเจกเฉ เจเฉเจฒ เจเจธ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจนเฉ, เจ
เจธเฉเจ เจธเฉเจเจฆ เจฒเจ เจธเจฟเจเจฐ 'เจคเฉ เจฏเจพเจฎเจฒ เจธเจผเจพเจฎเจฒ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค
เจฎเฉเจ เจธเจผเจพเจฎเจฒ เจเจฐเจจเจพ เจชเจธเฉฐเจฆ เจเจฐเจฆเจพ เจนเจพเจ:
- เจจเจพเจฎ เจธเจฅเจพเจจ
- เจธเจเฉเจฐเฉเจเจผ เจเจฒเจพเจธ
- เจชเฉเจก เจธเฉเจฐเฉฑเจเจฟเจ เจจเฉเจคเฉ เจ เจคเฉ เจนเฉเจฐ.
เจเจฟเจเจเจเจฟ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจฎเฉเจ เจเจผเฉเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจฒเฉฑเจธเจเจฐ เจเฉเจฃเจฟเจ เจธเฉ 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
เจเจฆเจฎ 5. เจเฉฑเจ เจฒเฉเจก เจฌเฉเจฒเฉเจเจธเจฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉเฅค
เจ เจธเฉเจ เจเจเจเจ เจฒเจ เจฎเจฟเจเจฐเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ 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:
เจเจฆเจฎ 6. 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...
เจซเจฒเฉเจเจ เจตเจงเฉเจเจ:
เจเจฆเจฎ 7. เจ
เจธเฉเจ 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
เจเจฆเจฎ 8. Gitlab เจชเฉเจฐเจฆเจพเจคเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ Git เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจจเฉเฉฐ เจธเจนเฉ เจฒเฉเฉ เจตเจฟเฉฑเจ เจฒเจฟเจเจเจฃเจพเฅค
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
เจฌเจฆเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจเฉเจฐเจพเจซเจพเจฐเจฎ เจเจฟเจเจฒเฉเจฌ เจชเฉเจฐเจฆเจพเจคเจพ เจเฉเจฒ เจเฉฑเจ เจซเจฒเฉเจเจฟเฉฐเจ เจนเฉ
เจฌเฉฑเจ . เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉเฉฐ tf.state เจจเฉเฉฐ เจ เฉเจ เจเจฐเจจ เจฒเจ เจตเจฟเจฐเฉเจงเฉ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจฎเจฟเจเจพเจเจฃเจพ เจนเฉเจตเฉเจเจพเฅค เจซเจฟเจฐ '$make all' เจเจฎเจพเจเจก เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจเจฒเจพเจ
เจเจฆเจฎ 9. เจ เจธเฉเจ เจฒเฉเจเจฒ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจจเฉเฉฐ เจธเจฐเจตเจฐ เจคเฉ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐเจฆเฉ เจนเจพเจเฅค
$ 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 เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ เจ เจคเฉ เจธเจฟเจฐเจซเจผ เจฌเจเจจ เจฆเจฌเจพเจเฅค เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจธเจพเจจเฉเฉฐ เจเจชเจฃเฉ เจธเจฅเจพเจจเจ เจฐเจพเจเจพเจ (เจเฉเจฐเจพเจซเจพเจฐเจฎ เจธเจเฉเจ) เจจเฉเฉฐ เจธเฉเจเจ เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจน เจเจฟเจตเฉเจ เจเจฐเจจเจพ เจนเฉ เจ เจเจฒเฉ เจญเจพเจ เจตเจฟเฉฑเจ เจนเฉ.
เจธเจพเจกเฉ เจฒเจ เจเจพเจนเจ เจฌเจฃเฉ
เจฌเจฒเฉเจ เจคเจพเจ เจเฉ เจจเจตเฉเจ เจฒเฉเจเจพเจ เจฆเฉ เจฐเจฟเจฒเฉเจเจผ เจจเฉเฉฐ เจเฉเฉฐเจ เจจเจพ เจเจพเจตเฉ!
เจธเจฐเฉเจค: www.habr.com