apiVersion: v1 data: healthcheck.py: IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwojCiMgQ29weXJpZ2h0IDIwMjIgUmVkIEhhdCBJbmMuCiMKIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heQojIG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluCiMgYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiMKIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAojCiMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQojIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQKIyBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUKIyBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwojIHVuZGVyIHRoZSBMaWNlbnNlLgoKIyBUcml2aWFsIEhUVFAgc2VydmVyIHRvIGNoZWNrIGhlYWx0aCBvZiBzY2hlZHVsZXIsIGJhY2t1cCBhbmQgdm9sdW1lIHNlcnZpY2VzLgojIENpbmRlci1BUEkgaGFzdCBpdHMgb3duIGhlYWx0aCBjaGVjayBlbmRwb2ludCBhbmQgZG9lcyBub3QgbmVlZCB0aGlzLgojCiMgVGhlIG9ubHkgY2hlY2sgdGhpcyBzZXJ2ZXIgY3VycmVudGx5IGRvZXMgaXMgdXNpbmcgdGhlIGhlYXJ0YmVhdCBpbiB0aGUKIyBkYXRhYmFzZSBzZXJ2aWNlIHRhYmxlLCBhY2Nlc3NpbmcgdGhlIERCIGRpcmVjdGx5IGhlcmUgdXNpbmcgY2luZGVyJ3MKIyBjb25maWd1cmF0aW9uIG9wdGlvbnMuCiMKIyBUaGUgYmVuZWZpdCBvZiBhY2Nlc3NpbmcgdGhlIERCIGRpcmVjdGx5IGlzIHRoYXQgaXQgZG9lc24ndCBkZXBlbmQgb24gdGhlCiMgQ2luZGVyLUFQSSBzZXJ2aWNlIGJlaW5nIHVwIGFuZCB3ZSBjYW4gYWxzbyBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdGhlCiMgY29udGFpbmVyIG5vdCBoYXZpbmcgYSBjb25uZWN0aW9uIHRvIHRoZSBEQiBhbmQgdGhlIGNpbmRlciBzZXJ2aWNlIG5vdCBkb2luZwojIHRoZSBoZWFydGJlYXRzLgojCiMgRm9yIHZvbHVtZSBzZXJ2aWNlcyBhbGwgZW5hYmxlZCBiYWNrZW5kcyBtdXN0IGJlIHVwIHRvIHJldHVybiAyMDAsIHNvIGl0IGlzCiMgcmVjb21tZW5kZWQgdG8gdXNlIGEgZGlmZmVyZW50IHBvZCBmb3IgZWFjaCBiYWNrZW5kIHRvIGF2b2lkIG9uZSBiYWNrZW5kCiMgYWZmZWN0aW5nIG90aGVycy4KIwojIFJlcXVpcmVzIHRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIGFzIHRoZSBmaXJzdCBhcmd1bWVudCAodm9sdW1lLCBiYWNrdXAsCiMgc2NoZWR1bGVyKSBhbmQgb3B0aW9uYWxseSBhIHNlY29uZCBhcmd1bWVudCB3aXRoIHRoZSBsb2NhdGlvbiBvZiB0aGUKIyBjb25maWd1cmF0aW9uIGRpcmVjdG9yeSAoZGVmYXVsdHMgdG8gL2V0Yy9jaW5kZXIvY2luZGVyLmNvbmYuZCkKCmZyb20gaHR0cCBpbXBvcnQgc2VydmVyCmltcG9ydCBzaWduYWwKaW1wb3J0IHNvY2tldAppbXBvcnQgc3lzCmltcG9ydCB0aW1lCmltcG9ydCB0aHJlYWRpbmcKCmZyb20gb3Nsb19jb25maWcgaW1wb3J0IGNmZwoKZnJvbSBjaW5kZXIgaW1wb3J0IGNvbnRleHQKZnJvbSBjaW5kZXIudm9sdW1lIGltcG9ydCBjb25maWd1cmF0aW9uIGFzIHZvbF9jb25mCmZyb20gY2luZGVyIGltcG9ydCBvYmplY3RzCgoKU0VSVkVSX1BPUlQgPSA4MDgwCkNPTkYgPSBjZmcuQ09ORgpCSU5BUklFUyA9ICgndm9sdW1lJywgJ2JhY2t1cCcsICdzY2hlZHVsZXInKQoKY2xhc3MgSFRUUFNlcnZlclY2KHNlcnZlci5IVFRQU2VydmVyKToKICBhZGRyZXNzX2ZhbWlseSA9IHNvY2tldC5BRl9JTkVUNgoKY2xhc3MgSGVhcnRiZWF0U2VydmVyKHNlcnZlci5CYXNlSFRUUFJlcXVlc3RIYW5kbGVyKToKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIGluaXRpYWxpemVfY2xhc3MoY2xzLCBiaW5hcnkpOgogICAgICAgICIiIkNhbGN1bGF0ZSBhbmQgaW5pdGlhbGl6ZSBjb25zdGFudHMiIiIKICAgICAgICBjbHMuYmluYXJ5ID0gJ2NpbmRlci0nICsgYmluYXJ5CiAgICAgICAgY2xzLmN0eHQgPSBjb250ZXh0LmdldF9hZG1pbl9jb250ZXh0KCkKCiAgICAgICAgaWYgYmluYXJ5ICE9ICd2b2x1bWUnOgogICAgICAgICAgICBzZXJ2aWNlc19maWx0ZXJzID0gW3snaG9zdCc6IENPTkYuaG9zdH1dCiAgICAgICAgZWxzZToKICAgICAgICAgICAgYmFja2VuZF9vcHRzID0gWwogICAgICAgICAgICAgICAgY2ZnLlN0ck9wdCgnYmFja2VuZF9ob3N0JyksCiAgICAgICAgICAgICAgICBjZmcuU3RyT3B0KCdiYWNrZW5kX2F2YWlsYWJpbGl0eV96b25lJywgZGVmYXVsdD1Ob25lKSwKICAgICAgICAgICAgXQogICAgICAgICAgICBzZXJ2aWNlc19maWx0ZXJzID0gW10KICAgICAgICAgICAgZm9yIGJhY2tlbmQgaW4gQ09ORi5lbmFibGVkX2JhY2tlbmRzOgogICAgICAgICAgICAgICAgIyBUaGlzIGluc3RhbmNlIGdldHMgZnJvbSBiYWNrZW5kIHNlY3Rpb24gYW5kIGZhbGxzIGJhY2sgdG8KICAgICAgICAgICAgICAgICMgYmFja2VuZF9kZWZhdWx0cyBpZiBpdCdzIG5vdCBwcmVzZW50LgogICAgICAgICAgICAgICAgY29uZiA9IHZvbF9jb25mLkJhY2tlbmRHcm91cENvbmZpZ3VyYXRpb24oYmFja2VuZF9vcHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2VuZCkKICAgICAgICAgICAgICAgIGhvc3QgPSAiJXNAJXMiICUgKGNvbmYuYmFja2VuZF9ob3N0IG9yIENPTkYuaG9zdCwgYmFja2VuZCkKCiAgICAgICAgICAgICAgICAjIFdlIGFsc28gd2FudCB0byBzZXQgY2x1c3RlciB0byBOb25lIG9uIGVtcHR5IHN0cmluZ3MsIGFuZCB3ZQogICAgICAgICAgICAgICAgIyBpZ25vcmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzLgogICAgICAgICAgICAgICAgY2x1c3RlciA9IENPTkYuY2x1c3RlciBhbmQgQ09ORi5jbHVzdGVyLnN0cmlwKCkKICAgICAgICAgICAgICAgIGNsdXN0ZXIgPSAoY2x1c3RlciBvciBOb25lKSBhbmQgZid7Y2x1c3Rlcn1Ae2JhY2tlbmR9JwoKICAgICAgICAgICAgICAgIGF6ID0gKGNvbmYuYmFja2VuZF9hdmFpbGFiaWxpdHlfem9uZSBvcgogICAgICAgICAgICAgICAgICAgICAgQ09ORi5zdG9yYWdlX2F2YWlsYWJpbGl0eV96b25lKQogICAgICAgICAgICAgICAgc2VydmljZXNfZmlsdGVycy5hcHBlbmQoeydob3N0JzogaG9zdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2x1c3Rlcic6IGNsdXN0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F2YWlsYWJpbGl0eV96b25lJzogYXp9KQoKICAgICAgICAjIFN0b3JlIHRoZSBmaWx0ZXJzIHVzZWQgdG8gZmluZCBvdXQgc2VydmljZXMuIEZvciB2b2x1bWUgaXQncyBhIGxpc3QKICAgICAgICAjIG9mIGRpY3QvZmlsdGVycywgYW5kIGZvciBvdGhlcnMgaXMgYSBzaW5nbGUgZWxlbWVudCB3aXRoIHRoZSBmaWx0ZXJzLgogICAgICAgIGNscy5zZXJ2aWNlc19maWx0ZXJzID0gc2VydmljZXNfZmlsdGVycwoKICAgIEBzdGF0aWNtZXRob2QKICAgIGRlZiBjaGVja19zZXJ2aWNlKHNlcnZpY2VzLCAqKmZpbHRlcnMpOgogICAgICAgICMgQ2hlY2sgc2VydmljZXMgREIgY29ubmVjdGl2aXR5IGJ5IGxvb2tpbmcgYXQgdGhlaXIgREIgaGVhcnRiZWF0CiAgICAgICAgb3VyX3NlcnZpY2VzID0gW3NlcnZpY2UgZm9yIHNlcnZpY2UgaW4gc2VydmljZXMKICAgICAgICAgICAgICAgICAgICAgICAgaWYgYWxsKGdldGF0dHIoc2VydmljZSwga2V5LCBOb25lKSA9PSB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gZmlsdGVycy5pdGVtcygpKV0KICAgICAgICBpZiBub3Qgb3VyX3NlcnZpY2VzOgogICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vdCBmb3VuZCcsIGYnU2VydmljZSBub3QgZm91bmQgd2l0aDoge2ZpbHRlcnN9JykKCiAgICAgICAgbnVtX3NlcnZpY2VzID0gbGVuKG91cl9zZXJ2aWNlcykKICAgICAgICBpZiBudW1fc2VydmljZXMgIT0gMToKICAgICAgICAgICAgcHJpbnQoZidUb28gbWFueSBzZXJ2aWNlcyBmb3VuZCEge251bV9zZXJ2aWNlc30nKQoKICAgICAgICBvayA9IGFsbChzZXJ2aWNlLmlzX3VwIGZvciBzZXJ2aWNlIGluIG91cl9zZXJ2aWNlcykKICAgICAgICBpZiBub3Qgb2s6CiAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignU2VydmljZSBlcnJvcicsICdTZXJ2aWNlIGlzIG5vdCBVUCcpCgogICAgICAgICMgVE9ETzogQWRkIGEgUmFiYml0TVEgY29ubmVjdGl2aXR5IGNoZWNrLCBmb3IgZXhhbXBsZSB1c2luZyB0aGUKICAgICAgICAjICAgICAgIGxvZ2dpbmcgZ2V0IGZlYXR1cmUKCiAgICBkZWYgZG9fR0VUKHNlbGYpOgogICAgICAgIHRyeToKICAgICAgICAgICAgc2VydmljZXMgPSBvYmplY3RzLlNlcnZpY2VMaXN0LmdldF9hbGxfYnlfYmluYXJ5KHNlbGYuY3R4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYmluYXJ5KQogICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjOgogICAgICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2Vycm9yKDUwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnREIgYWNjZXNzIGVycm9yJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmJ0ZhaWxlZCB0byBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZToge2V4Y30nKQoKICAgICAgICBmb3Igc2VydmljZV9maWx0ZXJzIGluIHNlbGYuc2VydmljZXNfZmlsdGVyczoKICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgc2VsZi5jaGVja19zZXJ2aWNlKHNlcnZpY2VzLCAqKnNlcnZpY2VfZmlsdGVycykKICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGM6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2Vycm9yKDUwMCwgZXhjLmFyZ3NbMF0sIGV4Yy5hcmdzWzFdKQoKICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwKQogICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtdHlwZSIsICJ0ZXh0L2h0bWwiKQogICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQogICAgICAgIHNlbGYud2ZpbGUud3JpdGUoJzxodG1sPjxib2R5Pk9LPC9ib2R5PjwvaHRtbD4nLmVuY29kZSgndXRmLTgnKSkKCgpkZWYgZ2V0X3N0b3BwZXIoc2VydmVyKToKICAgIGRlZiBzdG9wcGVyKHNpZ25hbF9udW1iZXI9Tm9uZSwgZnJhbWU9Tm9uZSk6CiAgICAgICAgcHJpbnQoIlN0b3BwaW5nIHNlcnZlci4iKQogICAgICAgIHNlcnZlci5zaHV0ZG93bigpCiAgICAgICAgc2VydmVyLnNlcnZlcl9jbG9zZSgpCiAgICAgICAgcHJpbnQoIlNlcnZlciBzdG9wcGVkLiIpCiAgICAgICAgc3lzLmV4aXQoMCkKICAgIHJldHVybiBzdG9wcGVyCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIGlmIDMgPCBsZW4oc3lzLmFyZ3YpIDwgMiBvciBzeXMuYXJndlsxXSBub3QgaW4gQklOQVJJRVM6CiAgICAgICAgcHJpbnQoJ0hlYWx0aGNoZWNrIHJlcXVpcmVzIHRoZSBiaW5hcnkgdHlwZSBhcyBhcmd1bWVudCAob25lIG9mOiAnCiAgICAgICAgICAgICAgKyAnLCAnLmpvaW4oQklOQVJJRVMpICsKICAgICAgICAgICAgICAnKSBhbmQgb3B0aW9uYWxseSB0aGUgbG9jYXRpb24gb2YgdGhlIGNvbmZpZy5kIGRpcmVjdG9yeS4nKQogICAgICAgIHN5cy5leGl0KDEpCiAgICBiaW5hcnkgPSBzeXMuYXJndlsxXQoKICAgIGNmZ19kaXIgPSAoc3lzLmFyZ3ZbMl0gaWYgbGVuKHN5cy5hcmd2KSA9PSAzIGVsc2UKICAgICAgICAgICAgICAgJy9ldGMvY2luZGVyL2NpbmRlci5jb25mLmQnKQoKICAgIG9iamVjdHMucmVnaXN0ZXJfYWxsKCkKCiAgICAjIER1ZSB0byBvdXIgaW1wb3J0cyBjaW5kZXIuY29tbW9uLmNvbmZpZy5nbG9iYWxfb3B0cyBhcmUgcmVnaXN0ZXJlZCBpbgogICAgIyBjaW5kZXIvdm9sdW1lL19faW5pdF9fLnB5IGJyaW5naW5nIGluIHRoZSBmb2xsb3dpbmcgY29uZmlnIG9wdGlvbnMgd2UKICAgICMgd2FudDogaG9zdCwgc3RvcmFnZV9hdmFpbGFiaWxpdHlfem9uZSwgc2VydmljZV9kb3duX3RpbWUsIGNsdXN0ZXIsCiAgICAjIGVuYWJsZWRfYmFja2VuZHMKICAgICMgSW5pdGlhbGl6ZSBPc2xvIENvbmZpZwogICAgQ09ORi5yZWdpc3Rlcl9vcHQoY2ZnLlN0ck9wdCgnY2x1c3RlcicsIGRlZmF1bHQ9Tm9uZSkpCiAgICBDT05GKFsgJy0tY29uZmlnLWRpcicsIGNmZ19kaXJdLCBwcm9qZWN0PSdjaW5kZXInKQoKICAgIEhlYXJ0YmVhdFNlcnZlci5pbml0aWFsaXplX2NsYXNzKGJpbmFyeSkKCiAgICBob3N0bmFtZSA9IHNvY2tldC5nZXRob3N0bmFtZSgpCiAgICBpcHY2X2FkZHJlc3MgPSBzb2NrZXQuZ2V0YWRkcmluZm8oaG9zdG5hbWUsIE5vbmUsIHNvY2tldC5BRl9JTkVUNikKICAgIGlmIGlwdjZfYWRkcmVzczoKICAgICAgICB3ZWJTZXJ2ZXIgPSBIVFRQU2VydmVyVjYoKCI6OiIsU0VSVkVSX1BPUlQpLCBIZWFydGJlYXRTZXJ2ZXIpCiAgICBlbHNlOgogICAgICAgIHdlYlNlcnZlciA9IHNlcnZlci5IVFRQU2VydmVyKCgiMC4wLjAuMCIsIFNFUlZFUl9QT1JUKSwgSGVhcnRiZWF0U2VydmVyKQogICAgc3RvcCA9IGdldF9zdG9wcGVyKHdlYlNlcnZlcikKCiAgICAjIE5lZWQgdG8gcnVuIHRoZSBzZXJ2ZXIgb24gYSBkaWZmZXJlbnQgdGhyZWFkIGJlY2F1c2UgaXRzIHNodXRkb3duIG1ldGhvZAogICAgIyB3aWxsIGJsb2NrIGlmIGNhbGxlZCBmcm9tIHRoZSBzYW1lIHRocmVhZCwgYW5kIHRoZSBzaWduYWwgaGFuZGxlciBtdXN0IGJlCiAgICAjIG9uIHRoZSBtYWluIHRocmVhZCBpbiBQeXRob24uCiAgICB0aHJlYWQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD13ZWJTZXJ2ZXIuc2VydmVfZm9yZXZlcikKICAgIHRocmVhZC5kYWVtb24gPSBUcnVlCiAgICB0aHJlYWQuc3RhcnQoKQogICAgcHJpbnQoZiJDaW5kZXIgSGVhbHRoY2hlY2sgU2VydmVyIHN0YXJ0ZWQgaHR0cDovL3tob3N0bmFtZX06e1NFUlZFUl9QT1JUfSIpCiAgICBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdURVJNLCBzdG9wKQoKICAgIHRyeToKICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICB0aW1lLnNsZWVwKDYwKQogICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgogICAgICAgIHBhc3MKICAgIGZpbmFsbHk6CiAgICAgICAgc3RvcCgpCg== run-on-host: IyEvYmluL3NoCmV4ZWMgbnNlbnRlciAtYSAtdCAxIC0tIGByZWFscGF0aCAtcyAkMGAgIiRAIgo= kind: Secret metadata: creationTimestamp: '2025-10-11T10:54:33Z' labels: cinder.openstack.org/name: cinder-b5802 cinder.openstack.org/namespace: openstack cinder.openstack.org/uid: 41aa9d06-7b38-43c2-aa89-c2a0e5bad1d8 service: cinder name: cinder-b5802-scripts namespace: openstack ownerReferences: - apiVersion: cinder.openstack.org/v1beta1 blockOwnerDeletion: true controller: true kind: Cinder name: cinder-b5802 uid: 41aa9d06-7b38-43c2-aa89-c2a0e5bad1d8 resourceVersion: '39736' uid: 05682e22-9cfa-4ba3-93d8-7a2edc5c4af1 type: Opaque