{"id":9166,"date":"2019-07-18T19:00:02","date_gmt":"2019-07-18T19:00:02","guid":{"rendered":"http:\/\/howk.de\/w1\/blog-deprecated-apis-removed-in-1-16-heres-what-you-need-to-know\/"},"modified":"2019-07-18T19:00:02","modified_gmt":"2019-07-18T19:00:02","slug":"blog-deprecated-apis-removed-in-1-16-heres-what-you-need-to-know","status":"publish","type":"post","link":"https:\/\/howk.de\/?p=9166","title":{"rendered":"Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know"},"content":{"rendered":"<p><strong>Author<\/strong>: Vallery Lancey (Lyft)<\/p>\n<p>As the Kubernetes API evolves, APIs are periodically reorganized or upgraded.<br \/>\nWhen APIs evolve, the old API is deprecated and eventually removed.<\/p>\n<p>The 1.16 release will deprecate APIs for four services:<\/p>\n<ul>\n<li>NetworkPolicy<\/li>\n<li>PodSecurityPolicy<\/li>\n<li>DaemonSet, Deployment, StatefulSet, and ReplicaSet<\/li>\n<li>Ingress<\/li>\n<\/ul>\n<p>None of these resources will be removed from Kubernetes or deprecated in any way.<br \/>\nHowever, to continue using these resources, you must use a current version of<br \/>\nthe Kubernetes API.<\/p>\n<h1 id=\"migration-details\">Migration Details<\/h1>\n<ul>\n<li>NetworkPolicy: will no longer be served from <strong>extensions\/v1beta1<\/strong> in <strong>v1.16<\/strong>.\n<ul>\n<li>Migrate to the networking.k8s.io\/v1 API, available since v1.8. Existing persisted<br \/>\ndata can be retrieved\/updated via the networking.k8s.io\/v1 API.<\/li>\n<\/ul>\n<\/li>\n<li>PodSecurityPolicy: will no longer be served from <strong>extensions\/v1beta1<\/strong> in <strong>v1.16<\/strong>.\n<ul>\n<li>Migrate to the policy\/v1beta1 API, available since v1.10. Existing persisted<br \/>\ndata can be retrieved\/updated via the policy\/v1beta1 API.<\/li>\n<\/ul>\n<\/li>\n<li>DaemonSet, Deployment, StatefulSet, and ReplicaSet: will no longer be served<br \/>\nfrom <strong>extensions\/v1beta1<\/strong>, <strong>apps\/v1beta1<\/strong>, or <strong>apps\/v1beta2<\/strong> in <strong>v1.16<\/strong>.<\/p>\n<ul>\n<li>Migrate to the apps\/v1 API, available since v1.9. Existing persisted data<br \/>\ncan be retrieved\/updated via the apps\/v1 API.<\/li>\n<\/ul>\n<\/li>\n<li>Ingress: will no longer be served from <strong>extensions\/v1beta1<\/strong> in <strong>v1.18<\/strong>.\n<ul>\n<li>Migrate to the networking.k8s.io\/v1beta1 API. Existing persisted data can be<br \/>\nretrieved\/updated via the networking.k8s.io\/v1beta1 API.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1 id=\"what-to-do\">What To Do<\/h1>\n<p>Kubernetes 1.16 is due to be released in September 2019, so be sure to audit<br \/>\nyour configuration and integrations now!<\/p>\n<ul>\n<li>Change YAML files to reference the newer APIs<\/li>\n<li>Update custom integrations and controllers to call the newer APIs<\/li>\n<li>Update third party tools (ingress controllers, continuous delivery systems)<br \/>\nto call the newer APIs<\/li>\n<\/ul>\n<p>Migrating to the new Ingress API will only require changing the API path &#8211; the<br \/>\nAPI fields remain the same. However, migrating other resources (EG Deployments)<br \/>\nwill require some updates based on changed fields. You can use the<br \/>\n<code>kubectl convert<\/code> command to automatically convert an existing object:<br \/>\n<code>kubectl convert -f &lt;file&gt; --output-version &lt;group&gt;\/&lt;version&gt;<\/code>.<\/p>\n<p>For example, to convert<br \/>\nan older Deployment to apps\/v1, you can run:<br \/>\n<code>kubectl convert -f .\/my-deployment.yaml --output-version apps\/v1<\/code><br \/>\nNote that this may use non-ideal default values. To learn more about a specific<br \/>\nresource, check the Kubernetes <a href=\"https:\/\/kubernetes.io\/docs\/reference\/#api-reference\" target=\"_blank\">api reference<\/a>.<\/p>\n<p>You can test your clusters by starting an apiserver with the above resources<br \/>\ndisabled, to simulate the upcoming removal. Add the following flag to the<br \/>\napiserver startup arguments:<\/p>\n<p><code>--runtime-config=apps\/v1beta1=false,apps\/v1beta2=false,extensions\/v1beta1\/daemonsets=false,extensions\/v1beta1\/deployments=false,extensions\/v1beta1\/replicasets=false,extensions\/v1beta1\/networkpolicies=false,extensions\/v1beta1\/podsecuritypolicies=false<\/code><\/p>\n<h1 id=\"want-to-know-more\">Want To Know More?<\/h1>\n<p>Deprecations are announced in the Kubernetes release notes. You can see these<br \/>\nannouncements in<br \/>\n<a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/CHANGELOG-1.14.md#deprecations\" target=\"_blank\">1.14<\/a><br \/>\nand <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/CHANGELOG-1.15.md#deprecations-and-removals\" target=\"_blank\">1.15<\/a>.<\/p>\n<p>You can read more <a href=\"https:\/\/kubernetes.io\/docs\/reference\/using-api\/deprecation-policy\/#deprecating-parts-of-the-api\" target=\"_blank\">in our deprecation policy document<\/a><br \/>\nabout the deprecation policies for Kubernetes APIs, and other Kubernetes components.<br \/>\nDeprecation policies vary by component (for example, the primary APIs vs.<br \/>\nadmin CLIs) and by maturity (alpha, beta, or GA).<\/p>\n<p>These details were also <a href=\"https:\/\/groups.google.com\/forum\/#!topic\/kubernetes-dev\/je0rjyfTVyc\" target=\"_blank\">previously announced<\/a><br \/>\non the kubernetes-dev mailing list, along with the releases of Kubernetes 1.14<br \/>\nand 1.15. From Jordan Liggitt:<\/p>\n<pre><code>In case you missed it in the 1.15.0 release notes, the timelines for deprecated resources in the extensions\/v1beta1, apps\/v1beta1, and apps\/v1beta2 API groups to no longer be served by default have been updated:\n* NetworkPolicy resources will no longer be served from extensions\/v1beta1 by default in v1.16. Migrate to the networking.k8s.io\/v1 API, available since v1.8. Existing persisted data can be retrieved\/updated via the networking.k8s.io\/v1 API.\n* PodSecurityPolicy resources will no longer be served from extensions\/v1beta1 by default in v1.16. Migrate to the policy\/v1beta1 API, available since v1.10. Existing persisted data can be retrieved\/updated via the policy\/v1beta1 API.\n* DaemonSet, Deployment, StatefulSet, and ReplicaSet resources will no longer be served from extensions\/v1beta1, apps\/v1beta1, or apps\/v1beta2 by default in v1.16. Migrate to the apps\/v1 API, available since v1.9. Existing persisted data can be retrieved\/updated via the apps\/v1 API.\nTo start a v1.15.0 API server with these resources disabled to flush out dependencies on these deprecated APIs, and ensure your application\/manifests will work properly against the v1.16 release, use the following --runtime-config argument:\n--runtime-config=apps\/v1beta1=false,apps\/v1beta2=false,extensions\/v1beta1\/daemonsets=false,extensions\/v1beta1\/deployments=false,extensions\/v1beta1\/replicasets=false,extensions\/v1beta1\/networkpolicies=false,extensions\/v1beta1\/podsecuritypolicies=false\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Author: Vallery Lancey (Lyft) As the Kubernetes API evolves, APIs are periodically reorganized or upgraded. When APIs evolve, the old API is deprecated and eventually removed. The 1.16 release will deprecate APIs for four services: NetworkPolicy PodSecurityPolicy DaemonSet, Deployment, StatefulSet, and ReplicaSet Ingress None of these resources will be removed from Kubernetes or deprecated in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know - Howk IT-Dienstleistungen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/howk.de\/?p=9166\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know - Howk IT-Dienstleistungen\" \/>\n<meta property=\"og:description\" content=\"Author: Vallery Lancey (Lyft) As the Kubernetes API evolves, APIs are periodically reorganized or upgraded. When APIs evolve, the old API is deprecated and eventually removed. The 1.16 release will deprecate APIs for four services: NetworkPolicy PodSecurityPolicy DaemonSet, Deployment, StatefulSet, and ReplicaSet Ingress None of these resources will be removed from Kubernetes or deprecated in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/howk.de\/?p=9166\" \/>\n<meta property=\"og:site_name\" content=\"Howk IT-Dienstleistungen\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/howk.de\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-18T19:00:02+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/howk.de\/?p=9166#article\",\"isPartOf\":{\"@id\":\"https:\/\/howk.de\/?p=9166\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/howk.de\/#\/schema\/person\/b029bd02d4f35dce869ef54c81a100c5\"},\"headline\":\"Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know\",\"datePublished\":\"2019-07-18T19:00:02+00:00\",\"dateModified\":\"2019-07-18T19:00:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/howk.de\/?p=9166\"},\"wordCount\":481,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/howk.de\/#organization\"},\"articleSection\":[\"Hi Tech\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/howk.de\/?p=9166#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/howk.de\/?p=9166\",\"url\":\"https:\/\/howk.de\/?p=9166\",\"name\":\"Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know - Howk IT-Dienstleistungen\",\"isPartOf\":{\"@id\":\"https:\/\/howk.de\/#website\"},\"datePublished\":\"2019-07-18T19:00:02+00:00\",\"dateModified\":\"2019-07-18T19:00:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/howk.de\/?p=9166#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/howk.de\/?p=9166\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/howk.de\/?p=9166#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/howk.de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/howk.de\/#website\",\"url\":\"https:\/\/howk.de\/\",\"name\":\"Howk IT-Dienstleistungen\",\"description\":\"Howk IT Services - Howk IT-Dienstleistungen\",\"publisher\":{\"@id\":\"https:\/\/howk.de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/howk.de\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/howk.de\/#organization\",\"name\":\"HowK\",\"url\":\"https:\/\/howk.de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/howk.de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/howk.de\/w1\/wp-content\/uploads\/2013\/12\/howk-logo.png\",\"contentUrl\":\"https:\/\/howk.de\/w1\/wp-content\/uploads\/2013\/12\/howk-logo.png\",\"width\":170,\"height\":170,\"caption\":\"HowK\"},\"image\":{\"@id\":\"https:\/\/howk.de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/howk.de\",\"http:\/\/de.linkedin.com\/in\/howkde\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/howk.de\/#\/schema\/person\/b029bd02d4f35dce869ef54c81a100c5\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/howk.de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b5a20f4d07bca1b73f25cff58a1116c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b5a20f4d07bca1b73f25cff58a1116c4?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\/\/howk.de\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know - Howk IT-Dienstleistungen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/howk.de\/?p=9166","og_locale":"en_US","og_type":"article","og_title":"Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know - Howk IT-Dienstleistungen","og_description":"Author: Vallery Lancey (Lyft) As the Kubernetes API evolves, APIs are periodically reorganized or upgraded. When APIs evolve, the old API is deprecated and eventually removed. The 1.16 release will deprecate APIs for four services: NetworkPolicy PodSecurityPolicy DaemonSet, Deployment, StatefulSet, and ReplicaSet Ingress None of these resources will be removed from Kubernetes or deprecated in [&hellip;]","og_url":"https:\/\/howk.de\/?p=9166","og_site_name":"Howk IT-Dienstleistungen","article_publisher":"https:\/\/www.facebook.com\/howk.de","article_published_time":"2019-07-18T19:00:02+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/howk.de\/?p=9166#article","isPartOf":{"@id":"https:\/\/howk.de\/?p=9166"},"author":{"name":"admin","@id":"https:\/\/howk.de\/#\/schema\/person\/b029bd02d4f35dce869ef54c81a100c5"},"headline":"Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know","datePublished":"2019-07-18T19:00:02+00:00","dateModified":"2019-07-18T19:00:02+00:00","mainEntityOfPage":{"@id":"https:\/\/howk.de\/?p=9166"},"wordCount":481,"commentCount":0,"publisher":{"@id":"https:\/\/howk.de\/#organization"},"articleSection":["Hi Tech"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/howk.de\/?p=9166#respond"]}]},{"@type":"WebPage","@id":"https:\/\/howk.de\/?p=9166","url":"https:\/\/howk.de\/?p=9166","name":"Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know - Howk IT-Dienstleistungen","isPartOf":{"@id":"https:\/\/howk.de\/#website"},"datePublished":"2019-07-18T19:00:02+00:00","dateModified":"2019-07-18T19:00:02+00:00","breadcrumb":{"@id":"https:\/\/howk.de\/?p=9166#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/howk.de\/?p=9166"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/howk.de\/?p=9166#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/howk.de\/"},{"@type":"ListItem","position":2,"name":"Blog: Deprecated APIs Removed In 1.16: Here\u2019s What You Need To Know"}]},{"@type":"WebSite","@id":"https:\/\/howk.de\/#website","url":"https:\/\/howk.de\/","name":"Howk IT-Dienstleistungen","description":"Howk IT Services - Howk IT-Dienstleistungen","publisher":{"@id":"https:\/\/howk.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/howk.de\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/howk.de\/#organization","name":"HowK","url":"https:\/\/howk.de\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/howk.de\/#\/schema\/logo\/image\/","url":"https:\/\/howk.de\/w1\/wp-content\/uploads\/2013\/12\/howk-logo.png","contentUrl":"https:\/\/howk.de\/w1\/wp-content\/uploads\/2013\/12\/howk-logo.png","width":170,"height":170,"caption":"HowK"},"image":{"@id":"https:\/\/howk.de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/howk.de","http:\/\/de.linkedin.com\/in\/howkde"]},{"@type":"Person","@id":"https:\/\/howk.de\/#\/schema\/person\/b029bd02d4f35dce869ef54c81a100c5","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/howk.de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b5a20f4d07bca1b73f25cff58a1116c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b5a20f4d07bca1b73f25cff58a1116c4?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/howk.de\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/howk.de\/index.php?rest_route=\/wp\/v2\/posts\/9166"}],"collection":[{"href":"https:\/\/howk.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howk.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howk.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howk.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9166"}],"version-history":[{"count":0,"href":"https:\/\/howk.de\/index.php?rest_route=\/wp\/v2\/posts\/9166\/revisions"}],"wp:attachment":[{"href":"https:\/\/howk.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howk.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howk.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}