initial commit
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes"
|
||||
appsv1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apps/v1"
|
||||
corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1"
|
||||
metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1"
|
||||
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
||||
)
|
||||
|
||||
func main() {
|
||||
pulumi.Run(func(ctx *pulumi.Context) error {
|
||||
// Connects to the on-prem managed cluster via the current kubeconfig
|
||||
// (context selected by `kubectl config use-context <name>`).
|
||||
cluster, err := kubernetes.NewProvider(ctx, "onprem", &kubernetes.ProviderArgs{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Namespace for all DESI Explorer resources.
|
||||
ns, err := corev1.NewNamespace(ctx, "desi-explorer", &corev1.NamespaceArgs{
|
||||
Metadata: &metav1.ObjectMetaArgs{Name: pulumi.String("desi-explorer")},
|
||||
}, pulumi.Provider(cluster))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Placeholder Deployment so `pulumi up` has something to deploy.
|
||||
// TODO: replace with the actual DESI Explorer image (web build served
|
||||
// behind the data repository API).
|
||||
app, err := appsv1.NewDeployment(ctx, "desi-explorer", &appsv1.DeploymentArgs{
|
||||
Metadata: &metav1.ObjectMetaArgs{
|
||||
Namespace: ns.Metadata.Name(),
|
||||
},
|
||||
Spec: &appsv1.DeploymentSpecArgs{
|
||||
Selector: &metav1.LabelSelectorArgs{
|
||||
MatchLabels: pulumi.ToStringMap(map[string]string{"app": "desi-explorer"}),
|
||||
},
|
||||
Replicas: pulumi.Int(1),
|
||||
Template: &corev1.PodTemplateSpecArgs{
|
||||
Metadata: &metav1.ObjectMetaArgs{
|
||||
Labels: pulumi.ToStringMap(map[string]string{"app": "desi-explorer"}),
|
||||
},
|
||||
Spec: &corev1.PodSpecArgs{
|
||||
Containers: corev1.ContainerArray{
|
||||
&corev1.ContainerArgs{
|
||||
Name: pulumi.String("desi-explorer"),
|
||||
Image: pulumi.String("nginx:alpine"),
|
||||
Ports: corev1.ContainerPortArray{
|
||||
&corev1.ContainerPortArgs{ContainerPort: pulumi.Int(80)},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}, pulumi.Provider(cluster))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
ctx.Export("namespace", ns.Metadata.Name())
|
||||
ctx.Export("deployment", app.Metadata.Name())
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user