# Copyright (c) 2024 VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

- secret:
    name: ansible_galaxy_info
    data:
      url: https://galaxy.ansible.com
      token: !encrypted/pkcs1-oaep
        - GlYV1vSho2Q5FmS2awPcOVKuatGFm7rjrlUl9LpOdqbQa49ZxxEPAJtOcQWm77NYCDsFa
          BhD3XBdH8QGgGqy0PqRgw48/kDw+3eVrXsBnaAUO583ElbMumcZdevYxHPRibR3FESinU
          zDmc4VIAGJRkE5D0QYyp6jtJhhcaKUnBKNz3qvyTW4Lh03PHIuUR2UcaopJbfJiU+xMcE
          gHZj9UZ7HwIE//q10euv/mxDwyICkdcU9UuWrNm16WdzIVtpwygJTaQNRo7pFN3POgmps
          aNILKXp7Hfp0J6Hx1Hc7GmpJ9EmyYaNyktvOSf4jqpZCJvQ5CRWKHJC+jryHYBxOoT524
          hU3Hoc32DOnytb1EZwzwu4iJbRMe1xEHWqBf9wpf3sV6B5Pvc7/IHTnU91/dlawOh5eOp
          8wq45eO5w0c+PcITu9OUhWULKhEJcPunGNr0e96wdfK7L4khiPopHUTSbFF4dOhfF1GfV
          GgFTakyVg9jKYKre0aLGW2Gah3gzXuX2IQ9XGXebsnFLdtQL5ac7ET0hKDR8tZBGrwKj6
          c8bL2vzVKjOOD+sSnv4h7l+p8igtjczyVV83pn6dJ/v1GCMCFzGdOhaKJ2DIO1KtKK4jV
          c80+tpz0x/Cr/4Ld4rJU4mqqC8Y3Kk6AC2cNzsiYh1iPlpw+D/yoE0Lgugjjzc=

- secret:
    name: cosign_key
    data:
      public: |
        -----BEGIN PUBLIC KEY-----
        MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEf5DzGuQLAvNIfiv/b7JULemWZcpU
        4uCefCqflA7wpypGLM+1lBo0pjBc/9QJAj+lG61ZNwpDx8Zk1jFGJUUl9A==
        -----END PUBLIC KEY-----
      private: !encrypted/pkcs1-oaep
        - lHcfMc85t12hzas/feMTOr1+pZVMZfQdxTMJouKIvSHpHjSQt6EwyMmWIhc+q03HUBGb5
          setWiSl1YNZIprZLyqCNCq8NjZlcBWVnw9zkkMdwN2Q6JkAe78mPHRLmVUdNqKuOVHmmr
          ThCUkQHxbieKW7ZGzAtUSouSWhfjLdx9poUf5wJx2ujotcNcCQ2Bkb7PPzWNBdzBJjRlE
          2PXW+Ni99wNZisEcjxan7QhrhFxcS+sou0R9FPds66zO9GgAYYD+4SRwF7dSUM2BXA7AZ
          0zeU6w+e2qd09eHUbHVYXeWDhYKx7FlsUetVHWzyVFg4LfnHCFC/tIWTvJnzyJIfbXziP
          KLSuv3wGlNCRZOPI7xgB0oeky++xzuTfnX2Ra9pNVZ9eAzpBArJRTOCCgltXjfWNS3QiZ
          LR3cmizPL53BUHX92MBBXPXqaEYfbkUcbcAlYYgnjYUT8rak4NW7R5qZMI0d8IWGAnC7w
          z0MGuT61LWhaPq63TusWpXPbh1GK6n8RxSAQeV9W69KSrbgirRKET2/HyW/WnDwrvYiCY
          866xxq/vtqkfB5ck/YtW6UCE5pVPzqnGBLKd+3/t9tu1j0UY/tuegi+3tLbm18E1hPg/T
          XDvEm7qkl8QerJFfI3XX8YVUcgc1/tzRHFslNXGsUFkgl6BxS9FIu5hXOIv3hQ=
        - CwAHQQkYQwM2uc4rDihEw+2jJQ0c/FxsutON5u/D48hRBxeUAzj8fTnAar+Co7jWkNHYV
          +dI/LvhT7y++gzi4kG41B2L+FJELnh2TI3+hz7XorUALHuei5aYsyIFFzVow2fP0t6nW+
          mBAYFlbO8stkDg9veIiBxv0RXaISQVNOfzOo428zt0EPJYSqno4FJ9by6plO/jY3A5h8j
          ElEs/J35vrDbWcWy80htZNKuLo6nBOaDPM1Esfd6uBsMVxxaPzUSa6yaov4pS8WV172CW
          98IaCSYY1+GGkpm+69nQmi6Ik9qILhn3yu3XqfnF/8rlrXXzhN2bDevMyPiWh/KXL4mAq
          UMWyNyXdNNY2g+5s3dCB/qoZVIdiilsDX9tvP7pQvKW4tNqLXm9+8RVbfPxVaWfKpb3JD
          02RZtvB0W+jpCk/tC3JNKpW3JVnlOGidYyLMsrMqDoKlohorq/LZ/hM4qDyYCoXr5NzJv
          Wq1JuqYu3+/gpx/PE+RI17lCKbA0vYI86L1qMkoQMK0rvShurWanz8/q7slDorWcfgHW8
          UbB4Rqd9xgk8jtHnxHNlafZrfjIJbE5W5PddzH5Q5Aw7l4sPlJ4V2hnF+mhVegCwhc7s7
          D/tlTTxjnHrQBLw9+vwDhkk/RADQbLExTIXFt6TH0No94zdTiUrTPg90s+rn6A=
