v0.3.0

psviderski/uncloudv0.3.0Mar 3, 2025by psviderski

AI Summary

A major feature release focusing on DNS management, Caddy deployment for global services, and replica management strategies.

Key Highlights

  • Adds comprehensive DNS CLI commands and API for cluster domain and ingress record management.
  • Implements Caddy deployment for global services and automatic ingress record generation.
  • Introduces rolling deployment strategies for replicated services.

New Features

  • DNS CLI commands to reserve, show, and delete cluster domains.
  • Caddy deploy command to deploy global services using the latest image.
  • Rolling strategy for replicated services with basic spread strategy.
  • Configuration and storage of public IP for machines.
  • Service endpoint exposure and listing commands.
  • Machine verification endpoint at /.uncloud-verify.

Full Release Notes

## Changelog
* 35804458b0e8294cc48daa417c672d65d2004f9c Merge pull request #28 from psviderski/tonyo/27-feat-social-tags
* af4629b6797a2e2adc10a77534a90a471df6652e feat(dns): add CLI commands to reserve, show, delete cluster domain
* 72548fbd1bb314fe8fe4e6491156af298924be05 feat(dns): allow to specify http(s) ports without hostname to default to cluster domain
* 2d84059d7f44a442045e6c1c7baa59e35b34bbe5 feat(dns): client for creating ingress records
* ecec42ea605e9d41f3b436a4bde0d63fee66b37a feat(dns): cluster API for creating DNS records for cluster domain
* f6cf5cc25035a050d5a81b3cdfc37e37c90bc4a2 feat(dns): cluster API for reserving/releasing cluster domain in Uncloud DNS
* 1046396edcfe4c7caff82bc53f893d12928b6346 feat(dns): configure and store public IP when adding new machine
* 289d964b2af716719f165a1260b0261a2af2800d feat(dns): configure and store public IP when initialising machine
* a5f6ec4a68d939a4dde25b3682ced4da213384d6 feat(dns): expose service as service-name.cluster-domain if cluster domain reserved
* e5f68947f9ac545f532384c89044e324a294de37 feat(dns): missed CLI changes
* d0fd9db25878556b08d4601b57f28ccc142668de feat(dns): serve machine IP at /.uncloud-verify to verify Caddy reachability
* 0ea997e82665854aecf8c5fb241526d6d09d0ea7 feat(dns): update caddy deploy command to create ingress records (stubs for now)
* 09bea1d12d0701deaf119533130017789447ffa9 feat(dns): update ingress records in Uncloud DNS when deploying Caddy
* 6bb9bdeb5a680a87d508142948a3fa21470a8379 feat(replicas): implement rolling strategy for replicated service with basic spread strategy
* 9642863d7b097850918e2835d01aaa1aa34ef785 feat(replicas): support --replicas and --machines for run command
* 6bb64ac5dc2aec39594075e2eefc32f14ee097b4 feat(smm): Add OpenGraph tags
* e13408d79fbd802c09fb3dbb6f7860b7362a5929 feat: allow to filter machines for global service deployments
* 98db5ed4406e718ee9a0bb4ed67a0d59b59193d3 feat: caddy deploy command and stub implementation
* bcb5a2a17346c5b1b5c0ce7d2ea44f5e43b0e4db feat: deploy caddy service when adding new machine to cluster
* c3b88077ac480f0e60803663268e200d10e60688 feat: deploy caddy service when initialising new cluster on remote machine
* 625a8baed33c3bdd6adcd6e6e18beeda7e2ec99c feat: implement 'caddy deploy' command to deploy global service using caddy:latest image
* f37bfd01fee86883c17baaba91ad6c956353f5a7 feat: init cluster API for updating domain records in Uncloud DNS
* d0e46186ed77aaae04ef65fbc09581b3e12fe8e3 feat: look up latest caddy version tag when deploying caddy service
* 30f1e135f16fe0c9d86d7420fc6629de7f02245f feat: print ENDPOINTS column when listing services
* 0be42f1f594d48621f9a44c8302ba50c1a698caf feat: print deployment plan for caddy deployment
* 58ecc17ac13dbb368d6b524705f172b777d75af6 feat: print service endpoints on service creation
* a16b2d1c74ee203e8c9f0d160e94657b86f3b0c0 feat: service ls command include ID column if there are multiple services with same name
* 137abde8083146bd4a76bf6c51be864054252e06 feat: set container hostname equal to container name
* d9897e5d1e7c34ddca26048f4eefbd57e581bfc1 feat: set restart policy for all services to always
* d9e350c4ddc928c3b330f79db5d0fa417885d9d8 fix(caddy): config generation for multiple https containers
* 342969b7f473832f9c323d6dbe0363312c9c1700 fix(caddy): remove debug prints
* d7f437107d1e9915436d3ca19090942b38792bc5 fix(dns): error message for ingress port without hostname and no cluster domain
* 4c239ed79a7ca78716098c9e03c43ed938596baa fix(smm): Update site description
* 968dd50705387bd66427b9f783f00891810ba084 fix(smm): Use PNG logo, add Twitter tags
* 435a794fa598dc21e2c6e2bcb8ca5140cb8b420c fix: e2e tests
* 98e1bdc9b558fa69555475674d604edfe10b8e2c fix: fail global deployment if no matchine machines found, improve caddy deploy output in particular
* 5e9b883ad5b6dca594494b146f14618e61f818c8 fix: increase wait time for machine to 5 min, discard unknown when decoding json to proto
* 86103226826bb36135c41d62d53c26fef71ea373 fix: panic when pulling non-existent image
* dcbfcbd0fb5fbe4b64a49e9303a01a3813b63ecf fix: show user-friendly image name when inspecting service
* 52117954a83fd2f7deed26d029516fee6b27d077 fix: specs equals ignores replicas
* 4cc68e3133c47c98ac898111d0865115abda07fe include cloud vm in dev set in Makefile
* 2bacebe9008f03ba8dbba32d15424bb0b518c026 refactor(dns): remove leading dot from domain when interecting with Uncloud DNS
* bcb67a407351b8f52a4a3a2944c90cea5b894e94 refactor: e2e tests for container config validation