| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- // Copyright (c) Tailscale Inc & AUTHORS
- // SPDX-License-Identifier: BSD-3-Clause
- //go:build !plan9
- package main
- import (
- "testing"
- )
- // Test_statefulSetNameBase tests that parent name portion in a StatefulSet name
- // base will be truncated if the parent name is longer than 43 chars to ensure
- // that the total does not exceed 52 chars.
- // How many chars need to be cut off parent name depends on an internal var in
- // kube name generation code that can change at which point this test will break
- // and need to be changed. This is okay as we do not rely on that value in
- // code whilst being aware when it changes might still be useful.
- // https://github.com/kubernetes/kubernetes/blob/v1.28.4/staging/src/k8s.io/apiserver/pkg/storage/names/generate.go#L45.
- // https://github.com/kubernetes/kubernetes/pull/116430
- func Test_statefulSetNameBase(t *testing.T) {
- tests := []struct {
- name string
- in string
- out string
- }{
- {
- name: "43 chars",
- in: "oidhexl9o832hcbhyg4uz6o0s7u9uae54h5k8ofs9xb",
- out: "ts-oidhexl9o832hcbhyg4uz6o0s7u9uae54h5k8ofs9xb-",
- },
- {
- name: "44 chars",
- in: "oidhexl9o832hcbhyg4uz6o0s7u9uae54h5k8ofs9xbo",
- out: "ts-oidhexl9o832hcbhyg4uz6o0s7u9uae54h5k8ofs9xb-",
- },
- {
- name: "42 chars",
- in: "oidhexl9o832hcbhyg4uz6o0s7u9uae54h5k8ofs9x",
- out: "ts-oidhexl9o832hcbhyg4uz6o0s7u9uae54h5k8ofs9x-",
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- if got := statefulSetNameBase(tt.in); got != tt.out {
- t.Errorf("stsNamePrefix(%s) = %q, want %s", tt.in, got, tt.out)
- }
- })
- }
- }
|