From eb001e668308964cb9f5ac0ae7cd782e5d20164c Mon Sep 17 00:00:00 2001 From: Gabriel Gonzalez Date: Fri, 10 Jan 2020 21:40:36 -0800 Subject: [PATCH] Groundwork for supporting multiple releases (#103) Related to https://github.com/dhall-lang/dhall-kubernetes/issues/75 This generalizes the machinery for fetching the Kubernetes OpenAPI spec to support fetching multiple versions. In particular, the Kubernetes version is no longer tied to the version of Nixpkgs that we use. --- README.md | 20 +-- defaults.dhall | 12 +- ...pis.apiextensions.v1.JSONSchemaProps.dhall | 8 +- ...piextensions.v1beta1.JSONSchemaProps.dhall | 8 +- .../src/Dhall/Kubernetes/Convert.hs | 1 + .../src/Dhall/Kubernetes/Data.hs | 13 +- dhall-kubernetes-generator/src/Main.hs | 6 +- docs/README.md.dhall | 16 ++- examples/aws-iam-authenticator-chart.dhall | 2 +- examples/deployment.dhall | 2 +- examples/deploymentSimple.dhall | 2 +- examples/ingress.dhall | 2 +- examples/service.dhall | 2 +- nix/dhall-kubernetes.nix | 119 ++++++------------ nix/kubernetes-openapi-spec.nix | 9 -- nix/kubernetes/1.10.txt | 1 + nix/kubernetes/1.11.txt | 1 + nix/kubernetes/1.12.txt | 1 + nix/kubernetes/1.13.txt | 1 + nix/kubernetes/1.14.txt | 1 + nix/kubernetes/1.15.txt | 1 + nix/kubernetes/1.16.txt | 1 + nix/kubernetes/1.17.txt | 1 + nix/kubernetes/1.5.txt | 1 + nix/kubernetes/1.6.3.txt | 1 + nix/kubernetes/1.6.txt | 1 + nix/kubernetes/1.7.txt | 1 + nix/kubernetes/1.8.txt | 1 + nix/kubernetes/1.9.txt | 1 + nix/make-dhall-kubernetes.nix | 84 +++++++++++++ nix/nixpkgs.nix | 7 +- nix/preferred.txt | 1 + package.dhall | 6 +- release.nix | 31 +++-- schemas.dhall | 12 +- scripts/add-kubernetes-release.sh | 7 ++ scripts/generate.sh | 2 +- types.dhall | 12 +- ...pis.apiextensions.v1.JSONSchemaProps.dhall | 8 +- ...piextensions.v1beta1.JSONSchemaProps.dhall | 8 +- typesUnion.dhall | 12 +- 41 files changed, 244 insertions(+), 182 deletions(-) delete mode 100644 nix/kubernetes-openapi-spec.nix create mode 100644 nix/kubernetes/1.10.txt create mode 100644 nix/kubernetes/1.11.txt create mode 100644 nix/kubernetes/1.12.txt create mode 100644 nix/kubernetes/1.13.txt create mode 100644 nix/kubernetes/1.14.txt create mode 100644 nix/kubernetes/1.15.txt create mode 100644 nix/kubernetes/1.16.txt create mode 100644 nix/kubernetes/1.17.txt create mode 100644 nix/kubernetes/1.5.txt create mode 100644 nix/kubernetes/1.6.3.txt create mode 100644 nix/kubernetes/1.6.txt create mode 100644 nix/kubernetes/1.7.txt create mode 100644 nix/kubernetes/1.8.txt create mode 100644 nix/kubernetes/1.9.txt create mode 100644 nix/make-dhall-kubernetes.nix create mode 100644 nix/preferred.txt create mode 100755 scripts/add-kubernetes-release.sh diff --git a/README.md b/README.md index f74a64e9..96143bf5 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ In the following example, we: -- examples/deploymentSimple.dhall let kubernetes = - ../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53 + ../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3 let deployment = kubernetes.Deployment::{ @@ -152,7 +152,7 @@ let map = Prelude.List.map let kv = Prelude.JSON.keyText let kubernetes = - ../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53 + ../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3 let Service = { name : Text, host : Text, version : Text } @@ -305,14 +305,20 @@ in ## Development -### Updating the nixpkgs snapshot (and kubernetes version) +### Adding a new Kubernetes releases + +To add a new supported release, run: -Run ```bash -./scripts/update-nixpkgs.sh -./generate.sh +./scripts/add-kubernetes-release.sh "${VERSION}" +``` + +If you want to make a specific release the preferred release, run: + +``` +$ echo "${VERSION}" > ./nix/preferred.txt +$ ./scripts/generate.sh ``` -If the tests fail, rollback. If they don't then you have sucessfully upgraded! ### Tests diff --git a/defaults.dhall b/defaults.dhall index 1d81cdec..11e70d55 100644 --- a/defaults.dhall +++ b/defaults.dhall @@ -735,31 +735,31 @@ , CustomResourceConversion = ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion.dhall sha256:bdffed4de47429d51c58edc4bcaf4c65a02a942c5a91d2c10b04bb00f8829b0b , CustomResourceDefinition = - ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:336b72958ef16de1522a4df63369ed958cd0dce56ef5d30e58647fa450943a7a + ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:2a51ba49b6bb3a550cb786e6b2ee2366866bad889601cdba3af3addecb10a332 , CustomResourceDefinitionCondition = ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition.dhall sha256:fef63958bc998f900417bd68974df7936535249af83edf1183721637fa3e7257 , CustomResourceDefinitionList = - ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:652d515d9b0ff855301f78e4f647c23de73c3e5e695fd3bddc102ebba7a7929d + ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:452a8886d9c8e40d5de75c4c80d121ff79d6cf831be8daeaff63ecfc24a849f5 , CustomResourceDefinitionNames = ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames.dhall sha256:73f1528045b5541c009f74e02026661616223dc23bc0df9c0d640fd0184eef0a , CustomResourceDefinitionSpec = - ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:19e995d543bcba13a88b7aea1de4c4d3bad4c620ee437fc3fc47f713ab9ab8a5 + ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:b7c84df71059878b76d75f2a23316169f4854ec3d26341c8d8e2ddde0a7e52fa , CustomResourceDefinitionStatus = ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus.dhall sha256:318553c0327930257e05495251cafe571a94670e29285b7aa6b834cea63ac849 , CustomResourceDefinitionVersion = - ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:2db28c6f5c40ad9e27c1f0c039a9afb3bdd8587c609be0ecfeff93b513a7bc79 + ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:0902dcee8c4fbcf739bf02e5aec3380f79c5ab51cc1ac2b75e8c075835be411c , CustomResourceSubresourceScale = ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale.dhall sha256:265a09b4bd7a8452253edec4c5a15e1d9f8c4805350ac7b19fac74eca23b266e , CustomResourceSubresources = ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources.dhall sha256:9ae05caacec1bcc4f030d8eef9b82d5416b9f22134b108c7db6b56c859d86ba3 , CustomResourceValidation = - ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:3038e3161e96beabd1d70e9d0ebfda501fe8a7cce778df7f7964fad87f5b4537 + ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:a442aa0bd3be3cf8dbdda4f209af4732b12e8ab8c263535bc55e92f075db922b , ExternalDocumentation = ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall sha256:ef72045716c5bc714c4a81aa7218ade9eec702588c9a2650fe5b7d6331445032 , JSON = ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall sha256:9bb9dcb5bf6f795291686f59383bcd01c8e79b87fc3fb63351d46dea100ac51b , JSONSchemaProps = - ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:63d200dfe11f927576fa3a694fc9d8e6fd9ba317d5a8c65ace4c4117c804b65e + ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:7f257b567eed8ba4d53b2553413c48b5aec2f18479b1924b873fc150ce0c86c9 , JSONSchemaPropsOrArray = ./defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall sha256:9bb9dcb5bf6f795291686f59383bcd01c8e79b87fc3fb63351d46dea100ac51b , JSONSchemaPropsOrBool = diff --git a/defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall b/defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall index 6671bc08..7d914248 100644 --- a/defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall +++ b/defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall @@ -1,8 +1,4 @@ -{ additionalItems = - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool.dhall -, additionalProperties = - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool.dhall -, default = +{ default = ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall , definitions = [] : List { mapKey : Text, mapValue : Text } , dependencies = [] : List { mapKey : Text, mapValue : Text } @@ -13,8 +9,6 @@ ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall , externalDocs = ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall -, items = - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall , patternProperties = [] : List { mapKey : Text, mapValue : Text } , properties = [] : List { mapKey : Text, mapValue : Text } , required = [] : List Text diff --git a/defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps.dhall b/defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps.dhall index 97fe348f..2035f7a3 100644 --- a/defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps.dhall +++ b/defaults/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps.dhall @@ -1,8 +1,4 @@ -{ additionalItems = - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool.dhall -, additionalProperties = - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool.dhall -, default = +{ default = ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON.dhall , definitions = [] : List { mapKey : Text, mapValue : Text } , dependencies = [] : List { mapKey : Text, mapValue : Text } @@ -13,8 +9,6 @@ ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON.dhall , externalDocs = ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation.dhall -, items = - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray.dhall , patternProperties = [] : List { mapKey : Text, mapValue : Text } , properties = [] : List { mapKey : Text, mapValue : Text } , required = [] : List Text diff --git a/dhall-kubernetes-generator/src/Dhall/Kubernetes/Convert.hs b/dhall-kubernetes-generator/src/Dhall/Kubernetes/Convert.hs index feaf98c3..1c09c98e 100644 --- a/dhall-kubernetes-generator/src/Dhall/Kubernetes/Convert.hs +++ b/dhall-kubernetes-generator/src/Dhall/Kubernetes/Convert.hs @@ -296,6 +296,7 @@ getImportsMap prefixMap duplicateNameHandler objectNames folder toInclude namespaced = case filter filterFn namespacedNames of [name] -> Just name + [] -> Nothing names -> duplicateNameHandler (kind, names) stripPrefix :: (Generic a, GFromJSON Zero (Rep a)) => Int -> Value -> Parser a diff --git a/dhall-kubernetes-generator/src/Dhall/Kubernetes/Data.hs b/dhall-kubernetes-generator/src/Dhall/Kubernetes/Data.hs index 8fef0250..ff8961ea 100644 --- a/dhall-kubernetes-generator/src/Dhall/Kubernetes/Data.hs +++ b/dhall-kubernetes-generator/src/Dhall/Kubernetes/Data.hs @@ -11,4 +11,15 @@ patchCyclicImports :: Definition -> Definition patchCyclicImports Definition{ properties = oldProps, .. } = Definition{..} where properties = fmap (\propsMap -> Data.Map.withoutKeys propsMap toRemove) oldProps - toRemove = Set.fromList $ ModelName <$> [ "allOf", "anyOf", "not", "oneOf" ] + toRemove = + Set.fromList $ + ( ModelName + <$> [ "allOf" + , "anyOf" + , "not" + , "oneOf" + , "additionalItems" + , "additionalProperties" + , "items" + ] + ) diff --git a/dhall-kubernetes-generator/src/Main.hs b/dhall-kubernetes-generator/src/Main.hs index 7252b8eb..628babc6 100644 --- a/dhall-kubernetes-generator/src/Main.hs +++ b/dhall-kubernetes-generator/src/Main.hs @@ -126,11 +126,11 @@ parseVersion = Megaparsec.try parseSuffix <|> parsePrefix parseVersion -getVersion :: ModelName -> Version +getVersion :: ModelName -> Maybe Version getVersion ModelName{..} = case Megaparsec.parse parseVersion "" unModelName of - Left errors -> error (show errors) - Right version -> version + Left errors -> Nothing + Right version -> Just version preferStableResource :: DuplicateHandler preferStableResource (_, names) = diff --git a/docs/README.md.dhall b/docs/README.md.dhall index bffd772c..a0528af5 100644 --- a/docs/README.md.dhall +++ b/docs/README.md.dhall @@ -154,14 +154,20 @@ in ## Development -### Updating the nixpkgs snapshot (and kubernetes version) +### Adding a new Kubernetes releases + +To add a new supported release, run: -Run ```bash -./scripts/update-nixpkgs.sh -./generate.sh +./scripts/add-kubernetes-release.sh "''${VERSION}" +``` + +If you want to make a specific release the preferred release, run: + +``` +$ echo "''${VERSION}" > ./nix/preferred.txt +$ ./scripts/generate.sh ``` -If the tests fail, rollback. If they don't then you have sucessfully upgraded! ### Tests diff --git a/examples/aws-iam-authenticator-chart.dhall b/examples/aws-iam-authenticator-chart.dhall index f05d89ff..0c9595e5 100644 --- a/examples/aws-iam-authenticator-chart.dhall +++ b/examples/aws-iam-authenticator-chart.dhall @@ -1,5 +1,5 @@ let kubernetes = - ../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53 + ../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3 let release = "wintering-rodent" diff --git a/examples/deployment.dhall b/examples/deployment.dhall index 086cbfd3..b23e9837 100644 --- a/examples/deployment.dhall +++ b/examples/deployment.dhall @@ -2,7 +2,7 @@ let Prelude = ../Prelude.dhall sha256:771c7131fc87e13eb18f770a27c59f9418879f7e230ba2a50e46f4461f43ec69 let kubernetes = - ../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53 + ../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3 let kv = Prelude.JSON.keyText diff --git a/examples/deploymentSimple.dhall b/examples/deploymentSimple.dhall index 8cb7390d..2f36aee0 100644 --- a/examples/deploymentSimple.dhall +++ b/examples/deploymentSimple.dhall @@ -1,5 +1,5 @@ let kubernetes = - ../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53 + ../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3 let deployment = kubernetes.Deployment::{ diff --git a/examples/ingress.dhall b/examples/ingress.dhall index e9c1bfb5..a8c91732 100644 --- a/examples/ingress.dhall +++ b/examples/ingress.dhall @@ -6,7 +6,7 @@ let map = Prelude.List.map let kv = Prelude.JSON.keyText let kubernetes = - ../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53 + ../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3 let Service = { name : Text, host : Text, version : Text } diff --git a/examples/service.dhall b/examples/service.dhall index eb7270d8..001b9ace 100644 --- a/examples/service.dhall +++ b/examples/service.dhall @@ -2,7 +2,7 @@ let Prelude = ../Prelude.dhall sha256:771c7131fc87e13eb18f770a27c59f9418879f7e230ba2a50e46f4461f43ec69 let kubernetes = - ../package.dhall sha256:63eb2e2bb9a50632801b673e67e666740c09c89deb0a0d0592d165178b5eba53 + ../package.dhall sha256:ab1c971ddeb178c1cfc5e749b211b4fe6fdb6fa1b68b10de62aeb543efcd60b3 let kv = Prelude.JSON.keyText diff --git a/nix/dhall-kubernetes.nix b/nix/dhall-kubernetes.nix index 9f13131b..f6820467 100644 --- a/nix/dhall-kubernetes.nix +++ b/nix/dhall-kubernetes.nix @@ -1,83 +1,42 @@ -{ coreutils -, dhall -, dhall-json -, dhallPackages -, glibcLocales -, haskellPackages -, kubernetes-openapi-spec -, lib -, python3 -, stdenv -}: +{ fetchurl, make-dhall-kubernetes, lib, stdenv }: -let - # Ignore generated files - ignoreOutputs = - name: type: - !(lib.elem name - (map toString - [ ../README.md - ../types - ../defaults - ../schemas - ../defaults.dhall - ../types.dhall - ../typesUnion.dhall - ../schemas.dhall - ] - ) - ); +let + kubernetesDirectory = ./kubernetes; + + kubernetesPaths = builtins.readDir kubernetesDirectory; + + toKeyValue = + file: _: + let + version = builtins.replaceStrings [ ".txt" ] [ "" ] file; + + in + { name = version; + + value = + let + spec = + stdenv.mkDerivation { + name = "kubernetes-openapi-spec-${version}"; + + src = + fetchurl { + url = "https://github.com/kubernetes/kubernetes/archive/release-${version}.tar.gz"; + + sha256 = + builtins.replaceStrings [ "\n" ] [ "" ] + (builtins.readFile (kubernetesDirectory + "/${file}")); + }; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + cp api/openapi-spec/swagger.json $out + ''; + }; + in + make-dhall-kubernetes spec; + }; in - stdenv.mkDerivation { - name = "dhall-kubernetes"; - - DHALL_PRELUDE = "${dhallPackages.prelude}/package.dhall"; - - XDG_CACHE_HOME = "."; - - buildInputs = - [ dhall - dhall-json - python3 - glibcLocales - ]; - - buildPhase = '' - patchShebangs ./scripts/build-readme.sh - - ./scripts/build-readme.sh - - ${coreutils}/bin/mkdir -p types defaults - - ${haskellPackages.dhall-kubernetes-generator}/bin/dhall-kubernetes-generator '${kubernetes-openapi-spec}' - - for file in ./types.dhall ./typesUnion.dhall ./defaults.dhall ./schemas.dhall ./package.dhall ./examples/*.dhall; do - echo "Freezing file '$file'" - - ${dhall}/bin/dhall freeze --all --inplace "$file" - done - ''; - - checkPhase = '' - patchShebangs ./scripts/build-examples.py - - patchShebangs ./scripts/check-source.py - - LC_ALL=en_US.UTF-8 ./scripts/check-source.py - - mkdir -p tmp - - LC_ALL=en_US.UTF-8 ./scripts/build-examples.py tmp - ''; - - installPhase = '' - ${coreutils}/bin/mkdir --parents "$out" - - cp -r types defaults schemas examples types.dhall defaults.dhall typesUnion.dhall schemas.dhall package.dhall README.md "$out" - ''; - - src = - lib.cleanSourceWith - { filter = ignoreOutputs; src = lib.cleanSource ./..; }; -} + lib.mapAttrs' toKeyValue kubernetesPaths diff --git a/nix/kubernetes-openapi-spec.nix b/nix/kubernetes-openapi-spec.nix deleted file mode 100644 index 499418ba..00000000 --- a/nix/kubernetes-openapi-spec.nix +++ /dev/null @@ -1,9 +0,0 @@ -{stdenv, kubernetes}: -stdenv.mkDerivation { - name = "kubernetes-openapi-spec"; - src = kubernetes.src; - phases = [ "unpackPhase" "installPhase" ]; - installPhase = '' - cp api/openapi-spec/swagger.json $out - ''; -} diff --git a/nix/kubernetes/1.10.txt b/nix/kubernetes/1.10.txt new file mode 100644 index 00000000..02086fe3 --- /dev/null +++ b/nix/kubernetes/1.10.txt @@ -0,0 +1 @@ +0p6djqdz296r18n0kf2lfq96yynngd3b5qc6d5pcqh2dfs2v9ydm diff --git a/nix/kubernetes/1.11.txt b/nix/kubernetes/1.11.txt new file mode 100644 index 00000000..a2b960fd --- /dev/null +++ b/nix/kubernetes/1.11.txt @@ -0,0 +1 @@ +1hcry5rsa2ngi1wdg8cnwh4s53l9xggl5ynfa8jwdnjq0nhsiryd diff --git a/nix/kubernetes/1.12.txt b/nix/kubernetes/1.12.txt new file mode 100644 index 00000000..a279e8d6 --- /dev/null +++ b/nix/kubernetes/1.12.txt @@ -0,0 +1 @@ +18kixk3i9c2vgl5yrnvi7ybchskyvfpzs9cgc8jk9w921ryvwavg diff --git a/nix/kubernetes/1.13.txt b/nix/kubernetes/1.13.txt new file mode 100644 index 00000000..ca7bf15f --- /dev/null +++ b/nix/kubernetes/1.13.txt @@ -0,0 +1 @@ +0bp716qd67dc96ibwxjn03njq7g4p0ix82dnm8a264l15rzj8v01 diff --git a/nix/kubernetes/1.14.txt b/nix/kubernetes/1.14.txt new file mode 100644 index 00000000..7187f6b7 --- /dev/null +++ b/nix/kubernetes/1.14.txt @@ -0,0 +1 @@ +0z2chn8dqinc6cpyl9w1f3rn77qfxbbgzmrcvzal18a8pzd5rkcy diff --git a/nix/kubernetes/1.15.txt b/nix/kubernetes/1.15.txt new file mode 100644 index 00000000..24f6889d --- /dev/null +++ b/nix/kubernetes/1.15.txt @@ -0,0 +1 @@ +1gwvlflf0yha1qsv6lp1skqpbm22qiyc5bicp6s1w8rxz8wlcv91 diff --git a/nix/kubernetes/1.16.txt b/nix/kubernetes/1.16.txt new file mode 100644 index 00000000..6025262a --- /dev/null +++ b/nix/kubernetes/1.16.txt @@ -0,0 +1 @@ +01m3pcymbfg7vzdx9z08iilqlfn8w5myw6rlf4mjny76x380d94x diff --git a/nix/kubernetes/1.17.txt b/nix/kubernetes/1.17.txt new file mode 100644 index 00000000..ddab67bd --- /dev/null +++ b/nix/kubernetes/1.17.txt @@ -0,0 +1 @@ +0q84xf16dl15s30awirsg73y9fbd9n6sr6163xvyjq5x8vf9axgj diff --git a/nix/kubernetes/1.5.txt b/nix/kubernetes/1.5.txt new file mode 100644 index 00000000..059fe936 --- /dev/null +++ b/nix/kubernetes/1.5.txt @@ -0,0 +1 @@ +1838jrzk7xn2m92xj9wl47rrg4ac46qrpcc99c3l06y9hlhhjfg5 diff --git a/nix/kubernetes/1.6.3.txt b/nix/kubernetes/1.6.3.txt new file mode 100644 index 00000000..18bc6da5 --- /dev/null +++ b/nix/kubernetes/1.6.3.txt @@ -0,0 +1 @@ +08yzbcigmy35qi7xbpcm3sxbfw2bhvna2m6rqqnzfh64bl13c219 diff --git a/nix/kubernetes/1.6.txt b/nix/kubernetes/1.6.txt new file mode 100644 index 00000000..572df10a --- /dev/null +++ b/nix/kubernetes/1.6.txt @@ -0,0 +1 @@ +0szzcn0w8gsar2v0fm360abfbpjhakdnqhdxjpvddfwcbyz5f3c7 diff --git a/nix/kubernetes/1.7.txt b/nix/kubernetes/1.7.txt new file mode 100644 index 00000000..14346eac --- /dev/null +++ b/nix/kubernetes/1.7.txt @@ -0,0 +1 @@ +1icgc4b4jhf2zxvjczmmycn4kbg3k878jvpxzbw5kxbcql431754 diff --git a/nix/kubernetes/1.8.txt b/nix/kubernetes/1.8.txt new file mode 100644 index 00000000..6bcdad2a --- /dev/null +++ b/nix/kubernetes/1.8.txt @@ -0,0 +1 @@ +02rdcly2vymakc94ivpy7wmmhwmm1j2wb7zk5jd5mynk5jighmij diff --git a/nix/kubernetes/1.9.txt b/nix/kubernetes/1.9.txt new file mode 100644 index 00000000..f974ddb9 --- /dev/null +++ b/nix/kubernetes/1.9.txt @@ -0,0 +1 @@ +1k01ww4qc8rsfk919gpyygmhmd31rjkzj20ng4mp5caii8fm821b diff --git a/nix/make-dhall-kubernetes.nix b/nix/make-dhall-kubernetes.nix new file mode 100644 index 00000000..4e707a5c --- /dev/null +++ b/nix/make-dhall-kubernetes.nix @@ -0,0 +1,84 @@ +{ coreutils +, dhall +, dhall-json +, dhallPackages +, glibcLocales +, haskellPackages +, lib +, python3 +, stdenv +}: + +spec: + +let + # Ignore generated files + ignoreOutputs = + name: type: + !(lib.elem name + (map toString + [ ../README.md + ../types + ../defaults + ../schemas + ../defaults.dhall + ../types.dhall + ../typesUnion.dhall + ../schemas.dhall + ] + ) + ); + +in + stdenv.mkDerivation { + name = "dhall-kubernetes"; + + DHALL_PRELUDE = "${dhallPackages.prelude}/package.dhall"; + + XDG_CACHE_HOME = "."; + + buildInputs = + [ dhall + dhall-json + python3 + glibcLocales + ]; + + buildPhase = '' + patchShebangs ./scripts/build-readme.sh + + ./scripts/build-readme.sh + + ${coreutils}/bin/mkdir -p types defaults + + ${haskellPackages.dhall-kubernetes-generator}/bin/dhall-kubernetes-generator '${spec}' + + for file in ./types.dhall ./typesUnion.dhall ./defaults.dhall ./schemas.dhall ./package.dhall ./examples/*.dhall; do + echo "Freezing file '$file'" + + ${dhall}/bin/dhall freeze --all --inplace "$file" + done + ''; + + checkPhase = '' + patchShebangs ./scripts/build-examples.py + + patchShebangs ./scripts/check-source.py + + LC_ALL=en_US.UTF-8 ./scripts/check-source.py + + mkdir -p tmp + + LC_ALL=en_US.UTF-8 ./scripts/build-examples.py tmp + ''; + + installPhase = '' + ${coreutils}/bin/mkdir --parents "$out" + + cp -r types defaults schemas examples types.dhall defaults.dhall typesUnion.dhall schemas.dhall package.dhall README.md "$out" + ''; + + src = + lib.cleanSourceWith + { filter = ignoreOutputs; src = lib.cleanSource ./..; }; +} diff --git a/nix/nixpkgs.nix b/nix/nixpkgs.nix index f7be07d1..966e819c 100644 --- a/nix/nixpkgs.nix +++ b/nix/nixpkgs.nix @@ -7,11 +7,10 @@ let }; config = { - packageOverrides = pkgs: { - dhall-kubernetes = pkgs.callPackage ./dhall-kubernetes.nix {}; + packageOverrides = pkgs: rec { + make-dhall-kubernetes = pkgs.callPackage ./make-dhall-kubernetes.nix {}; - kubernetes-openapi-spec = - pkgs.callPackage ./kubernetes-openapi-spec.nix {}; + dhall-kubernetes = pkgs.callPackage ./dhall-kubernetes.nix {}; haskellPackages = pkgs.haskellPackages.override (old: { overrides = diff --git a/nix/preferred.txt b/nix/preferred.txt new file mode 100644 index 00000000..e7151969 --- /dev/null +++ b/nix/preferred.txt @@ -0,0 +1 @@ +1.16 diff --git a/package.dhall b/package.dhall index 43485fc0..be64dbc8 100644 --- a/package.dhall +++ b/package.dhall @@ -1,7 +1,7 @@ - ./schemas.dhall sha256:bd5cfc1abae136959fc13c483d6ebe7ffef906dc23cdd5153cc57da9f6aa6fce + ./schemas.dhall sha256:f6943c82da5de5d5734d519795a9a0a07fbb88b848e7cbb66fd3b9244b8eee1e ∧ { IntOrString = - ( ./types.dhall sha256:59cfe76addc3e3be9c80a82f47e08aaee3b4ce8df11f57bf1800917ce709babe + ( ./types.dhall sha256:e62539f41a3b4bf302318f95da6fdea5d28aae856405f7e280627040887a4039 ).IntOrString , Resource = - ./typesUnion.dhall sha256:c861da8dcaa0d1b0f542fa8bb97536a746d3cc4d3d2e1284012be0596bc08c15 + ./typesUnion.dhall sha256:ba8ebd9c402a007aea9db8c5faf0f5f4f9d9f8d8acc415485f55302462c2f555 } diff --git a/release.nix b/release.nix index cde36c1d..86408983 100644 --- a/release.nix +++ b/release.nix @@ -2,17 +2,24 @@ , src ? { rev = ""; } , ... }: -rec { - inherit (pkgs) dhall-kubernetes; - inherit (pkgs.haskellPackages) dhall-kubernetes-generator; - # Derivation that trivially depends on the input source code revision. - # As this is included in the "dhall-lang" aggregate, it forces every - # commit to have a corresponding GitHub status check, even if the - # commit doesn't make any changes (which can happen when merging - # master in). - rev = pkgs.runCommand "rev" {} ''echo "${src.rev}" > $out''; + +let + products = { + inherit (pkgs.haskellPackages) dhall-kubernetes-generator; + + # Derivation that trivially depends on the input source code revision. + # As this is included in the "dhall-lang" aggregate, it forces every + # commit to have a corresponding GitHub status check, even if the + # commit doesn't make any changes (which can happen when merging + # master in). + rev = pkgs.runCommand "rev" {} ''echo "${src.rev}" > $out''; + } // builtins.removeAttrs pkgs.dhall-kubernetes + [ "override" "overrideDerivation" ]; + aggregate = pkgs.releaseTools.aggregate { - name = "dhall-kubernetes-agggregate"; - constituents = [ dhall-kubernetes dhall-kubernetes-generator rev ]; + name = "dhall-kubernetes-aggregate"; + constituents = pkgs.lib.mapAttrsToList (_: v: v) products; }; -} + +in + products // { inherit aggregate; } diff --git a/schemas.dhall b/schemas.dhall index 7d1984ec..e2c5f3de 100644 --- a/schemas.dhall +++ b/schemas.dhall @@ -735,31 +735,31 @@ , CustomResourceConversion = ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion.dhall sha256:84389e86c876d527da8d0a915cd4036f6666ae94486cc2fb58173ce06b23333f , CustomResourceDefinition = - ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:8a1979bbfef150e1e1504d19f844c4b839e1216243e97879d66d507d1060704c + ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:a84ce984f7f33f0c9d8967b854f55c05e42cb7854491377a5103fcfc027140b8 , CustomResourceDefinitionCondition = ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition.dhall sha256:47ec59edf7c6f9429301ee78bfdfc84bbfdbf494fe3b461db05ae03de8c6817d , CustomResourceDefinitionList = - ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:3e833717414b5d3a47dfd5b89d79cf7509e0fcafb3e249796322f8be2f601a75 + ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:991bc92cd163f2c2d86bad3fdf92f2dd167da5ea276b37eb71e264a73c016e57 , CustomResourceDefinitionNames = ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames.dhall sha256:e1397c76ee13f2ef8d1c3a4a39d42a3541e26751940d9a92b2dac3443f4b2ef3 , CustomResourceDefinitionSpec = - ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:477749de30bad77861bbffe5271ccc4abd239926a91430b10fe131843b2c5de8 + ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:2a3a7c3f6df1b8d519c8158601b2c9b9ef0b9707ddbff69aa89a8c4b18199bc7 , CustomResourceDefinitionStatus = ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus.dhall sha256:4df5a2b66e0f4c0ea728989c7873b634c912b9598296da2c7272a0425b5f351e , CustomResourceDefinitionVersion = - ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:f835db9d839f378ac790bc1f9153a6dc8fb6a2143d4ba7fb08bb663a3592f223 + ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:5b85808062cc90aed738f2230313b9b4a96a2ca7a5fea5a22dd998bb31957ed2 , CustomResourceSubresourceScale = ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale.dhall sha256:f88ea71fc0f62e1bdbf5dfa141837e4be12f302248528b61d20c0adf0b5cff63 , CustomResourceSubresources = ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources.dhall sha256:1d0db47454d301f02169fb4d472b3bd1f9331750a00d7d108f67074367ebb483 , CustomResourceValidation = - ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:17b2ff74aa50cd9cb3f0771edf42bc76199da03bd84dc51ac712538f180ad2f8 + ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:0400fd741482ff4882b6ed717dd950da84f9bcac78756222a7d7a1a965d7b6a2 , ExternalDocumentation = ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall sha256:d028dfb12958fddb9658597805976d8e72509c0b058970e7f9be3519c91f37d0 , JSON = ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall sha256:81a1bf11fb9dc588941bd83400ed571298585a700a53e858456806f7ea3b8ce2 , JSONSchemaProps = - ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:c362693ae3241b29db963ce04ea41e42c89a8b6f353fbf4a63dfc1f9bfa8d598 + ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:92ef0421a9c4cb27b778cfdee336120304cce4dd4920b9dbda844d269c662160 , JSONSchemaPropsOrArray = ./schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall sha256:81a1bf11fb9dc588941bd83400ed571298585a700a53e858456806f7ea3b8ce2 , JSONSchemaPropsOrBool = diff --git a/scripts/add-kubernetes-release.sh b/scripts/add-kubernetes-release.sh new file mode 100755 index 00000000..72e186e3 --- /dev/null +++ b/scripts/add-kubernetes-release.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -eu + +VERSION="$1" + +nix-prefetch-url "https://github.com/kubernetes/kubernetes/archive/release-${VERSION}.tar.gz" > "nix/kubernetes/${VERSION}.txt" diff --git a/scripts/generate.sh b/scripts/generate.sh index e3fb9287..4a1200c9 100755 --- a/scripts/generate.sh +++ b/scripts/generate.sh @@ -1,5 +1,5 @@ #!/bin/sh -if dir=$(nix-build release.nix --attr dhall-kubernetes --no-out-link); then +if dir=$(nix-build release.nix --attr "\"$(< ./nix/preferred.txt)\"" --no-out-link); then rm -rf ./defaults ./types cp -r "$dir"/defaults . chmod u+w ./defaults diff --git a/types.dhall b/types.dhall index 782810a5..580c3b40 100644 --- a/types.dhall +++ b/types.dhall @@ -735,19 +735,19 @@ , CustomResourceConversion = ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion.dhall sha256:52f61f62579efc9b87e5fed9951acc40fddbdd8eecca922f6cc551a5588b3712 , CustomResourceDefinition = - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:3bc3280d014370cc259768bf853fb0257db91ab9072de8d87967983970d35758 + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:cb1a053f9fc10c6f52a5f83c97e64a82352e2f3d7d2b2f73b6a3ec548801eb0e , CustomResourceDefinitionCondition = ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition.dhall sha256:10de5e5aed3f6e1721f79bd8e2f9ffcecb92658fbe7442e6eaf74c6780b4779d , CustomResourceDefinitionList = - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:ac73aa4ab0fb2e9968aeea4d1aa8255d0971c63873a103aadd3bfeef860e0cf1 + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:adfbed123664ac31d68dda0880a503436d784565958671a4b3e0c27a711aceaa , CustomResourceDefinitionNames = ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames.dhall sha256:0278161a6b3294f036a73cd3c4dc3d0b304f683ba9de276a119c634ff73e9fb1 , CustomResourceDefinitionSpec = - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:64f5e17c0be23ef0cc9cebde90d887a4ed50ea724a866596fe5f205269682aa7 + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:58465ddaeee8ef1d1ffc5105671dd69d5ab6001968627bdc6fce124fd8bc0535 , CustomResourceDefinitionStatus = ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus.dhall sha256:9760548a849877dfd2a7411930d68a4974da897b83937d1e5c4c0e9bdf82d50f , CustomResourceDefinitionVersion = - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:4397e19113e06dff2dff0aa43dd97d87fc9305611e0e46bde9d2dbc44267ccd0 + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:0dff46037720814fafe44d019b8b16abf3195e2d7d6c27c89ba4a74f8b819d60 , CustomResourceSubresourceScale = ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale.dhall sha256:6733049a96431ae2b72e7d6b17a24204a0ef148aef08725e02f8da00339525a6 , CustomResourceSubresourceStatus = @@ -755,13 +755,13 @@ , CustomResourceSubresources = ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources.dhall sha256:0581868225988fcffb65edf1f9e9c9edd9bb509b8821ffd6941728d00f976640 , CustomResourceValidation = - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:44ae4096d58f78fae63b89981954e142788fd7968be4738070b4fbdb8a7767dc + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:a7144e84a9a050ebd8768596da8c24b2f69dd30cc2374827025be2508b775136 , ExternalDocumentation = ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall sha256:75a79c871f43a432b402f8a5d52f277bb827f5170ecfed101ed356a91ccbce91 , JSON = ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall sha256:0912602a19e01dcff30f351958d2d9b69519c9be61b57b1b32a2a569bf8bf5f9 , JSONSchemaProps = - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:32b8c3a4615735cbf9f5d9fe3f99b47a28e9ce4c6d2e11bbeaf1a925c7bdf3b4 + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:712211f2527ee07ca2a1f1dbbfdf7d1822d9844107aa170c37d67b4103d264cd , JSONSchemaPropsOrArray = ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall sha256:0912602a19e01dcff30f351958d2d9b69519c9be61b57b1b32a2a569bf8bf5f9 , JSONSchemaPropsOrBool = diff --git a/types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall b/types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall index 7ecb617f..b4500e7c 100644 --- a/types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall +++ b/types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall @@ -1,8 +1,4 @@ -{ additionalItems : - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool.dhall -, additionalProperties : - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool.dhall -, default : +{ default : ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall , definitions : List { mapKey : Text, mapValue : Text } , dependencies : List { mapKey : Text, mapValue : Text } @@ -12,8 +8,6 @@ ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall , externalDocs : ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall -, items : - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall , patternProperties : List { mapKey : Text, mapValue : Text } , properties : List { mapKey : Text, mapValue : Text } , required : List Text diff --git a/types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps.dhall b/types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps.dhall index 91b22401..a5d74bf6 100644 --- a/types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps.dhall +++ b/types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps.dhall @@ -1,8 +1,4 @@ -{ additionalItems : - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool.dhall -, additionalProperties : - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool.dhall -, default : +{ default : ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON.dhall , definitions : List { mapKey : Text, mapValue : Text } , dependencies : List { mapKey : Text, mapValue : Text } @@ -13,8 +9,6 @@ ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON.dhall , externalDocs : ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation.dhall -, items : - ./io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray.dhall , patternProperties : List { mapKey : Text, mapValue : Text } , properties : List { mapKey : Text, mapValue : Text } , required : List Text diff --git a/typesUnion.dhall b/typesUnion.dhall index cc4e4bcb..a20bbc5f 100644 --- a/typesUnion.dhall +++ b/typesUnion.dhall @@ -735,19 +735,19 @@ | CustomResourceConversion : ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion.dhall sha256:52f61f62579efc9b87e5fed9951acc40fddbdd8eecca922f6cc551a5588b3712 | CustomResourceDefinition : - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:3bc3280d014370cc259768bf853fb0257db91ab9072de8d87967983970d35758 + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition.dhall sha256:cb1a053f9fc10c6f52a5f83c97e64a82352e2f3d7d2b2f73b6a3ec548801eb0e | CustomResourceDefinitionCondition : ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition.dhall sha256:10de5e5aed3f6e1721f79bd8e2f9ffcecb92658fbe7442e6eaf74c6780b4779d | CustomResourceDefinitionList : - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:ac73aa4ab0fb2e9968aeea4d1aa8255d0971c63873a103aadd3bfeef860e0cf1 + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList.dhall sha256:adfbed123664ac31d68dda0880a503436d784565958671a4b3e0c27a711aceaa | CustomResourceDefinitionNames : ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames.dhall sha256:0278161a6b3294f036a73cd3c4dc3d0b304f683ba9de276a119c634ff73e9fb1 | CustomResourceDefinitionSpec : - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:64f5e17c0be23ef0cc9cebde90d887a4ed50ea724a866596fe5f205269682aa7 + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec.dhall sha256:58465ddaeee8ef1d1ffc5105671dd69d5ab6001968627bdc6fce124fd8bc0535 | CustomResourceDefinitionStatus : ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus.dhall sha256:9760548a849877dfd2a7411930d68a4974da897b83937d1e5c4c0e9bdf82d50f | CustomResourceDefinitionVersion : - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:4397e19113e06dff2dff0aa43dd97d87fc9305611e0e46bde9d2dbc44267ccd0 + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion.dhall sha256:0dff46037720814fafe44d019b8b16abf3195e2d7d6c27c89ba4a74f8b819d60 | CustomResourceSubresourceScale : ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale.dhall sha256:6733049a96431ae2b72e7d6b17a24204a0ef148aef08725e02f8da00339525a6 | CustomResourceSubresourceStatus : @@ -755,13 +755,13 @@ | CustomResourceSubresources : ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources.dhall sha256:0581868225988fcffb65edf1f9e9c9edd9bb509b8821ffd6941728d00f976640 | CustomResourceValidation : - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:44ae4096d58f78fae63b89981954e142788fd7968be4738070b4fbdb8a7767dc + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation.dhall sha256:a7144e84a9a050ebd8768596da8c24b2f69dd30cc2374827025be2508b775136 | ExternalDocumentation : ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation.dhall sha256:75a79c871f43a432b402f8a5d52f277bb827f5170ecfed101ed356a91ccbce91 | JSON : ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON.dhall sha256:0912602a19e01dcff30f351958d2d9b69519c9be61b57b1b32a2a569bf8bf5f9 | JSONSchemaProps : - ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:32b8c3a4615735cbf9f5d9fe3f99b47a28e9ce4c6d2e11bbeaf1a925c7bdf3b4 + ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps.dhall sha256:712211f2527ee07ca2a1f1dbbfdf7d1822d9844107aa170c37d67b4103d264cd | JSONSchemaPropsOrArray : ./types/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray.dhall sha256:0912602a19e01dcff30f351958d2d9b69519c9be61b57b1b32a2a569bf8bf5f9 | JSONSchemaPropsOrBool :