ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC

ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC
ಮೊದಲು ಬಂದದ್ದು - ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ? ಮೂಲಸೌಕರ್ಯ-ಸಂಕೇತದ ಕುರಿತು ಲೇಖನಕ್ಕೆ ವಿಚಿತ್ರವಾದ ಆರಂಭ, ಅಲ್ಲವೇ?

ಮೊಟ್ಟೆ ಎಂದರೇನು?

ಹೆಚ್ಚಾಗಿ, ಇನ್ಫ್ರಾಸ್ಟ್ರಕ್ಚರ್-ಆಸ್-ಕೋಡ್ (IaC) ಮೂಲಸೌಕರ್ಯವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಘೋಷಣಾತ್ಮಕ ಮಾರ್ಗವಾಗಿದೆ. ಇದರಲ್ಲಿ ನಾವು ಸಾಧಿಸಲು ಬಯಸುವ ಸ್ಥಿತಿಯನ್ನು ನಾವು ವಿವರಿಸುತ್ತೇವೆ, ಹಾರ್ಡ್‌ವೇರ್ ಭಾಗದಿಂದ ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಸಾಫ್ಟ್‌ವೇರ್ ಕಾನ್ಫಿಗರೇಶನ್‌ನೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ. ಆದ್ದರಿಂದ IaC ಅನ್ನು ಇದಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ:

  1. ಸಂಪನ್ಮೂಲ ಒದಗಿಸುವಿಕೆ. ಅವುಗಳೆಂದರೆ VMs, S3, VPC, ಇತ್ಯಾದಿ. ಕೆಲಸಕ್ಕಾಗಿ ಮೂಲ ಉಪಕರಣಗಳು: ಟೆರಾಫಾರ್ಮ್ и ಮೇಘ ರಚನೆ.
  2. ಸಾಫ್ಟ್‌ವೇರ್ ಕಾನ್ಫಿಗರೇಶನ್. ಮೂಲ ಉಪಕರಣಗಳು: ಅನುಕಂಪ, ಬಾಣಸಿಗ, ಇತ್ಯಾದಿ.

ಯಾವುದೇ ಕೋಡ್ git ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿದೆ. ಮತ್ತು ಬೇಗ ಅಥವಾ ನಂತರ ತಂಡದ ನಾಯಕ ಅವರು ಕ್ರಮವಾಗಿ ಇರಿಸಬೇಕೆಂದು ನಿರ್ಧರಿಸುತ್ತಾರೆ. ಮತ್ತು ಅವನು ಮರುಪರಿಶೀಲಿಸುತ್ತಾನೆ. ಮತ್ತು ಇದು ಕೆಲವು ರಚನೆಯನ್ನು ರಚಿಸುತ್ತದೆ. ಮತ್ತು ಇದು ಒಳ್ಳೆಯದು ಎಂದು ಅವನು ನೋಡುತ್ತಾನೆ.

ಇದು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಎಂಬುದು ಸಹ ಒಳ್ಳೆಯದು ಗಿಟ್ಲಾಬ್ и GitHubಟೆರಾಫಾರ್ಮ್‌ಗಾಗಿ ಒದಗಿಸುವವರು (ಮತ್ತು ಇದು ಸಾಫ್ಟ್‌ವೇರ್ ಕಾನ್ಫಿಗರೇಶನ್). ಅವರ ಸಹಾಯದಿಂದ, ನೀವು ಸಂಪೂರ್ಣ ಯೋಜನೆಯನ್ನು ನಿರ್ವಹಿಸಬಹುದು: ತಂಡದ ಸದಸ್ಯರು, CI/CD, git-flow, ಇತ್ಯಾದಿ.

ಮೊಟ್ಟೆ ಎಲ್ಲಿಂದ ಬಂತು?

ಆದ್ದರಿಂದ ನಾವು ಕ್ರಮೇಣ ಮುಖ್ಯ ಪ್ರಶ್ನೆಯನ್ನು ಸಮೀಪಿಸುತ್ತಿದ್ದೇವೆ.

ಮೊದಲನೆಯದಾಗಿ, ನಿಮ್ಮನ್ನು ಒಳಗೊಂಡಂತೆ ಇತರ ರೆಪೊಸಿಟರಿಗಳ ರಚನೆಯನ್ನು ವಿವರಿಸುವ ರೆಪೊಸಿಟರಿಯೊಂದಿಗೆ ನೀವು ಪ್ರಾರಂಭಿಸಬೇಕು. ಮತ್ತು ಸಹಜವಾಗಿ, GitOps ನ ಭಾಗವಾಗಿ, ನೀವು CI ಅನ್ನು ಸೇರಿಸಬೇಕಾಗುತ್ತದೆ ಇದರಿಂದ ಬದಲಾವಣೆಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತವೆ.

Git ಅನ್ನು ಇನ್ನೂ ರಚಿಸದಿದ್ದರೆ?

  1. ಅದನ್ನು Git ನಲ್ಲಿ ಹೇಗೆ ಸಂಗ್ರಹಿಸುವುದು?
  2. CI ಅನ್ನು ಹೇಗೆ ಸ್ಥಾಪಿಸುವುದು?
  3. ನಾವು IaC ಬಳಸಿಕೊಂಡು Gitlab ಅನ್ನು ನಿಯೋಜಿಸಿದರೆ ಮತ್ತು ಕುಬರ್ನೆಟ್ಸ್ನಲ್ಲಿಯೂ ಸಹ?
  4. ಮತ್ತು ಕುಬರ್ನೆಟ್ಸ್‌ನಲ್ಲಿಯೂ ಗಿಟ್‌ಲ್ಯಾಬ್ ರನ್ನರ್?
  5. ಕ್ಲೌಡ್ ಪ್ರೊವೈಡರ್‌ನಲ್ಲಿ ಕುಬರ್ನೆಟ್ಸ್ ಬಗ್ಗೆ ಏನು?

ಮೊದಲು ಬಂದದ್ದು ಏನು: ನಾನು ನನ್ನ ಕೋಡ್ ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡುವ GitLab ಅಥವಾ ನನಗೆ ಯಾವ ರೀತಿಯ GitLab ಅಗತ್ಯವಿದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುವ ಕೋಡ್?

ಮೊಟ್ಟೆಗಳೊಂದಿಗೆ ಚಿಕನ್

«ಒಯಕೋಡೋನ್3 ಡೈನೋಸಾರ್‌ನೊಂದಿಗೆ" [Src]

ಕ್ಲೌಡ್ ಪ್ರೊವೈಡರ್ ಆಗಿ ಬಳಸಿ ಭಕ್ಷ್ಯವನ್ನು ಬೇಯಿಸಲು ಪ್ರಯತ್ನಿಸೋಣ ಕುಬರ್ನೆಟ್ಸ್ ಸೆಲೆಕ್ಟೆಲ್ ಅನ್ನು ನಿರ್ವಹಿಸಲಾಗಿದೆ.

ಟಿಎಲ್; ಡಿಆರ್

ಏಕಕಾಲದಲ್ಲಿ ಒಂದು ತಂಡವನ್ನು ಸೇರಲು ಸಾಧ್ಯವೇ?

$ export MY_SELECTEL_TOKEN=<token>
$ curl https://gitlab.com/chicken-or-egg/mks/make/-/snippets/2002106/raw | bash

ಪದಾರ್ಥಗಳು:

  • my.selectel.ru ನಿಂದ ಖಾತೆ;
  • ಖಾತೆ ಟೋಕನ್;
  • ಕುಬರ್ನೆಟ್ಸ್ ಕೌಶಲ್ಯಗಳು;
  • ಹೆಲ್ಮ್ ಕೌಶಲ್ಯಗಳು;
  • ಟೆರಾಫಾರ್ಮ್ ಕೌಶಲ್ಯಗಳು;
  • ಹೆಲ್ಮ್ ಚಾರ್ಟ್ GitLab;
  • ಹೆಲ್ಮ್ ಚಾರ್ಟ್ GitLab ರನ್ನರ್.

ರೆಸಿಪಿ:

  1. ಪ್ಯಾನೆಲ್‌ನಿಂದ MY_SELECTEL_TOKEN ಪಡೆಯಿರಿ my.selectel.ru.
  2. ಖಾತೆ ಟೋಕನ್ ಅನ್ನು ವರ್ಗಾಯಿಸುವ ಮೂಲಕ ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ರಚಿಸಿ.
  3. ರಚಿಸಲಾದ ಕ್ಲಸ್ಟರ್‌ನಿಂದ KUBECONFIG ಪಡೆಯಿರಿ.
  4. ಕುಬರ್ನೆಟ್ಸ್‌ನಲ್ಲಿ GitLab ಅನ್ನು ಸ್ಥಾಪಿಸಿ.
  5. ಬಳಕೆದಾರರಿಗಾಗಿ ರಚಿಸಲಾದ GitLab ನಿಂದ GitLab-ಟೋಕನ್ ಪಡೆಯಿರಿ ಬೇರು.
  6. GitLab-ಟೋಕನ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು GitLab ನಲ್ಲಿ ಯೋಜನೆಯ ರಚನೆಯನ್ನು ರಚಿಸಿ.
  7. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೋಡ್ ಅನ್ನು GitLab ಗೆ ತಳ್ಳಿರಿ.
  8. ???
  9. ಲಾಭ!

1 ಹೆಜ್ಜೆ. ವಿಭಾಗದಲ್ಲಿ ಟೋಕನ್ ಪಡೆಯಬಹುದು API ಕೀಗಳು.

ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC2 ಹೆಜ್ಜೆ. 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

ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC
3 ಹೆಜ್ಜೆ. ನಾವು 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 ಅನ್ನು ಫಲಕದ ಮೂಲಕವೂ ಪ್ರವೇಶಿಸಬಹುದು.

ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC
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 ಅನ್ನು ಸ್ವೀಕರಿಸಲು ನಾವು ಕಾಯುತ್ತೇವೆ:

ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC
ಬಾಹ್ಯ IP ಸ್ವೀಕರಿಸಲಾಗಿದೆ:

ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC
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...

ಬೀಜಗಳು ಏರಿದವು:

ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC
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

ದುರದೃಷ್ಟವಶಾತ್, ಟೆರಾಫಾರ್ಮ್ GitLab ಪೂರೈಕೆದಾರರು ತೇಲುವಿಕೆಯನ್ನು ಹೊಂದಿದ್ದಾರೆ ದೋಷ. ನಂತರ 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)

ಮುಗಿದಿದೆ:

ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC
ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC
ಕೋಳಿ ಅಥವಾ ಮೊಟ್ಟೆ: ವಿಭಜಿಸುವ IaC

ತೀರ್ಮಾನಕ್ಕೆ

ನಮ್ಮ ಸ್ಥಳೀಯ ಯಂತ್ರದಿಂದ ನಾವು ಎಲ್ಲವನ್ನೂ ಘೋಷಣಾತ್ಮಕವಾಗಿ ನಿರ್ವಹಿಸಬಹುದೆಂದು ನಾವು ಸಾಧಿಸಿದ್ದೇವೆ. ಈಗ ನಾನು ಈ ಎಲ್ಲಾ ಕಾರ್ಯಗಳನ್ನು CI ಗೆ ವರ್ಗಾಯಿಸಲು ಬಯಸುತ್ತೇನೆ ಮತ್ತು ಗುಂಡಿಗಳನ್ನು ಒತ್ತಿ. ಇದನ್ನು ಮಾಡಲು, ನಾವು ನಮ್ಮ ಸ್ಥಳೀಯ ರಾಜ್ಯಗಳನ್ನು (ಟೆರ್ರಾಫಾರ್ಮ್ ರಾಜ್ಯ) CI ಗೆ ವರ್ಗಾಯಿಸಬೇಕಾಗಿದೆ. ಇದನ್ನು ಹೇಗೆ ಮಾಡುವುದು ಮುಂದಿನ ಭಾಗದಲ್ಲಿ.

ನಮ್ಮ ಚಂದಾದಾರರಾಗಿ ಬ್ಲಾಗ್ಆದ್ದರಿಂದ ಹೊಸ ಲೇಖನಗಳ ಬಿಡುಗಡೆಯನ್ನು ತಪ್ಪಿಸಿಕೊಳ್ಳಬಾರದು!

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ