{
  "id": "dvHmvvKy19SZIUrw",
  "name": "#2 Kubernetes Deploy",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -580,
        -60
      ],
      "id": "3d4fdbad-3089-43c5-a802-331e8931e83f",
      "name": "When clicking \u2018Test workflow\u2019"
    },
    {
      "parameters": {
        "url": "https://raw.githubusercontent.com/vaishutin/n8ndemo/refs/heads/main/nginx-deployment.yml",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -320,
        -220
      ],
      "id": "9d3e5801-42bd-472f-b95f-812acf1bb4da",
      "name": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430"
    },
    {
      "parameters": {
        "mode": "raw",
        "jsonOutput": "{\n  \"params\": {\n    \"appName\" : \"nginx\",\n    \"namespace\" : \"default\",\n    \"repicas\" : 2\n  }\n}\n",
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        -320,
        60
      ],
      "id": "087aa3e1-f8a9-42a4-9d45-270c4001c7f6",
      "name": "\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435"
    },
    {
      "parameters": {
        "jsCode": "const nunjucks = require('nunjucks');\n\n// \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0443\u0437\u043b\u0430\nconst templateContent = $input.first().json.data\n\n// \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438\nconst variables = $input.first().json.params\nconsole.log(variables)\n// \u0420\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\nconst renderedContent = nunjucks.renderString(templateContent, variables);\n\n// \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\nreturn [{ json: { renderedContent } }];"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        340,
        -200
      ],
      "id": "6b3b8391-a3ba-4465-b5b6-143093faf40e",
      "name": "\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d",
      "executeOnce": true
    },
    {
      "parameters": {
        "mode": "combine",
        "combineBy": "combineAll",
        "options": {}
      },
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.1,
      "position": [
        80,
        -80
      ],
      "id": "d9b96fa9-59c4-4886-a479-06e6cf19a823",
      "name": "\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435",
      "notesInFlow": true,
      "notes": "\u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445"
    },
    {
      "parameters": {
        "chatId": "={{ $vars.tgChatId }}",
        "text": "=```yaml\n{{ $json.renderedContent }}\n```",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        680,
        -380
      ],
      "id": "1d9b1a65-8e9a-49ba-a998-ab253077e7aa",
      "name": "\u0428\u0430\u0431\u043b\u043e\u043d \u0432 telegram",
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "17b5c7df-1b6e-44fc-b843-f17e645f6139",
              "name": "kubeconfig",
              "value": "apiVersion: v1\nclusters:\n  - cluster:\n      certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJQlE4UHowNTQ3WmN3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TlRBeU1qWXhOVFV4TXpsYUZ3MHpOVEF5TWpReE5UVTJNemxhTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUURML1FSb3dVNkJqN0JSZHowckl3UFdrZFBQdVJXQmhDUjY2NHpRWWR1YVNOb2V6V0ZDZ0dTaS8yMGMKY2YzUGk4RlNVeHYyb0hpbTh3cWxaVE45b0FTeEsrVGFPeW9SK1Z4enoycFhxWWNmb0ZkbTRaaWdmU2JSbjErQwo5em41d0NoL1NRNkt3WDBZV3NsbUQ5dUNXbnlNUGhVOUE1UlZqS0VGUmd4WGtxem5tL016Q0hDM2Y5eDEraTJWCkpRNEIrV0NUc2F6YVhIOTM2cnMxNmtoRHN0UDBqSE14OW9POUgrcm44L3VWa1VLL0hmUFdUMGw4OFZPcFp2cnEKSy9nT3g1dWVBT1NrTEtCckJ3Q0dMeXFQOGIwbHR4bTBGRW55c1FQMEJpR3BZd3JzS0p1ejVwVHpvSFJiN0U3OAp3RG9wUjhJd1hWRXpzTUhvNjRxVFA5eFBOMjhiQWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRcGRBVGF4SkpaeDlwdSttS1pFUmRCVUN4SXB6QVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ3BNUUZHVjdiZgpNbWYyKy9HWGlpMXpzL2taaXBrUFd2ekxMYS85aXJnbUdrc1lLVGtURFh6WldxTElSdStOOTZreE9iSkpiRDNVCng5eUQ3RGk5b2g5dkdwUGQ4KzlNWlpMd0hWQndOMG5SeEdUV3p6Qzh5VW1HMmttMlk5QXliWXdGVy85ekVMcisKSkNEdC9ncElXUGR1bXFBanRyeUNqWVdDUmFycDQzN3BNNzJ3YXVqWC9IRk8wdk02Y2IvM0VMTVZnMGx5ZndJRQpJdVRYdWJINTdHOEIzRFdzMVBiK3ZLc2JLZEFzQmFXYzRnbkRVdXhPZDlQTXhGdzNaa3ZYMVR5QU5qL3hVL1JFClN4Vkg5eFVld0xJZ0pqZlAxM010MERIbXdEOUpZT3M4OVdZU0owTkJMMzVYZm40UytQVkF3bm1lQ0tlUDgzU0kKSUxtbFFEUlVsMlZYCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K\n      server: https://80.85.250.250:6443\n    name: pulp3-demo\ncontexts:\n  - context:\n      cluster: pulp3-demo\n      user: kubernetes-admin\n    name: kubernetes-admin@pulp3-demo\ncurrent-context: kubernetes-admin@pulp3-demo\nkind: Config\npreferences: {}\nusers:\n  - name: kubernetes-admin\n    user:\n      client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURLVENDQWhHZ0F3SUJBZ0lJV1QzUTJGOCtZWDR3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TlRBeU1qWXhOVFV4TXpsYUZ3MHlOakF5TWpZeE5UVTJORE5hTUR3eApIekFkQmdOVkJBb1RGbXQxWW1WaFpHMDZZMngxYzNSbGNpMWhaRzFwYm5NeEdUQVhCZ05WQkFNVEVHdDFZbVZ5CmJtVjBaWE10WVdSdGFXNHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEaGdVdDEKeGxiSThweGFuMDQ2dEFjV1dhNWZFbXRiU2tvaVViWGdMUGJtUk9ySnVjc1J6ays1YnpkUGovVFo0RTJuMk9aVApFYmR1N0dnY2pOUThkb0hKTUM0NElJTFNWeXRYR3lNcFU0dGxRbUxBczNVKzdSc25yV05XOUNRakFJbTB1Y1M1Ck1rSVBtRWNkeDlIcXJkenF6ZTgvNUdBSDR1QXJOM1l3MldHSVFraHlJbko5MkxlcGU2djBoa2Z3NFNoaFFYM3YKZFdicXkyYWZjVzhOVFRiS3pNbEFoVkRtVklvWUVNM25tVXVCNndCcW0yK3JkWlNuZ0tWa0ZoSkRnOVRlRU5mZgpCeitib0tIbmE3SG1sSTU1V2tQVEVBZ1YrYXFFbXVxaVdoRHRyTkU0ZDAvM1pad0pNWlJsYzUxblRlcWRoZG9xCm1kcFZoc2s5NU5yb1JGZVJBZ01CQUFHalZqQlVNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUsKQmdnckJnRUZCUWNEQWpBTUJnTlZIUk1CQWY4RUFqQUFNQjhHQTFVZEl3UVlNQmFBRkNsMEJOckVrbG5IMm03NgpZcGtSRjBGUUxFaW5NQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUFGM21qeStuQmpaRnFJMyt0Q000SFhLYmdNCkFNdi9rd2RQS1pmeU9JMlU5cHg5cUVYLzRvaHlUUWJ5VkVEY2xVMTRhc2lyeEVxWGdYV3lSTHptSytTWFNYekgKTExWMGttMEF2Qmc3N1k5SFZodmVQaERaS1p0N1cxQk1rRXpRZGsxOTY3VWJDU1ZzUXBJKzJWUVhLWTBkbW5jVApEaUtBWGw5ZTNrRVZackZ6S091cDRxaDU2eTFmelA5OHcvRXVjMnlEVlJkaFVMaGJjakhPeGdRbnJxakNxTTFxCmZMLzhGRHlGNU1LcG0vOG51RkJJUXJGTVVvUG9RMHlvc041SXNRcjY2NzFMZFJBNzNiVXFZa0F1Z0FrNFNKakwKWXNQQlQrQ3pwRGdXZ2V0VnpYd3A5UC9kSCtXYjB3VmxXcVJGOVVRRkVzNGVneGU4SHBqM0FKczJvTm5DCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K\n      client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBNFlGTGRjWld5UEtjV3A5T09yUUhGbG11WHhKclcwcEtJbEcxNEN6MjVrVHF5Ym5MCkVjNVB1VzgzVDQvMDJlQk5wOWptVXhHM2J1eG9ISXpVUEhhQnlUQXVPQ0NDMGxjclZ4c2pLVk9MWlVKaXdMTjEKUHUwYko2MWpWdlFrSXdDSnRMbkV1VEpDRDVoSEhjZlI2cTNjNnMzdlArUmdCK0xnS3pkMk1ObGhpRUpJY2lKeQpmZGkzcVh1cjlJWkg4T0VvWVVGOTczVm02c3RtbjNGdkRVMDJ5c3pKUUlWUTVsU0tHQkRONTVsTGdlc0FhcHR2CnEzV1VwNENsWkJZU1E0UFUzaERYM3djL202Q2g1MnV4NXBTT2VWcEQweEFJRmZtcWhKcnFvbG9RN2F6Uk9IZFAKOTJXY0NUR1VaWE9kWjAzcW5ZWGFLcG5hVlliSlBlVGE2RVJYa1FJREFRQUJBb0lCQUhjWWhmWHBqaVFLbmJEdQp1YTRmTGk4THBoL241bk1NUlNMaTdKODhvQmoxQk5zTkdNYUtvMmhYNkdwSXFSUDRkb3JTN3JHb2hhdzdockN0Clg5bWU3T1NJWWFDYTZ2eVR0UHdJQlFYcWJaQkpBMGFxZ0oxL00vdzhnbDZHQ2gvQ1JQZ0J0SGZxcHlEOVYzSE8KK25wcTRHWFI1UzFsTzZKdW05MjNLT0NicmZyN3FHK01uMFFUNDh2TFZYM0NPY1NCbGU0Y2YzcWNQOC9wNmQwVgpmZlIwRmNTOEtsTWFjQXg3bGk5UHRQOU5Nd1ZibEJIcm5HV3JqZ3BmTXY1R0grY25DZmNoWXo5cGhzanM2MHprCkxGczdTcUlwMFJCYVZZd3djUWkzMHFzZ1dFL3BPdHhEOTNWUnJScW40U21FTkhZMUY2SGdQWUJzbVRJYlVwVkwKc25vMk9sRUNnWUVBNGtDM280ZzBmeUFsbFIwQnlla1ZrbG90OGo1SDhmVTdKZkFZUURleGRjUTFUR0U0ZDZVQQpCNWdaZlVqZGphYkRQOFJwNjVLUVlMbDlaMkNibDJZWXFnMC9MM0FFRWk2ckQ0OStlQVhBV3M1T1dNcU1WOTVJClViaGNJUVVlaUZjV2czUE1mNUFKUFVIeDlOajRqZFpqeUJ2KzU3TGhGR3h5V0xaS2ZxWCtIYmNDZ1lFQS95ZG8KM1ZVdGxlRTlkd1BXa0o2SlJJMXZHWTh2ci9yMi9SY2pRYUxhMTdZaXNWVURnMi9QbjQrRGk4d3dmelNaK0ZqTgpGa1NRTlBzRlhMM2JQSnUvVzdRdmRHckdxTjI5YXQwUVJuVFE5cGY5aTZLQ1p2STJVcXBHZEdNaWVxYlk5OWVOCkhOZVpMZWE0UmM2SXZud3A5MEtadlFDZ1MxRy9obktjT2RaWHRQY0NnWUJrRXpRbkJVd1RIdWtBdDcvZXkxWmIKVWNBWThpdG9mb3dYRDhmcVA3Z2kyeEtvSWlpVDQwdk1FQjdXSjdDM3d4ZUIwU0w0cSs5b21TTTY0cVJ2cHgwcAp1b3BFTlV2WHJ3VEM4VG1EWlNmY0FuenRFVXBhWTF1aHFlWTJSTWxvalB6TVVDQVlIR0c1MHIxdkM3bUZJMXNuClhCcTM2WXRkT1VxcXFwYnd4Z05NcVFLQmdRRDZibS9hYlhQa204SjhRZVFpNWJmTTlSU0tmYU5Na29KQlBxaDQKRDZQRC9SeG4rUTBOd0h5RUc1UDlibGhiUWdHdFkxdEg4OXVtWklxSzBEMlNhenVTZ25QaFM3dlltbXNEckI0QgpTVDZnQ2VYdFczK3FFeW1HVVdIOWNoK3hTbm5DS0dwMFdKZ2NHVXZjR0M3VzUzODVGTUZZWkhqdjlEaUxlWW9rCnFtQkRXUUtCZ1FDTWZEL1dmWEVwQXRIU29RN3JaeDM3Z2t4b0ZmZWJwLzkyOXUzd1dIUnA2ekxDYmg2cUM0cFUKK3oxOEZQTnhMeXJncCtFZm5RdlBjcFptYk1helZzbUxYbTV3SFJzbzd0QzNxcDhiVHgyTkZRNXM2Q0k0WVJzbQpGbXlKSkRRZHdmdjJQRHdRYVdqb3A3VEh2VXVONVh3L0JVaDRIbldqVWZVTWgwUHVxVXJrT3c9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=\n",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        660,
        -20
      ],
      "id": "197bec7a-1167-497b-94ef-980afc8192f4",
      "name": "\u043a\u0443\u0431\u043a\u043e\u043d\u0444\u0438\u0433"
    },
    {
      "parameters": {
        "command": "=echo \"{{ $json.kubeconfig }}\" >> ./kubeconfig\nset KUBECONFIG=./kubeconfig\n\necho \"{{ $('\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d').item.json.renderedContent }}\" >> ./manifest\n\nkubectl --kubeconfig=./kubeconfig apply -f ./manifest"
      },
      "type": "n8n-nodes-base.executeCommand",
      "typeVersion": 1,
      "position": [
        920,
        100
      ],
      "id": "9be63a57-ca1e-4957-9edc-63098ed28fe0",
      "name": "\u0417\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u0432 \u043a\u0443\u0431\u0435\u0440"
    },
    {
      "parameters": {
        "content": "## \u0427\u0430\u0442 TG \u043a\u0443\u0434\u0430 \u0448\u043b\u0435\u0442 \u0431\u043e\u0442 \n\nhttps://t.me/+DqL75PrpI-hjOWI6"
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        920,
        -460
      ],
      "typeVersion": 1,
      "id": "d47d6261-e09c-4145-9882-4b88ea53896e",
      "name": "Sticky Note"
    }
  ],
  "connections": {
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430",
            "type": "main",
            "index": 0
          },
          {
            "node": "\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430": {
      "main": [
        [
          {
            "node": "\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435": {
      "main": [
        [
          {
            "node": "\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435": {
      "main": [
        [
          {
            "node": "\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d": {
      "main": [
        [
          {
            "node": "\u0428\u0430\u0431\u043b\u043e\u043d \u0432 telegram",
            "type": "main",
            "index": 0
          },
          {
            "node": "\u043a\u0443\u0431\u043a\u043e\u043d\u0444\u0438\u0433",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\u043a\u0443\u0431\u043a\u043e\u043d\u0444\u0438\u0433": {
      "main": [
        [
          {
            "node": "\u0417\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u0432 \u043a\u0443\u0431\u0435\u0440",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "triggerCount": 0,
  "versionId": "6512ee7a-17ed-46f7-acf9-df3cda5b24bd",
  "owner": {
    "type": "team",
    "teamId": "6iS5I7k7UsluxX9r",
    "teamName": "RND"
  },
  "parentFolderId": null
}