You are using podspec v2?
Looking at the debug log, I don’t see a “version: 2” in the podspec.
Also, for v2, the CRD section is under a “kubernetesResources” section in a separate yaml file, passed to the pod-spec-set
command via --k8s-resources
or via an additional parameter to the base layer pod_spec_set()
func.
But having said all that, your yaml looks like you’re trying to create a k8s Ingress
resource. That’s not a resource of type CustomResourceDefinition
which is what Juju is designed to support for this feature, which is where you basically take the spec
portion of a k8s CustomResourceDefinition
yaml file and pass that to Juju.
eg if the k8s yaml looked like this:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: tfjobs.kubeflow.org
version: v1alpha2
spec:
group: kubeflow.org
names:
kind: TFJob
plural: tfjobs
singular: tfjob
scope: Namespaced
validation:
openAPIV3Schema:
properties:
spec:
properties:
...
the Juju yaml would be:
kubernetesResources:
customResourceDefinitions:
tfjobs.kubeflow.org:
group: kubeflow.org
version: v1alpha2
scope: Namespaced
names:
plural: "tfjobs"
singular: "tfjob"
kind: TFJob
validation:
openAPIV3Schema:
properties:
...
Juju doesn’t currently support creating Ingress Resources directly. It will create one for an application when that application is exposed via juju expose
. We currently support just setting the Rules
attribute though. There’s a little documentation here:
It’s certain that not all use cases are supported yet. Can you expand more on what you need? Can we look at implementing something in terms of juju expose
for a given application?