github.com/ironcore-dev/gardener-extension-provider-ironcore@v0.3.2-0.20240314231816-8336447fb9a0/docs/operations/operations.md (about) 1 # Using the ironcore provider extension with Gardener as operator 2 3 The [`core.gardener.cloud/v1beta1.CloudProfile` resource](https://github.com/gardener/gardener/blob/master/example/30-cloudprofile.yaml) 4 declares a `providerConfig` field that is meant to contain provider-specific configuration. 5 The [`core.gardener.cloud/v1beta1.Seed` resource](https://github.com/gardener/gardener/blob/master/example/50-seed.yaml) 6 is structured similarly. Additionally, it allows configuring settings for the backups of the main etcd's data of shoot 7 clusters control planes running in this seed cluster. 8 9 This document explains the necessary configuration for this provider extension. 10 11 ## `CloudProfile` resource 12 13 This section describes, how the configuration for `CloudProfile`s looks like for `ironcore` by providing an example 14 `CloudProfile` manifest with minimal configuration that can be used to allow the creation of `ironcore` shoot clusters. 15 16 ### `CloudProfileConfig` 17 18 The cloud profile configuration contains information about the real machine image IDs in the `ironcore` environment. 19 You have to map every version that you specify in `.spec.machineImages[].versions` here such that the `ironcore` extension 20 knows the location of the OCI image artefact for every version you want to offer. For each machine image version an 21 `architecture` field can be specified which specifies the CPU architecture of the machine on which given machine image 22 can be used. 23 24 An example `CloudProfileConfig` for the `ironcore` extension looks as follows: 25 26 ```yaml 27 apiVersion: ironcore.provider.extensions.gardener.cloud/v1alpha1 28 kind: CloudProfileConfig 29 machineImages: 30 - name: gardenlinux 31 versions: 32 - version: 1.0.0 33 image: registry/images/gardenlinux:version-tag 34 # architecture: amd64 # optional 35 ``` 36 37 ### Example `CloudProfile` manifest 38 39 Please find below an example `CloudProfile` manifest: 40 41 ```yaml 42 apiVersion: core.gardener.cloud/v1beta1 43 kind: CloudProfile 44 metadata: 45 name: ironcore 46 spec: 47 type: ironcore 48 kubernetes: 49 versions: 50 - version: 1.25.3 51 - version: 1.24.3 52 machineImages: 53 - name: gardenlinux 54 versions: 55 - version: 1.0.0 56 cri: 57 - name: containerd 58 machineTypes: 59 - name: x3-xlarge 60 cpu: "4" 61 gpu: "0" 62 memory: 8Gi 63 storage: 64 class: standard 65 type: default 66 size: 20Gi 67 usable: true 68 architecture: amd64 # optional 69 volumeTypes: 70 - name: general-purpose 71 class: standard 72 usable: true 73 - name: io-optimized 74 class: premium 75 usable: true 76 regions: 77 - region: my-region 78 names: 79 - my-zone-a 80 - my-zone-b 81 - my-zone-c 82 providerConfig: 83 apiVersion: ironcore.provider.extensions.gardener.cloud/v1alpha1 84 kind: CloudProfileConfig 85 regionConfigs: 86 - name: my-region 87 server: https://ironcore-api-server 88 certificateAuthorityData: >- 89 abcd12345 90 storageClasses: 91 default: # default StorageClass for shoot 92 name: default # name of the StorageClass in the Shoot 93 type: general-purpose # name of the VolumeClass 94 additional: # additional StorageClasses for shoot 95 - name: additional-sc # name of the StorageClass in the Shoot 96 type: general-purpose # name of the VolumeClass 97 machineImages: 98 - name: gardenlinux 99 versions: 100 - version: 1.0.0 101 image: registry/images/gardenlinux:version-tag 102 architecture: amd64 103 ``` 104 105 ## `Seed` resource 106 107 This provider extension supports configuration for the `Seed`'s `.spec.provider.type` field. 108 109 Please find below an example `Seed` manifest that configures Seed cluster. 110 111 ```yaml 112 --- 113 apiVersion: core.gardener.cloud/v1beta1 114 kind: Seed 115 metadata: 116 name: my-seed 117 spec: 118 provider: 119 type: ironcore 120 ... 121 ``` 122 123 ## `Shoot` resource 124 125 This provider extension supports configuration for the `Shoot` cluster resource. 126 `.spec.provider.workers` field is a list of worker groups. 127 `.spec.provider.networking.nodes` field is the CIDR of the entire node network. 128 129 130 ```yaml 131 apiVersion: core.gardener.cloud/v1beta1 132 kind: Shoot 133 metadata: 134 name: my-shoot 135 namespace: my-namespace 136 spec: 137 cloudProfileName: ironcore 138 secretBindingName: my-credentials 139 region: my-region 140 networking: 141 type: calico 142 nodes: 10.1.0.0/16 143 provider: 144 infrastructureConfig: 145 apiVersion: ironcore.provider.extensions.gardener.cloud/v1alpha1 146 kind: InfrastructureConfig 147 type: ironcore 148 workers: 149 - name: pool1 150 machine: 151 type: x3-xlarge 152 volume: 153 type: general-purpose 154 size: 20Gi 155 cri: 156 name: containerd 157 minimum: 1 158 maximum: 1 159 maxSurge: 1 160 maxUnavailable: 0 161 zones: 162 - my-zone-a 163 - my-zone-b 164 - my-zone-c 165 kubernetes: 166 version: 1.26.0 167 ```