ProHoster > Blog > administracja > # Wydano GitLab 13.4 z pamięcią HashiCorp dla zmiennych CI i agentem Kubernetes
# Wydano GitLab 13.4 z pamięcią HashiCorp dla zmiennych CI i agentem Kubernetes
Wydano wersję 13.4 z pamięcią HashiCorp dla zmiennych CI, agentem Kubernetes i centrum bezpieczeństwa, a także przełączalnymi funkcjami w Starterze
W GitLab zawsze myślimy o tym, jak możemy pomóc użytkownikom zmniejszyć ryzyko, poprawić wydajność i poprawić szybkość dostarczania na Twojej ulubionej platformie. W tym miesiącu dodaliśmy wiele przydatnych nowych funkcji, które rozszerzają możliwości bezpieczeństwa, zmniejszają liczbę luk, zwiększają wydajność, upraszczają pracę z GitLabem i pomagają Twojemu zespołowi jeszcze szybciej dostarczać funkcje. Mamy nadzieję, że główne funkcje wydania okażą się przydatne i przydatne 53 inne nowe funkcje, dodane w tym wydaniu.
Innym sposobem ograniczenia ryzyka jest użycie nowego Agent GitLab Kubernetes. Zespoły operacyjne mogą wdrażać klastry Kubernetes z GitLab bez konieczności udostępniania swojego klastra całemu Internetowi. Wprowadzamy także obsługę automatycznej kontroli wersji dla nowych plików stanu Terraform GitLab zarządzał stanem Terraform w celu zapewnienia zgodności i łatwości debugowania. Wreszcie stał się panel bezpieczeństwa instancji Centrum bezpieczeństwa GitLab z raportami o podatnościach i ustawieniami zabezpieczeń.
Wygodniejsza i wydajniejsza praca z GitLabem
Ulepszyliśmy nasze globalne wyszukiwanie, aby uwzględnić szybka nawigacja z paska wyszukiwania, umożliwiając łatwe przejście do najnowszych zgłoszeń, grup, projektów, ustawień i tematów pomocy. Z radością ogłaszamy, że GitLab Pages pojawiły się przekierowania do przekierowania poszczególnych stron i katalogów w obrębie serwisu, co umożliwi użytkownikom efektywniejsze wdrażanie swoich witryn. A dla tych, którzy chcieliby otrzymać rozszerzone informacje na temat wdrożenia, ta wersja umożliwia zarządzaj setkami obsługiwanych wdrożeń projektów z paska narzędzi środowiska!
Fabio wniósł znaczący wkład wkład в wyświetlanie pokrycia kodu w różnicach żądań scalania - funkcja, na którą społeczność GitLab czekała od bardzo dawna. To naprawdę ważny wkład w nietrywialne zmiany, które wymagały stałej współpracy z członkami zespołu GitLab i wpływały na wiele obszarów projektu, takich jak UX, front-end i back-end.
W wersji 12.10 GitLab wprowadził możliwość odbierania i przesyłania kluczy do zadań CI przy użyciu modułu obsługi zadań GitLab (biegacza GitLab). Teraz się rozwijamy uwierzytelnianie za pomocą JWT, dodając nową składnię secrets do pliku .gitlab-ci.yml. Ułatwi to konfigurację i korzystanie z repozytorium HashiCorp w GitLabie.
Integracja GitLaba z Kubernetesem od dawna umożliwia wdrażanie w klastrach Kubernetes bez konieczności ręcznej konfiguracji. Wielu użytkownikom spodobała się łatwość obsługi tego pakietu, inni napotkali pewne trudności. Dla bieżącej integracji Twój klaster musi być dostępny z Internetu, aby GitLab miał do niego dostęp. W przypadku wielu organizacji nie jest to możliwe, ponieważ ograniczają one dostęp do klastrów ze względów bezpieczeństwa, zgodności lub przepisów. Aby obejść te ograniczenia, użytkownicy musieli zbudować swoje narzędzia w oparciu o GitLab, w przeciwnym razie nie mogliby korzystać z tej funkcji.
Dzisiaj przedstawiamy GitLab Kubernetes Agent, nowy sposób wdrażania w klastrach Kubernetes. Agent działa wewnątrz klastra, więc nie trzeba udostępniać go całemu Internetowi. Agent koordynuje wdrożenie, żądając nowych zmian od GitLab, zamiast wypychać aktualizacje do klastra przez GitLab. Bez względu na to, jakiej metody GitOps używasz, GitLab Ci pomoże.
Należy pamiętać, że jest to pierwsza wersja agenta. Naszym obecnym celem w przypadku GitLab Kubernetes Agent jest konfigurowanie wdrożeń i zarządzanie nimi za pomocą kodu. Niektóre istniejące funkcje integracji Kubernetes, takie jak tablice wdrożeniowe i aplikacje zarządzane przez GitLab, nie są jeszcze obsługiwane. My przypuszczamyże te możliwości zostaną dodane do agenta w przyszłych wersjach, a także nowe integracje skupione na bezpieczeństwie i zgodności.
Wcześniej system uprawnień GitLaba utrudniał właściwy podział obowiązków w zespole pomiędzy osobami odpowiedzialnymi za rozwój i osobami odpowiedzialnymi za wdrożenie. Wraz z wydaniem GitLab 13.4 możesz udzielić pozwolenia na zatwierdzanie żądań scalania w celu wdrożenia, a także na faktyczne wdrażanie kodu osobom, które nie piszą kodu, bez udzielania im praw dostępu opiekuna (w rosyjskiej lokalizacji GitLab „opiekun” ).
Wcześniej zarządzanie lukami w zabezpieczeniach na poziomie instancji było ograniczone zarówno pod względem funkcjonalności, jak i elastyczności. Interfejs stanowił pojedynczą stronę zawierającą szczegółowe informacje o lukach, wykresy wskaźników i ustawienia. Nie ma zbyt wiele miejsca na rozwijanie tych funkcji lub korzystanie z innych funkcji bezpieczeństwa.
Wprowadziliśmy zasadnicze zmiany w sposobie zarządzania bezpieczeństwem i przejrzystością w GitLabie. Panel bezpieczeństwa instancji został przekształcony w całe centrum bezpieczeństwa. Największą zmianą jest wprowadzenie nowej struktury menu: zamiast jednej strony, teraz osobno widzisz panel bezpieczeństwa, raport o podatnościach i sekcję ustawień. Chociaż funkcjonalność się nie zmieniła, podzielenie jej na części umożliwi ulepszenia tej sekcji, co w innym przypadku byłoby trudne. Stanowi to również podstawę do dodania w przyszłości innych funkcji związanych z bezpieczeństwem.
Dedykowana sekcja Raportu o podatnościach ma teraz więcej miejsca na wyświetlenie ważnych szczegółów. Oto luki, które znajdują się obecnie na liście luk projektu. Przeniesienie widżetów ze wskaźnikami podatności do osobnej sekcji tworzy wygodny panel sterowania bezpieczeństwem. Jest to teraz płótno dla przyszłych wizualizacji — nie tylko do zarządzania lukami w zabezpieczeniach, ale także do wszelkich wskaźników związanych z bezpieczeństwem. Wreszcie oddzielny obszar ustawień tworzy wspólną przestrzeń dla wszystkich ustawień zabezpieczeń na poziomie instancji, a nie tylko zarządzania lukami w zabezpieczeniach.
Na początku tego roku GitLab podjął pewne zobowiązanie przenieś 18 funkcji w otwarte oprogramowanie. W tej wersji zakończyliśmy migrację przełączalnych funkcji do planu Starter i będziemy kontynuować migrację ich do wersji Core GitLab 13.5. Cieszymy się, że możemy udostępnić tę funkcję większej liczbie użytkowników i chcemy dowiedzieć się, jak z niej korzystasz.
Czasami podczas nawigacji w GitLabie chcesz przejść bezpośrednio do konkretnego projektu, a nie do strony wyników wyszukiwania.
Korzystając z globalnego paska wyszukiwania, możesz szybko przejść do najnowszych zgłoszeń, grup, projektów, ustawień i tematów pomocy. Możesz nawet użyć skrótu klawiszowego /aby przesunąć kursor na pasek wyszukiwania, aby poruszać się po GitLabie jeszcze efektywniej!
Przeglądając żądanie scalania, ustalenie, czy zmieniony kod podlega testom jednostkowym, może być trudne. Zamiast tego recenzenci mogą polegać na ogólnym zasięgu i poprosić o jego zwiększenie przed zatwierdzeniem wniosku o połączenie. Może to prowadzić do przypadkowego podejścia do pisania testów, które w rzeczywistości nie poprawi jakości kodu ani zasięgu testów.
Teraz, przeglądając różnicę w żądaniu scalania, zobaczysz wizualne przedstawienie pokrycia kodu. Nowe oceny pozwolą szybko zorientować się, czy zmieniony kod podlega testowi jednostkowemu, co pomoże przyspieszyć przegląd kodu oraz czas scalania i wdrażania nowego kodu.
Od wydania GitLab 12.5 przy użyciu panele środowiskowe można monitorować stan środowisk, ale nie więcej niż siedem środowisk w trzech projektach. W wersji 13.4 udoskonaliliśmy ten panel, dzieląc go na strony, aby pomóc w utrzymaniu i zarządzaniu środowiskami na dużą skalę. Teraz możesz zobaczyć więcej środowisk w większej liczbie projektów.
Testowanie fuzzingu API to świetny sposób na znalezienie błędów i luk w aplikacjach internetowych i interfejsach API, które mogą przeoczyć inne skanery i metody testowania.
Testowanie fuzzingu API w GitLabie pozwala na udostępnienie Specyfikacja OpenAPI v2 lub plik HAR aplikacji, a następnie automatycznie generuje losowe dane wejściowe przeznaczone do testowania przypadków brzegowych i znajdowania błędów. Wyniki są natychmiast widoczne w Twoim rurociągu.
To jest nasza pierwsza wersja testów fuzz API i chętnie poznamy Twoją opinię. Mamy więcej w magazynie do testów fuzz wiele pomysłów, na którym będziemy opierać się na wydaniu tej funkcji.
Wcześniej utworzenie wykresu w dashboardzie metryk w GitLabie nie było łatwym zadaniem. Po utworzeniu metryki w pliku YAML panelu kontrolnego dokonano zmian w master, bez możliwości sprawdzenia, czy nowo utworzony wykres działa dokładnie tak, jak potrzebujesz. Począwszy od tej wersji, możesz podejrzeć zmiany podczas tworzenia wykresu, uzyskując pogląd na wynik przed wysłaniem zmian do pliku YAML dashboardu.
Kiedy zarządzasz dużą liczbą projektów w GitLabie, potrzebujesz jednego źródła informacji o tym, jak pokrycie kodu zmienia się w czasie we wszystkich projektach. Wcześniej wyświetlenie tych informacji wymagało żmudnej i czasochłonnej pracy ręcznej: trzeba było pobrać dane pokrycia kodu z każdego projektu i połączyć je w tabelę.
W wersji 13.4 możliwe stało się łatwe i szybkie składanie .csv plik zawierający wszystkie dane dotyczące pokrycia kodu dla wszystkich projektów grupy lub dla wybranych projektów. Ta funkcja to MVC, po niej pojawi się możliwość średnie pokrycie działki w czasie.
To wydanie wprowadza obsługę kilku nowych języków do testów fuzz mających na celu pełne pokrycie.
Teraz możesz ocenić pełne możliwości testów fuzzingowych w aplikacjach Java, Rust i Swift oraz znaleźć błędy i luki, które mogą przeoczyć inne skanery i metody testowania.
Strona Środowiska pokazuje ogólny stan środowisk. W tej wersji ulepszyliśmy tę stronę, dodając wyświetlanie alertów. Wyzwalane alerty wraz ze stanem środowisk pomogą Ci szybko podjąć działania w celu skorygowania zaistniałych sytuacji.
Korzystając z zagnieżdżonych potoków, można teraz uruchamiać nowe potoki wewnątrz potoków podrzędnych. Dodatkowy poziom głębokości może być przydatny, jeśli potrzebna jest elastyczność w zakresie generowania zmiennej liczby potoków.
Wcześniej w przypadku korzystania z potoków zagnieżdżonych każdy potok podrzędny wymagał ręcznego zdefiniowania zadania wyzwalacza w potoku nadrzędnym. Teraz możesz tworzyć zagnieżdżone potoki, które będą dynamicznie uruchamiać dowolną liczbę nowych zagnieżdżonych potoków. Przykładowo, jeśli posiadasz monorepozytorium, możesz dynamicznie wygenerować pierwszy podpotok, który sam utworzy wymaganą liczbę nowych rurociągów na podstawie zmian w odgałęzieniu.
Poprzednio nawigacja pomiędzy potokami nadrzędnymi i zagnieżdżonymi nie była zbyt wygodna — aby dostać się do żądanego potoku, trzeba było wielu kliknięć. Nie było także łatwo ustalić, które zadanie rozpoczęło realizację rurociągu. Teraz znacznie łatwiej będzie zobaczyć połączenia między potokami nadrzędnymi i zagnieżdżonymi.
Jeśli używałeś macierz zadań, być może zauważyłeś, że trudno było określić, która zmienna macierzowa została użyta dla konkretnego zadania, ponieważ nazwy zadań wyglądały następująco matrix 1/4. W wersji 13.4 zamiast ogólnej nazwy zadania zobaczysz odpowiednie wartości zmiennych, które zostały użyte w tym zadaniu. Na przykład, jeśli Twoim celem jest debugowanie architektury x86, zadanie zostanie wywołane matrix: debug x86.
Użytkownicy GitLab będą teraz mogli połączyć swoje konta GitLab z kontem Atlassian Cloud. Umożliwi to zalogowanie się do GitLab przy użyciu danych uwierzytelniających Atlassian, a także położy podwaliny pod przyszłe ulepszenia integracji. Gitlab z Jirą oraz z innymi produktami z linii Atlassian.
Organizacje zorientowane na zgodność potrzebują sposobu, aby pokazać audytorom całościowy obraz komponentów związanych z dowolną zmianą w produkcji. W GitLab oznacza to gromadzenie wszystkiego w jednym miejscu: żądań scalania, zgłoszeń, potoków, skanów bezpieczeństwa i innych danych dotyczących zatwierdzeń. Do tej pory trzeba było albo zbierać je ręcznie w GitLabie, albo konfigurować narzędzia do zbierania informacji, co nie było zbyt wydajne.
Możesz teraz programowo zbierać i eksportować te dane, aby spełnić wymagania audytu lub przeprowadzić inne analizy. Aby wyeksportować listę wszystkich zatwierdzeń scalania dla bieżącej grupy, musisz przejść do Panele zgodności i kliknij przycisk Lista wszystkich zatwierdzeń scalających. Wynikowy plik będzie zawierał wszystkie zatwierdzenia żądania połączenia, ich autora, identyfikator powiązanego żądania połączenia, grupę, projekt, potwierdzenia i inne informacje.
Zarządzanie dostępem do przestrzeni nazw GitLab jest ważną częścią działań zapewniających zgodność. Od zasad najmniejszych uprawnień po wyłączanie dostępu czasowego, może istnieć kilka wymagań związanych z osobistymi tokenami dostępu w GitLab. Aby ułatwić utrzymanie i zarządzanie wszystkimi poświadczeniami użytkownika w Twojej przestrzeni nazw, udostępniliśmy możliwość wylistowania wszystkich osobistych tokenów dostępu i opcjonalnie odmówić dostępu poprzez API.
Te ulepszenia interfejsu API GitLab umożliwiają użytkownikom wyświetlanie i unieważnianie własnych tokenów dostępu osobistego, a administratorom wyświetlanie i unieważnianie tokenów użytkowników. Administratorom będzie teraz łatwiej sprawdzić, kto ma dostęp do ich przestrzeni nazw, podejmować decyzje dotyczące dostępu w oparciu o dane użytkownika i unieważniać osobiste tokeny dostępu, które mogły zostać naruszone lub nie mieszczą się w zasadach zarządzania dostępem firmy.
Przeglądając zmiany w kodzie, dyskusje i zatwierdzenia żądań scalania, często pożądane jest wykonanie lokalnego sprawdzenia oddziału w celu głębszego przeglądu. Jednak znalezienie nazwy wątku staje się coraz trudniejsze w miarę dodawania większej ilości treści do opisu żądania połączenia i konieczności przewijania strony w dół.
Dodaliśmy nazwę oddziału do paska bocznego żądania połączenia, dzięki czemu jest ona dostępna w dowolnym momencie i eliminuje potrzebę przewijania całej strony. Podobnie jak link do żądania połączenia, sekcja gałęzi źródłowej zawiera wygodny przycisk „kopiuj”.
Dzięki Ethana Reesora za Twój ogromny wkład w rozwój tej funkcji!
Żądania scalania, które dodają zmiany do wielu plików, czasami zwijają różnice między dużymi plikami, aby poprawić wydajność renderowania. Kiedy tak się stanie, możliwe jest przypadkowe pominięcie pliku podczas przeglądania, szczególnie w przypadku żądań połączenia z dużą liczbą plików. Począwszy od wersji 13.4, żądania scalania będą oznaczać różnice zawierające złożone pliki, dzięki czemu nie przegapisz tych plików podczas przeglądania kodu. Dla jeszcze większej przejrzystości planujemy dodać wyróżnianie tych plików w przyszłej wersji. Bądź na bieżąco z aktualizacjami dot bilet gitlab#16047.
W sekcji różnic w żądaniach scalania duże pliki są zwijane, aby poprawić wydajność. Jednakże podczas przeglądania kodu niektóre pliki mogą zostać pominięte, gdy recenzent przewija listę plików, ponieważ wszystkie duże pliki są zwinięte.
Dodaliśmy widoczne ostrzeżenie na górze strony porównywania żądań połączenia, aby poinformować użytkowników, że w tej sekcji znajduje się scalony plik. Dzięki temu podczas sprawdzania nie przegapisz żadnych zmian we wniosku o połączenie.
Poprzednio, gdy główny węzeł klastra Gitaly przechodził w tryb offline, repozytoria w tym węźle były oznaczane jako tylko do odczytu. Zapobiegło to utracie danych w sytuacjach, gdy w węźle wystąpiły zmiany, które nie zostały jeszcze zreplikowane. Gdy węzeł powrócił do trybu online, GitLab nie został automatycznie przywrócony, a administratorzy musieli ręcznie rozpocząć proces synchronizacji lub pogodzić się z utratą danych. Inne sytuacje, takie jak awaria zadania replikacji w węźle dodatkowym, mogą również spowodować, że repozytoria będą nieaktualne lub przeznaczone tylko do odczytu. W tym przypadku repozytorium pozostawało nieaktualne do czasu wystąpienia kolejnej operacji zapisu, która uruchomiłaby zadanie replikacji.
By rozwiązać ten problem Prefekt teraz planuje zadanie replikacji, gdy wykryje nieaktualne repozytorium w jednym węźle i najnowszą wersję repozytorium w innym. To zadanie replikacji automatycznie aktualizuje repozytorium, eliminując potrzebę ręcznego przywracania danych. Automatyczne odzyskiwanie gwarantuje również, że węzły dodatkowe zostaną szybko zaktualizowane w przypadku niepowodzenia zadania replikacji, zamiast czekać na następną operację zapisu. Ponieważ wiele klastrów Gilaly przechowuje dużą liczbę repozytoriów, znacznie skraca to czas, jaki administratorzy i inżynierowie ds. niezawodności spędzają na odzyskiwaniu danych po błędzie.
Ponadto automatyczna naprawa rozpoczyna replikację repozytoriów na każdym nowym węźle Gitaly dodanym do klastra, eliminując ręczną pracę podczas dodawania nowych węzłów.
Efektywna komunikacja w GitLabie opiera się na listach zadań do wykonania. Jeśli wspomniano o Tobie w komentarzu, bardzo ważne jest, aby móc od razu przejść do zadania i albo zacząć coś robić, albo oznaczyć je jako ukończone. Ważne jest także to, aby móc przypisać sobie zadanie, gdy trzeba nad czymś popracować lub wrócić do niego później.
Wcześniej nie można było dodawać zadań ani oznaczać ich jako ukończonych podczas pracy z projektami. To poważnie zakłóciło efektywność komunikacji pomiędzy zespołami produktowymi, ponieważ zadania do wykonania są krytycznym elementem przepływu pracy w GitLabie.
W wersji 13.4 projekty nadążają za komentarzami dotyczącymi zgłoszeń w korzystaniu z zadań, dzięki czemu praca z nimi jest bardziej spójna i wydajna.
Ulepszyliśmy przewodnik rozwiązywania problemów dla GitLab CI/CD, dodając więcej informacji o typowych problemach, które możesz napotkać. Mamy nadzieję, że ulepszona dokumentacja będzie cennym zasobem pomagającym szybko i łatwo uruchomić GitLab CI/CD.
Wcześniej żądania scalania mogły przypadkowo wypaść z kolejki scalania z powodu spóźnionych komentarzy. Jeśli żądanie połączenia znajdowało się już w kolejce i ktoś dodał do niego komentarz, który utworzył nową, nierozwiązaną dyskusję, żądanie połączenia zostało uznane za niekwalifikujące się do połączenia i wypadłoby z kolejki. Teraz, po dodaniu żądania scalania do kolejki scalania, można dodawać nowe komentarze bez obawy, że zakłóci to proces scalania.
Deweloperzy powinni być w stanie zobaczyć wartość pokrycia kodu po zakończeniu potoku — nawet w złożonych scenariuszach, takich jak uruchomienie potoku z wieloma zadaniami, które należy przeanalizować w celu obliczenia wartości pokrycia. Poprzednio widżet żądania łączenia pokazywał tylko średnią z tych wartości, co oznaczało, że aby uzyskać pośrednie wartości zapotrzebowania, trzeba było przejść do strony oferty pracy i wrócić do żądania łączenia. Aby zaoszczędzić czas i te dodatkowe kroki, sprawiliśmy, że widżet wyświetla średnią wartość pokrycia, jego zmiany pomiędzy oddziałami docelowymi i źródłowymi oraz podpowiedź, która pokazuje wartość pokrycia dla każdego zadania, na podstawie którego obliczono średnią.
Rejestr pakietów GitLab to miejsce do przechowywania i dystrybucji pakietów w różnych formatach. Jeśli w projekcie lub grupie masz dużo pakietów, musisz szybko zidentyfikować nieużywane pakiety i usunąć je, aby uniemożliwić innym ich pobranie. Możesz usunąć pakiety z rejestru poprzez Pakiet API lub poprzez interfejs użytkownika rejestru pakietów. Jednak do tej pory nie można było usuwać pakietów podczas przeglądania grupy za pomocą interfejsu użytkownika. W rezultacie konieczne było usuwanie niepotrzebnych pakietów dla każdego projektu, co było nieefektywne.
Możesz teraz usuwać pakiety podczas przeglądania rejestru pakietów grupy. Po prostu przejdź do strony rejestru pakietów grupy, przefiltruj pakiety według nazwy i usuń te, których nie potrzebujesz.
Możesz użyć repozytorium Conan w GitLab do publikowania i rozpowszechniania zależności C/C++. Jednak wcześniej pakiety można było skalować tylko do poziomu instancji, ponieważ nazwa pakietu Conan mogła mieć maksymalnie 51 znaków. Jeśli chcesz np. opublikować pakiet z podgrupy gitlab-org/ci-cd/package-stage/feature-testing/conan, było to prawie niemożliwe.
Możesz teraz skalować pakiety Conana do poziomu projektu, co ułatwia publikowanie i rozpowszechnianie zależności projektów.
Z przyjemnością dodamy do naszej listy skanowanie zależności dla projektów kodu C, C++, C# i .Net korzystających z menedżerów pakietów NuGet 4.9+ lub Conan obsługiwane języki i frameworki. Możesz teraz włączyć skanowanie zależności w ramach etapu Bezpieczne, aby sprawdzić znane luki w zależnościach dodanych za pomocą menedżerów pakietów. Znalezione luki zostaną wyświetlone w żądaniu połączenia wraz z ich poziomem ważności, dzięki czemu przed wykonaniem scalania będziesz wiedział, jakie ryzyko niesie ze sobą nowa zależność. Możesz także skonfigurować swój projekt tak, aby wymagał potwierdzenie żądania połączenia dla zależności z lukami o krytycznym (krytycznym), wysokim (wysokim) lub nieznanym (nieznanym) poziomie ważności.
Poprzednio podczas ustawiania ustawień żądania połączenia Scal po zakończeniu potoku (Merge When Pipeline Succeeds, MWPS) Nie wysłano żadnego powiadomienia e-mail. Trzeba było ręcznie sprawdzić status lub poczekać na powiadomienie o połączeniu. W tej wersji mamy przyjemność zaprezentować wkład użytkowników @ravishankar2kool, co rozwiązało ten problem, dodając automatyczne powiadomienia dla wszystkich subskrybentów żądania scalania, gdy recenzent zmieni ustawienie scalania na MWPS.
Nie każdy pojawiający się problem natychmiast uruchamia alerty: użytkownicy zgłaszają awarie, a członkowie zespołu badają problemy z wydajnością. Incydenty są teraz rodzajem biletu, więc Twoje zespoły mogą szybko je utworzyć w ramach normalnego przepływu pracy. Kliknij овая задача z dowolnego miejsca w GitLabie i w terenie Typ wybierać Incydent.
Ulepszyliśmy alerty GitLab, dodając nowy typ wzmianek specjalnie dla nich w GitLab Markdown, co ułatwia udostępnianie i wzmianki o alertach. Używać ^alert#1234wspomnieć o alercie w dowolnym polu Markdown: w incydentach, zgłoszeniach lub żądaniach połączenia. Pomoże to również zidentyfikować zadania utworzone na podstawie alertów, a nie zgłoszeń lub żądań połączenia.
Opis alertu zawiera informacje niezbędne do rozwiązywania problemów i odzyskiwania. Informacje te powinny być łatwo dostępne, aby nie trzeba było przełączać narzędzi ani kart podczas rozwiązywania problemu. Incydenty utworzone z alertów wyświetlają pełny opis alertu w zakładce Szczegóły alertu.
GitLab, jako pojedyncza aplikacja, ma unikalną możliwość szybkiego odkrywania treści w całym przepływie pracy DevOps. W GitLab 13.4 wyszukiwanie zaawansowane zwraca wyniki o 75% szybciej, gdy jest to możliwe ograniczone do niektórych przestrzeni nazw i projektów, jak na GitLab.com.
Istniała możliwość odroczenia usunięcia projektu wprowadzone w 12.6. Jednak wcześniej nie było możliwości zobaczenia w jednym miejscu wszystkich projektów oczekujących na usunięcie. Administratorzy instancji użytkowników GitLab mogą teraz przeglądać w jednym miejscu wszystkie oczekujące na usunięcie projekty wraz z przyciskami umożliwiającymi łatwe ich przywrócenie.
Ta funkcja daje administratorom większą kontrolę nad usuwaniem projektów, gromadząc wszystkie istotne informacje w jednym miejscu i zapewniając możliwość cofania niepożądanych działań związanych z usuwaniem.
Wcześniej reguły wypychania grupowego można było konfigurować jedynie poprzez indywidualne odwiedzanie każdej grupy za pośrednictwem interfejsu użytkownika GitLab i stosowanie tych reguł. Możesz teraz zarządzać tymi regułami za pośrednictwem interfejsu API, aby wspierać niestandardowe narzędzia i automatyzację GitLab.
Przechowywanie danych uwierzytelniających Zapewnia administratorom informacje potrzebne do zarządzania poświadczeniami użytkowników dla ich instancji GitLab. Ponieważ organizacje dbające o zgodność różnią się pod względem rygorystyczności zasad zarządzania poświadczeniami, dodaliśmy przycisk umożliwiający administratorom opcjonalne unieważnienie osobistego tokenu dostępu użytkownika (PAT). Administratorzy mogą teraz łatwo unieważniać potencjalnie zagrożone certyfikaty PAT. Ta funkcja jest przydatna dla organizacji, które chcą bardziej elastycznych opcji zgodności, aby zminimalizować zakłócenia dla swoich użytkowników.
W GitLab 13.4 wprowadzamy nowy sposób dostosowywania statycznego edytora witryny. Chociaż w tej wersji plik konfiguracyjny nie zapisuje ani nie pobiera żadnych ustawień, kładziemy podwaliny pod przyszłe dostosowywanie zachowania edytora. W przyszłych wersjach dodamy do pliku .gitlab/static-site-editor.yml parametry instalacji adres strony bazowejna którym obrazy załadowane do edytora są przechowywane, zastępując ustawienia składni Markdown i inne ustawienia edytora.
Front Matter to elastyczny i wygodny sposób definiowania zmiennych strony w plikach danych do przetwarzania przez generator stron statycznych. Zwykle służy do ustawiania tytułu strony, szablonu układu lub autora, ale można go użyć do przekazania dowolnego typu metadanych do generatora podczas renderowania strony w formacie HTML. Część wprowadzająca, znajdująca się na samej górze każdego pliku danych, jest zazwyczaj sformatowana w formacie YAML lub JSON i wymaga spójnej i precyzyjnej składni. Użytkownicy niezaznajomieni z określonymi regułami składni mogą przypadkowo wprowadzić nieprawidłowe znaczniki, co z kolei może spowodować problemy z formatowaniem, a nawet błędy kompilacji.
Tryb edycji WYSIWYG statycznego edytora witryn usuwa już wprowadzenie z edytora, aby zapobiec błędom formatowania. Uniemożliwia to jednak zmianę wartości zapisanych w tej części bez powrotu do edycji w trybie źródłowym. W GitLab 13.4 możesz uzyskać dostęp do dowolnego pola i edytować jego wartość w znanym interfejsie opartym na formularzach. Po naciśnięciu przycisku Ustawienia (Ustawienia) otworzy się panel pokazujący pole formularza dla każdego zdefiniowanego na początku klawisza. Pola wypełniane są aktualną wartością, a edycja dowolnego z nich sprowadza się do wpisania jej w formularzu internetowym. Edycja wstępu w ten sposób pozwala uniknąć skomplikowanej składni i zapewnia pełną kontrolę nad treścią, zapewniając jednocześnie spójność formatu końcowego wyniku.
Dla użytkowników Jira w GitLab: Aplikacja GitLab dla Jira и Złącze DVCS umożliwiają wyświetlanie informacji o zatwierdzeniach GitLab i łączenia żądań bezpośrednio w Jira. W połączeniu z naszą wbudowaną integracją z Jira możesz łatwo przełączać się między obiema aplikacjami podczas pracy.
Te funkcje były wcześniej dostępne tylko w naszym planie Premium, ale teraz są dostępne dla wszystkich użytkowników!
Klaster Gitaly umożliwia replikację repozytoriów Git do wielu „ciepłych” węzłów Gitaly. Zwiększa to odporność na awarie poprzez eliminację pojedynczych punktów awarii. Operacje transakcyjne, wprowadzone w GitLab 13.3, powodują rozgłaszanie zmian do wszystkich węzłów Gitaly w klastrze, ale tylko węzły Gitaly, które głosują zgodnie z węzłem podstawowym, zapisują zmiany na dysku. Jeśli wszystkie węzły repliki nie wyrażą zgody, na dysku zostanie zapisana tylko jedna kopia zmiany, tworząc pojedynczy punkt awarii do czasu zakończenia replikacji asynchronicznej.
Głosowanie większością poprawia tolerancję błędów, wymagając zgody większości węzłów (nie wszystkich) przed zapisaniem zmian na dysku. Jeśli ta funkcja przełączania jest włączona, zapis powinien zakończyć się pomyślnie w wielu węzłach. Węzły rozbieżne są automatycznie synchronizowane przy użyciu replikacji asynchronicznej z węzłów, które utworzyły kworum.
Projekty, w których ludzie piszą konfiguracje w JSON lub YAML, często są podatne na problemy, ponieważ łatwo jest popełnić literówkę i coś zepsuć. Możliwe jest napisanie narzędzi inspekcyjnych w celu wykrycia tych problemów w potoku CI, ale użycie pliku schematu JSON może być przydatne w celu zapewnienia dokumentacji i wskazówek.
Uczestnicy projektu mogą zdefiniować w swoim repozytorium ścieżkę do niestandardowego schematu w pliku .gitlab/.gitlab-webide.yml, który określa schemat i ścieżkę do sprawdzanych plików. Po załadowaniu określonego pliku do Web IDE zobaczysz dodatkowe informacje zwrotne i potwierdzenie, które pomogą Ci utworzyć plik.
Jeśli używasz przenośników z skierowanym grafem acyklicznym (Skierowany graf acykliczny (DAG)), może się okazać, że istnieje limit 10 zadań, które zadanie może określić w needs:, zbyt szorstki. W wersji 13.4 domyślny limit został zwiększony z 10 do 50, aby umożliwić tworzenie bardziej złożonych sieci relacji między zadaniami w potokach.
Jeśli jesteś administratorem niestandardowej instancji GitLab, możesz jeszcze bardziej podnieść ten limit, konfigurując funkcję przełączania, chociaż nie oferujemy oficjalnego wsparcia w tym zakresie.
W niektórych przypadkach pominięte zadanie w potoku może zostać błędnie uznane za pomyślne ze względu na zależności określone w needs, co spowodowało uruchomienie kolejnych zadań, co nie powinno było mieć miejsca. To zachowanie zostało naprawione w wersji 13.4 i needs teraz poprawnie obsługuje przypadki pominiętych zadań.
GitLab teraz automatycznie blokuje ostatnie pomyślnie zakończone zadanie i artefakt potoku w dowolnej aktywnej gałęzi, żądaniu scalania lub tagu, aby zapobiec jego usunięciu po wygaśnięciu. Łatwiej jest ustawić bardziej agresywne reguły wygaśnięcia w celu usunięcia starych artefaktów. Pomaga to zmniejszyć zużycie miejsca na dysku i gwarantuje, że zawsze masz kopię najnowszego artefaktu z potoku.
Raport z testów jednostkowych to łatwy sposób na sprawdzenie wyników wszystkich testów w potoku. Jednak przy dużej liczbie testów znalezienie testów zakończonych niepowodzeniem może zająć dużo czasu. Inne problemy, które mogą utrudniać korzystanie z raportu, to trudności w przewijaniu długich wyników śledzenia i zaokrąglanie czasu do zera w przypadku testów trwających krócej niż 1 sekundę. Teraz domyślnie podczas sortowania raportu z testów najpierw umieszcza testy zakończone niepowodzeniem na początku raportu, a następnie sortuje testy według czasu trwania. Dzięki temu łatwiej jest znaleźć awarie i długie testy. Dodatkowo czas trwania testu jest teraz wyświetlany w milisekundach lub sekundach, co znacznie przyspiesza jego odczytanie, a także rozwiązano wcześniejsze problemy z przewijaniem.
Istnieją obecnie ograniczenia rozmiaru plików pakietów, które można przesłać do rejestru pakietów GitLab. Dodano ograniczenia w celu optymalizacji wydajności rejestru pakietów i zapobiegania nadużyciom. Limity różnią się w zależności od formatu paczki. W przypadku GitLab.com maksymalne rozmiary plików to:
Conan: 250 MB
Maven: 3 GB
NPM: 300 MB
NuGet: 250MB
PyPI: 3 GB
W przypadku niestandardowych instancji GitLab wartości domyślne są takie same. Administrator może jednak zaktualizować ograniczenia za pomocą Konsole szynowe.
Możesz używać repozytorium GitLab PyPI do tworzenia, publikowania i udostępniania pakietów Pythona wraz z kodem źródłowym i potokami CI/CD. Jednak wcześniej nie można było uwierzytelnić się w repozytorium przy użyciu predefiniowanej zmiennej środowiskowej CI_JOB_TOKEN. W rezultacie do aktualizacji repozytorium PyPI konieczne było użycie osobistych danych uwierzytelniających lub mogłeś zdecydować się w ogóle nie korzystać z repozytorium.
Teraz łatwiej jest używać GitLab CI/CD do publikowania i instalowania pakietów PyPI przy użyciu predefiniowanej zmiennej środowiskowej CI_JOB_TOKEN.
Do skanowania DAST na żądanie wprowadzone w poprzedniej wersji, dodano profile skanera DAST. Rozszerzają możliwości konfiguracyjne tych skanowań, umożliwiając szybkie tworzenie wielu profili obejmujących wiele typów skanowania. W wersji 13.4 profil przeszukiwacza natywnie zawiera ustawienie limitu czasu przeszukiwacza, które określa, jak długo przeszukiwacz DAST powinien działać podczas próby wykrycia wszystkich stron przeszukiwanej witryny. Profil zawiera także ustawienie limitu czasu witryny docelowej, umożliwiające ustawienie czasu oczekiwania robota na udostępnienie witryny przed przerwaniem przeszukiwania, jeśli witryna nie odpowie kodem stanu 200 lub 300. W miarę ciągłego udoskonalania tej funkcji dodane do profilu skanera w przyszłych wersjach; zostaną dodane dodatkowe parametry konfiguracyjne.
Jeśli korzystasz z GitLab Pages i chcesz lepiej zarządzać zmianami adresów URL, być może zauważyłeś, że zarządzanie przekierowaniami w Twojej witrynie GitLab Pages nie było możliwe. GitLab umożliwia teraz skonfigurowanie reguł przekierowywania jednego adresu URL witryny Pages na inny, poprzez dodanie pliku konfiguracyjnego do repozytorium. Ta funkcja jest możliwa dzięki wkładowi Kevina Barnetta (@PopeDrFreud), nasz Eric Eastwood (@MadLittleMods) i zespoły GitLab. Dziękuję wszystkim za wkład.
Dostęp do poprzednich wersji stanu Terraform jest niezbędny zarówno w celu zapewnienia zgodności, jak i w razie potrzeby debugowania. Obsługa wersjonowania stanu Terraform zarządzanego przez GitLab jest dostępna począwszy od GitLab 13.4. Wersjonowanie jest automatycznie włączane dla nowych plików stanu Terraform. Istniejące pliki stanu Terraform zostaną automatycznie migrowane do wersjonowanego repozytorium w późniejszym wydaniu.
Podczas przetwarzania incydentów musisz być w stanie łatwo określić, jak długo alert był otwarty i ile razy zdarzenie zostało wywołane. Szczegóły te są często krytyczne przy określaniu wpływu na klienta i tym, czym zespół powinien się zająć w pierwszej kolejności. W nowym panelu Szczegóły zdarzenia wyświetlamy godzinę rozpoczęcia alertu, liczbę zdarzeń oraz link do oryginalnego alertu. Informacje te są dostępne w przypadku zdarzeń generowanych na podstawie alertów.
Wymiar Istotność incydentu pozwala służbom ratowniczym i interesariuszom określić wpływ awarii, a także metodę i pilność reakcji. Gdy Twój zespół będzie udostępniał wyniki podczas rozwiązywania incydentów i odzyskiwania, będzie mógł zmienić to ustawienie. Możesz teraz edytować wagę incydentu na prawym pasku bocznym strony Szczegóły incydentu, a ważność jest wyświetlana na liście incydentów.
To udoskonalenie Edytora reguł zabezpieczeń sieci kontenerowej umożliwia użytkownikom łatwe tworzenie, edytowanie i usuwanie reguł bezpośrednio z interfejsu użytkownika GitLab. Funkcje edytora obejmują .yaml dla doświadczonych użytkowników oraz edytor reguł z intuicyjnym interfejsem dla nowicjuszy w regułach sieciowych. W sekcji znajdziesz nowe możliwości zarządzania regułami Bezpieczeństwo i zgodność > Zarządzanie zagrożeniami > Reguły (Bezpieczeństwo i zgodność > Zarządzanie zagrożeniami > Zasady).
Zarówno GitLab, jak i GitLab Runner obsługują teraz Magazyn obiektów blob platformy Azure, co ułatwia uruchamianie usług GitLab na platformie Azure.
Instancje GitLab obsługują platformę Azure dla wszystkich typów magazynów obiektów, w tym plików LFS, artefaktów CI i kopie zapasowe. Aby skonfigurować usługę Azure Blob Storage, postępuj zgodnie z instrukcjami instalacji Omnibus lub Wykres steru.
W odpowiedzi na rosnące zapotrzebowanie na wsparcie dla uruchomienia GitLaba na 64-bitowej architekturze ARM, z przyjemnością ogłaszamy dostępność oficjalnego pakietu ARM64 Ubuntu 20.04 Omnibus. Ogromne podziękowania dla Zitai Chen i Guillaume Gardet za ich ogromny wkład – ich prośby o połączenie odegrały w tym kluczową rolę!
Aby pobrać i zainstalować pakiet dla Ubuntu 20.04, przejdź do naszego strona instalacyjna i wybierz Ubuntu.
Karty inteligentne, takie jak karty wspólnego dostępu (CAC), mogą być teraz używane do uwierzytelniania w instancji GitLab wdrożonej za pośrednictwem wykresu Helm. Karty inteligentne są uwierzytelniane w lokalnej bazie danych przy użyciu certyfikatów X.509. Dzięki temu obsługa kart inteligentnych w wykresie Helm jest teraz zgodna z obsługą kart inteligentnych dostępną we wdrożeniach Omnibus.